# 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', <<-'EOS') 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] EOS ######################### 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