methods to control default widget set
string with Tcl’s encoding
frozen_string_literal: false
ttk_selector toplevel classes/modules
autoload
frozen_string_literal: false
tkextlib/tcllib/tablelist_core.rb by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp) * Part of tcllib extension * This file is required by 'tkextlib/tcllib/tablelist.rb' or 'tkextlib/tcllib/tablelist_tile.rb'.
autoload
frozen_string_literal: false
release date of tkextlib
autoload
create module/class
create module/class
create module/class
AUTO_OLDPATH = tk_split_simplelist(INTERP._invoke(‘set’, ‘auto_oldpath’)) AUTO_OLDPATH.each{|s| s.freeze} AUTO_OLDPATH.freeze
# File tk/lib/tk/autoload.rb, line 115 def Tk.BinaryString(str); Tk::BinaryString.new(str); end
# File tk/lib/tk/autoload.rb, line 112 def Tk.EncodedString(str, enc = nil); Tk::EncodedString.new(str, enc); end
# File tk/lib/tk/autoload.rb, line 118 def Tk.UTF8_String(str); Tk::UTF8_String.new(str); end
# File tk/lib/tk/autoload.rb, line 723 def __create_widget_set__(new_set, src_set={}) new_set = new_set.to_sym if @TOPLEVEL_ALIAS_TABLE[new_set] fail RuntimeError, "A widget-set #{new_set.inspect} is already exist." end if src_set.kind_of?(Symbol) # new_set is an alias name of existed widget set. @TOPLEVEL_ALIAS_TABLE[new_set] = @TOPLEVEL_ALIAS_TABLE[src_set] else @TOPLEVEL_ALIAS_TABLE[new_set] = {} src_set.each{|sym, obj| set_topalias(new_set, obj, sym.to_sym) } end end
# File tk/lib/tk/autoload.rb, line 719 def __disable_toplevel_control__(*symbols) symbols.each{|sym| @TOPLEVEL_ALIAS_OWNER[sym.to_sym] = false} end
# File tk/lib/tk/autoload.rb, line 670 def __import_toplevel_aliases__(target, *symbols) current = @current_default_widget_set symbols.each{|sym| sym = sym.to_sym if (obj = @TOPLEVEL_ALIAS_TABLE[target][sym]).nil? # remove @TOPLEVEL_ALIAS_TABLE[current].delete(sym) @TOPLEVEL_ALIAS_OWNER.delete(sym) Tk::TOPLEVEL_ALIASES.module_eval{remove_const sym} if topalias_defined?(sym) Object.class_eval{remove_const sym} if topobj_defined?(sym) elsif obj == false # remove, but OWNER[sym] <- false and not treat Object::sym @TOPLEVEL_ALIAS_TABLE[current].delete(sym) @TOPLEVEL_ALIAS_OWNER[sym] = false Tk::TOPLEVEL_ALIASES.module_eval{remove_const sym} if topalias_defined?(sym) elsif @TOPLEVEL_ALIAS_OWNER[sym] == false # Object::sym is out of control. --> not change # Keep OWNER[sym]. @TOPLEVEL_ALIAS_TABLE[current][sym] = obj replace_topalias(sym, obj) else # new definition under control @TOPLEVEL_ALIAS_OWNER[sym] = current @TOPLEVEL_ALIAS_TABLE[current][sym] = obj replace_topalias(sym, obj) replace_topobj(sym, obj) end } end
# File tk/lib/tk/autoload.rb, line 437 def __regist_toplevel_aliases__(target, obj, *symbols) # initial regist @TOPLEVEL_ALIAS_TABLE[target = target.to_sym] ||= {} symbols.each{|sym| @TOPLEVEL_ALIAS_TABLE[target][sym = sym.to_sym] = obj if !topalias_defined?(sym) || target == @current_default_widget_set @TOPLEVEL_ALIAS_OWNER[sym] = target replace_topalias(sym, obj) replace_topobj(sym, obj) unless obj.kind_of?(String) # NOT autoload end } end
# File tk/lib/tk/autoload.rb, line 703 def __remove_toplevel_aliases__(*symbols) # remove toplevel aliases of current widget set current = @current_default_widget_set symbols.each{|sym| sym = sym.to_sym @TOPLEVEL_ALIAS_TABLE[current].delete(sym) @TOPLEVEL_ALIAS_OWNER.delete(sym) Tk::TOPLEVEL_ALIASES.module_eval{remove_const sym} if topalias_defined?(sym) Object.class_eval{remove_const sym} if topobj_defined?(sym) } end
# File tk/lib/tk/autoload.rb, line 715 def __reset_toplevel_owner__(*symbols) symbols.each{|sym| @TOPLEVEL_ALIAS_OWNER.delete(sym.to_sym)} end
# File tk/lib/tk/autoload.rb, line 587 def __set_loaded_toplevel_aliases__(autopath, target, obj, *symbols) # autopath is an autoload file # Currently, this method doesn't support that autoload loads # different toplevels between <basename>.rb and <basename>.so extension. shortpath = (autopath =~ /^(.*)(.rb|.so)$/)? $1: autopath target = target.to_sym symbols.map!{|sym| sym.to_sym} symbols.each{|sym| regist_sym_for_loaded_file(shortpath, obj, sym) } symbols.each{|sym| set_topalias(target, obj, sym)} end
# File tk/lib/tk/autoload.rb, line 580 def __set_toplevel_aliases__(target, obj, *symbols) # obj is a kind of String : define autoload path # Class : use the class object target = target.to_sym symbols.each{|sym| set_topalias(target, obj, sym.to_sym)} end
# File tk/lib/tk/autoload.rb, line 370 def __toplevel_alias_setup_proc__(*target_list, &cmd) target_list.each{|target| @TOPLEVEL_ALIAS_SETUP_PROC[target.to_sym] = cmd} end
# File tk/lib/tkextlib/tcllib/cursor.rb, line 47 def self.cursor_display(parent=None) # Pops up a dialog with a listbox containing all the cursor names. # Selecting a cursor name will display it in that dialog. # This is simply for viewing any available cursors on the platform . #tk_call_without_enc('::cursor::display', parent) Tk::Tcllib::Cursor.cursor_display(parent) end
# File tk/lib/tk/autoload.rb, line 343 def default_widget_set @current_default_widget_set end
# File tk/lib/tk/autoload.rb, line 347 def default_widget_set=(target) target = target.to_sym return target if target == @current_default_widget_set if (cmd = @TOPLEVEL_ALIAS_SETUP_PROC[target]) cmd.call(target) end _replace_toplevel_aliases(target) end
# File tk/lib/tk/macpkg.rb, line 13 def Tk.load_tclscript_rsrc(resource_name, file=None) # Mac only tk_call('source', '-rsrc', resource_name, file) end
# File tk/lib/tk/macpkg.rb, line 18 def Tk.load_tclscript_rsrcid(resource_id, file=None) # Mac only tk_call('source', '-rsrcid', resource_id, file) end
# File tk/lib/tk/autoload.rb, line 362 def toplevel_aliases_on_widget_set(widget_set) if (tbl = @TOPLEVEL_ALIAS_TABLE[widget_set.to_sym]) tbl.collect{|k, v| (v.nil?)? nil: k}.compact else fail ArgumentError, "unknown widget_set #{widget_set.to_sym.inspect}" end end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.