class Tk::Scrollbar - tk-0.1.2 Documentation

# class Tk::Scrollbar

### Constants

TkCommandNames
WidgetClassName

### Public Instance Methods

activate(element=None) click to toggle source

    # File lib/tk/scrollbar.rb, line 126
    def activate(element=None)
      tk_send_without_enc('activate', element)
    end

assign(*wins) click to toggle source

    # File lib/tk/scrollbar.rb, line 64
    def assign(*wins)
      begin
        self.command(@scroll_proc) if self.cget('command').cmd != @scroll_proc
      rescue Exception
        self.command(@scroll_proc)
      end
      orient = self.orient
      wins.each{|w|
        @assigned << w unless @assigned.index(w)
        if orient == 'horizontal'
          w.xscrollcommand proc{|first, last| self.propagate_set(w, first, last)}
        else # 'vertical'
          w.yscrollcommand proc{|first, last| self.propagate_set(w, first, last)}
        end
      }
      Tk.update  # avoid scrollbar trouble
      self
    end

assigned_list() click to toggle source

    # File lib/tk/scrollbar.rb, line 83
    def assigned_list
      begin
        return @assigned.dup if self.cget('command').cmd == @scroll_proc
      rescue Exception
      end
      fail RuntimeError, "not depend on the assigned_list"
    end

autoscroll() click to toggle source

    # File lib/tkextlib/tcllib/autoscroll.rb, line 113
    def autoscroll
      # Arranges for the already existing scrollbar to be mapped
      # and unmapped as needed.
      #tk_call_without_enc('::autoscroll::autoscroll', @path)
      Tk::Tcllib::Autoscroll.autoscroll(self)
      self
    end

configure(*args) click to toggle source
Calls superclass method

    # File lib/tk/scrollbar.rb, line 91
    def configure(*args)
      ret = super(*args)
      # Tk.update  # avoid scrollbar trouble
      ret
    end

delta(deltax, deltay) click to toggle source

def delta(deltax=None, deltay=None)

    # File lib/tk/scrollbar.rb, line 98
    def delta(deltax, deltay)
      number(tk_send_without_enc('delta', deltax, deltay))
    end

fraction(x, y) click to toggle source

def fraction(x=None, y=None)

    # File lib/tk/scrollbar.rb, line 103
    def fraction(x, y)
      number(tk_send_without_enc('fraction', x, y))
    end

get() click to toggle source

    # File lib/tk/scrollbar.rb, line 111
    def get
      #ary1 = tk_send('get').split
      #ary2 = []
      #for i in ary1
      #  ary2.push number(i)
      #end
      #ary2
      list(tk_send_without_enc('get'))
    end

identify(x, y) click to toggle source

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

moveto(fraction) click to toggle source

    # File lib/tk/scrollbar.rb, line 130
    def moveto(fraction)
      tk_send_without_enc('moveto', fraction)
      self
    end

propagate_set(src_win, first, last) click to toggle source

    # File lib/tk/scrollbar.rb, line 55
    def propagate_set(src_win, first, last)
      self.set(first, last)
      if self.orient == 'horizontal'
        @assigned.each{|w| w.xview('moveto', first) if w != src_win}
      else # 'vertical'
        @assigned.each{|w| w.yview('moveto', first) if w != src_win}
      end
    end

scroll(*args) click to toggle source

    # File lib/tk/scrollbar.rb, line 135
    def scroll(*args)
      tk_send_without_enc('scroll', *args)
      self
    end

scroll_pages(num) click to toggle source

    # File lib/tk/scrollbar.rb, line 145
    def scroll_pages(num)
      scroll(num, 'pages')
      self
    end

scroll_units(num) click to toggle source

    # File lib/tk/scrollbar.rb, line 140
    def scroll_units(num)
      scroll(num, 'units')
      self
    end

set(first, last) click to toggle source

    # File lib/tk/scrollbar.rb, line 121
    def set(first, last)
      tk_send_without_enc('set', first, last)
      self
    end

unautoscroll() click to toggle source

    # File lib/tkextlib/tcllib/autoscroll.rb, line 120
    def unautoscroll
      #     Returns the scrollbar to its original static state.
      #tk_call_without_enc('::autoscroll::unautoscroll', @path)
      Tk::Tcllib::Autoscroll.unautoscroll(self)
      self
    end

### Private Instance Methods

create_self(keys) click to toggle source

    # File lib/tk/scrollbar.rb, line 12
    def create_self(keys)
      @assigned = []
      @scroll_proc = proc{|*args|
        if self.orient == 'horizontal'
          @assigned.each{|w| w.xview(*args)}
        else # 'vertical'
          @assigned.each{|w| w.yview(*args)}
        end
      }

      if keys and keys != None
        unless TkConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__
          #tk_call_without_enc('scrollbar', @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('scrollbar', @path)
        tk_call_without_enc(self.class::TkCommandNames[0], @path)
      end
    end