class Tk::Scale - tk-0.1.2 Documentation

# class Tk::Scale

### Constants

TkCommandNames
WidgetClassName

### Public Instance Methods

command(cmd=Proc.new) click to toggle source

    # File lib/tk/scale.rb, line 81
    def command(cmd=Proc.new)
      configure('command'=>cmd)
    end

configure(slot, value=None) click to toggle source
Calls superclass method

    # File lib/tk/scale.rb, line 70
    def configure(slot, value=None)
      if (slot == 'command' || slot == :command)
        configure('command'=>value)
      elsif slot.kind_of?(Hash) &&
          (slot.key?('command') || slot.key?(:command))
        slot = _symbolkey2str(slot)
        slot['command'] = _wrap_command_arg(slot.delete('command'))
      end
      super(slot, value)
    end

configure_cmd(slot, value) click to toggle source

    # File lib/tk/scale.rb, line 66
    def configure_cmd(slot, value)
      configure(slot=>value)
    end

coords(val=None) click to toggle source

    # File lib/tk/scale.rb, line 89
    def coords(val=None)
      tk_split_list(tk_send_without_enc('coords', val))
    end

get(x=None, y=None) click to toggle source

    # File lib/tk/scale.rb, line 85
    def get(x=None, y=None)
      number(tk_send_without_enc('get', x, y))
    end

identify(x, y) click to toggle source

    # File lib/tk/scale.rb, line 93
    def identify(x, y)
      tk_send_without_enc('identify', x, y)
    end

set(val) click to toggle source

    # File lib/tk/scale.rb, line 97
    def set(val)
      tk_send_without_enc('set', val)
    end

value() click to toggle source

    # File lib/tk/scale.rb, line 101
    def value
      get
    end

value=(val) click to toggle source

    # File lib/tk/scale.rb, line 105
    def value= (val)
      set(val)
      val
    end

### Private Instance Methods

__strval_optkeys() click to toggle source
Calls superclass method

    # File lib/tk/scale.rb, line 50
    def __strval_optkeys
      super() << 'label'
    end

_wrap_command_arg(cmd) click to toggle source

    # File lib/tk/scale.rb, line 55
    def _wrap_command_arg(cmd)
      proc{|val|
        if val.kind_of?(String)
          cmd.call(number(val))
        else
          cmd.call(val)
        end
      }
    end

create_self(keys) click to toggle source

    # File lib/tk/scale.rb, line 12
    def create_self(keys)
      if keys and keys != None
        if keys.key?('command') && ! keys['command'].kind_of?(String)
          cmd = keys.delete('command')
          keys['command'] = proc{|val| cmd.call(val.to_f)}
        end
        unless TkConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__
          #tk_call_without_enc('scale', @path, *hash_kv(keys, true))
          tk_call_without_enc(self.class::TkCommandNames[0], @path,
                              *hash_kv(keys, true))
        else
          begin
            tk_call_without_enc(self.class::TkCommandNames[0], @path,
                                *hash_kv(keys, true))
          rescue
            tk_call_without_enc(self.class::TkCommandNames[0], @path)
            keys = __check_available_configure_options(keys)
            unless keys.empty?
              begin
                tk_call_without_enc('destroy', @path)
              rescue
                # cannot destroy
                configure(keys)
              else
                # re-create widget
                tk_call_without_enc(self.class::TkCommandNames[0], @path,
                                    *hash_kv(keys, true))
              end
            end
          end
        end
      else
        #tk_call_without_enc('scale', @path)
        tk_call_without_enc(self.class::TkCommandNames[0], @path)
      end
    end