In Files

  • tk/lib/tkextlib/tile/style.rb

Class/Module Index [+]

Quicksearch

Tk::Tile::Style

Constants

TkCommandNames

Public Class Methods

__define_wrapper_proc_for_compatibility__!() click to toggle source
 
               # 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
            
configure(style=nil, keys=nil) click to toggle source
 
               # 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
            
Also aliased as: default
default(style=nil, keys=nil) click to toggle source
Alias for: configure
element_create(name, type, *args) click to toggle source
 
               # 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
            
element_create_image(name, *args) click to toggle source
 
               # 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
            
element_create_vsapi(name, class_name, part_id, *args) click to toggle source
 
               # 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
            
element_names() click to toggle source
 
               # File tk/lib/tkextlib/tile/style.rb, line 302
def element_names()
  list(tk_call(TkCommandNames[0], 'element', 'names'))
end
            
element_options(elem) click to toggle source
 
               # File tk/lib/tkextlib/tile/style.rb, line 306
def element_options(elem)
  simplelist(tk_call(TkCommandNames[0], 'element', 'options', elem))
end
            
layout(style=nil, spec=nil) click to toggle source
 
               # 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
            
lookup(style, opt, state=None, fallback_value=None) click to toggle source
 
               # 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
            
map(style=nil, keys=nil) click to toggle source
 
               # 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
            
Also aliased as: map_configure
map_configinfo(style=nil, key=None) click to toggle source
 
               # File tk/lib/tkextlib/tile/style.rb, line 203
def map_configinfo(style=nil, key=None)
  style = '.' unless style
  map(style, key)
end
            
map_configure(style=nil, keys=nil) click to toggle source
Alias for: map
map_default_configinfo(key=None) click to toggle source
 
               # File tk/lib/tkextlib/tile/style.rb, line 208
def map_default_configinfo(key=None)
  map('.', key)
end
            
theme_create(name, keys=nil) click to toggle source
 
               # 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
            
theme_names() click to toggle source
 
               # File tk/lib/tkextlib/tile/style.rb, line 327
def theme_names()
  list(tk_call(TkCommandNames[0], 'theme', 'names'))
end
            
theme_settings(name, cmd=nil, &b) click to toggle source
 
               # File tk/lib/tkextlib/tile/style.rb, line 320
def theme_settings(name, cmd=nil, &b)
  name = name.to_s
  cmd = Proc.new(&b) if !cmd && b
  tk_call(TkCommandNames[0], 'theme', 'settings', name, cmd)
  name
end
            
theme_use(name) click to toggle source
 
               # File tk/lib/tkextlib/tile/style.rb, line 331
def theme_use(name)
  name = name.to_s
  tk_call(TkCommandNames[0], 'theme', 'use', name)
  name
end