# File tk/lib/tkextlib/tile/style.rb, line 35 def __define_wrapper_proc_for_compatibility__! __define_themes_and_setTheme_proc__! unless Tk.info(:commands, '::ttk::style').empty? # fail RuntimeError, # "can't define '::ttk::style' command (already exist)" # do nothing !!! warn "Warning: can't define '::ttk::style' command (already exist)" if $DEBUG return end TkCore::INTERP.add_tk_procs('::ttk::style', 'args', " if [string equal [lrange $args 0 1] {element create}] { if [string equal [lindex $args 3] image] { set spec [lindex $args 4] set map [lrange $spec 1 end] if [llength $map] { # return [eval [concat [list ::style element create [lindex $args 2] image [lindex $spec 0] -map $map] [lrange $args 5 end]]] return [uplevel 1 [list ::style element create [lindex $args 2] image [lindex $spec 0] -map $map] [lrange $args 5 end]] } } } # return [eval "::style $args"] return [uplevel 1 ::style $args] ") ######################### end
# File tk/lib/tkextlib/tile/style.rb, line 159 def configure(style=nil, keys=nil) if style.kind_of?(Hash) keys = style style = nil end style = '.' unless style if Tk::Tile::TILE_SPEC_VERSION_ID < 7 sub_cmd = 'default' else sub_cmd = 'configure' end if keys && keys != None tk_call(TkCommandNames[0], sub_cmd, style, *hash_kv(keys)) else tk_call(TkCommandNames[0], sub_cmd, style) end end
# File tk/lib/tkextlib/tile/style.rb, line 233 def element_create(name, type, *args) if type == 'image' || type == :image element_create_image(name, *args) elsif type == 'vsapi' || type == :vsapi element_create_vsapi(name, *args) else tk_call(TkCommandNames[0], 'element', 'create', name, type, *args) end end
# File tk/lib/tkextlib/tile/style.rb, line 243 def element_create_image(name, *args) fail ArgumentError, 'Must supply a base image' unless (spec = args.shift) if (opts = args.shift) if opts.kind_of?(Hash) opts = _symbolkey2str(opts) else fail ArgumentError, 'bad option' end end fail ArgumentError, 'too many arguments' unless args.empty? if spec.kind_of?(Array) # probably, command format is tile 0.8+ (Tcl/Tk8.5+) style if Tk::Tile::TILE_SPEC_VERSION_ID >= 8 if opts tk_call(TkCommandNames[0], 'element', 'create', name, 'image', spec, opts) else tk_call(TkCommandNames[0], 'element', 'create', name, 'image', spec) end else fail ArgumentError, 'illegal arguments' if opts.key?('map') base = spec.shift opts['map'] = spec tk_call(TkCommandNames[0], 'element', 'create', name, 'image', base, opts) end else # probably, command format is tile 0.7.8 or older style if Tk::Tile::TILE_SPEC_VERSION_ID >= 8 spec = [spec, *(opts.delete('map'))] if opts.key?('map') end if opts tk_call(TkCommandNames[0], 'element', 'create', name, 'image', spec, opts) else tk_call(TkCommandNames[0], 'element', 'create', name, 'image', spec) end end end
# File tk/lib/tkextlib/tile/style.rb, line 284 def element_create_vsapi(name, class_name, part_id, *args) # supported on Tcl/Tk 8.6 or later # argument check if (state_map = args.shift || None) if state_map.kind_of?(Hash) opts = _symbolkey2str(state_map) state_map = None end end opts = args.shift || None fail ArgumentError, "too many arguments" unless args.empty? # define a Microsoft Visual Styles element tk_call(TkCommandNames[0], 'element', 'create', name, 'vsapi', class_name, part_id, state_map, opts) end
# File tk/lib/tkextlib/tile/style.rb, line 302 def element_names() list(tk_call(TkCommandNames[0], 'element', 'names')) end
# File tk/lib/tkextlib/tile/style.rb, line 306 def element_options(elem) simplelist(tk_call(TkCommandNames[0], 'element', 'options', elem)) end
# File tk/lib/tkextlib/tile/style.rb, line 219 def layout(style=nil, spec=nil) if style.kind_of?(Hash) spec = style style = nil end style = '.' unless style if spec tk_call(TkCommandNames[0], 'layout', style, spec) else _style_layout(list(tk_call(TkCommandNames[0], 'layout', style))) end end
# File tk/lib/tkextlib/tile/style.rb, line 212 def lookup(style, opt, state=None, fallback_value=None) tk_call(TkCommandNames[0], 'lookup', style, '-' << opt.to_s, state, fallback_value) end
# File tk/lib/tkextlib/tile/style.rb, line 180 def map(style=nil, keys=nil) if style.kind_of?(Hash) keys = style style = nil end style = '.' unless style if keys && keys != None if keys.kind_of?(Hash) tk_call(TkCommandNames[0], 'map', style, *hash_kv(keys)) else simplelist(tk_call(TkCommandNames[0], 'map', style, '-' << keys.to_s)) end else ret = {} Hash[*(simplelist(tk_call(TkCommandNames[0], 'map', style)))].each{|k, v| ret[k[1..-1]] = list(v) } ret end end
# File tk/lib/tkextlib/tile/style.rb, line 203 def map_configinfo(style=nil, key=None) style = '.' unless style map(style, key) end
# File tk/lib/tkextlib/tile/style.rb, line 208 def map_default_configinfo(key=None) map('.', key) end
# File tk/lib/tkextlib/tile/style.rb, line 310 def theme_create(name, keys=nil) name = name.to_s if keys && keys != None tk_call(TkCommandNames[0], 'theme', 'create', name, *hash_kv(keys)) else tk_call(TkCommandNames[0], 'theme', 'create', name) end name end
# File tk/lib/tkextlib/tile/style.rb, line 327 def theme_names() list(tk_call(TkCommandNames[0], 'theme', 'names')) end
Commenting is here to help enhance the documentation. For example, sample code, 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.