class Tk::Iwidgets::Tabset - tk-0.2.0 Documentation

# class Tk::Iwidgets::Tabset

### Constants

TkCommandNames
WidgetClassName

### Public Instance Methods

add(keys={}) click to toggle source

    # File lib/tkextlib/iwidgets/tabset.rb, line 66
    def add(keys={})
      window(tk_call(@path, 'add', *hash_kv(keys)))
    end

delete(idx1, idx2=nil) click to toggle source

    # File lib/tkextlib/iwidgets/tabset.rb, line 70
    def delete(idx1, idx2=nil)
      if idx2
        tk_call(@path, 'delete', index(idx1), index(idx2))
      else
        tk_call(@path, 'delete', index(idx1))
      end
      self
    end

index(idx) click to toggle source

    # File lib/tkextlib/iwidgets/tabset.rb, line 79
    def index(idx)
      number(tk_call(@path, 'index', tagid(idx)))
    end

insert(idx, keys={}) click to toggle source

    # File lib/tkextlib/iwidgets/tabset.rb, line 83
    def insert(idx, keys={})
      window(tk_call(@path, 'insert', index(idx), *hash_kv(keys)))
    end

next() click to toggle source

    # File lib/tkextlib/iwidgets/tabset.rb, line 87
    def next
      tk_call(@path, 'next')
      self
    end

prev() click to toggle source

    # File lib/tkextlib/iwidgets/tabset.rb, line 92
    def prev
      tk_call(@path, 'prev')
      self
    end

select(idx) click to toggle source

    # File lib/tkextlib/iwidgets/tabset.rb, line 97
    def select(idx)
      tk_call(@path, 'select', index(idx))
      self
    end

show_tab(idx) click to toggle source

    # File lib/tkextlib/iwidgets/tabset.rb, line 102
    def show_tab(idx)
      if index(idx) == 0
        self.start = 0
        return
      end

      return unless @canvas ||= self.winfo_children[0]

      delta = 1 if (delta = cget(:gap)) == 'overlap' ||
                     (delta = self.winfo_pixels(delta) + 1) <= 0

      case cget(:tabpos)
      when 's', 'n'
        if (head = tabcget(idx, :left)) < 0
          self.start -= head
          return
        end
        tabs_size = @canvas.winfo_width
        tab_start, tab_end = @canvas .
          find_overlapping(head, 0, head + delta, @canvas.winfo_height) .
          find_all{|id| @canvas.itemtype(id) == TkcPolygon} .
          map!{|id| bbox = @canvas.bbox(id); [bbox[0], bbox[2]]} . max

      when 'e', 'w'
        if (head = tabcget(idx, :top)) < 0
          self.start -= head
          return
        end
        tabs_size = @canvas.winfo_height
        tab_start, tab_end = @canvas .
          find_overlapping(0, head, @canvas.winfo_width, head + delta) .
          find_all{|id| @canvas.itemtype(id) == TkcPolygon} .
          map!{|id| bbox = @canvas.bbox(id); [bbox[1], bbox[3]]} . max
      end

      if (size = tab_end - tab_start + 1) > tabs_size
        self.start -= tab_start
      elsif head + size > tabs_size
        self.start -= head + size - tabs_size
      end

      self
    end

tagid(tagOrId) click to toggle source

    # File lib/tkextlib/iwidgets/tabset.rb, line 35
    def tagid(tagOrId)
      if tagOrId.kind_of?(Tk::Itk::Component)
        tagOrId.name
      else
        #_get_eval_string(tagOrId)
        tagOrId
      end
    end

### Private Instance Methods

__boolval_optkeys() click to toggle source
Calls superclass method

    # File lib/tkextlib/iwidgets/tabset.rb, line 56
    def __boolval_optkeys
      super() << 'equaltabs' << 'raiseselect' << 'tabborders'
    end

__item_cget_cmd(id) click to toggle source

    # File lib/tkextlib/iwidgets/tabset.rb, line 25
    def __item_cget_cmd(id)
      [self.path, 'tabcget', id]
    end

__item_config_cmd(id) click to toggle source

    # File lib/tkextlib/iwidgets/tabset.rb, line 30
    def __item_config_cmd(id)
      [self.path, 'tabconfigure', id]
    end

__strval_optkeys() click to toggle source
Calls superclass method

    # File lib/tkextlib/iwidgets/tabset.rb, line 61
    def __strval_optkeys
      super() << 'backdrop'
    end