Class: TkWidgetFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/a-tkcommons.rb

Overview

require ‘tkextlib/tile’ Tk.tk_call “eval”,“ttk::setTheme clam” Tk::Tile::Style.theme_use(‘clam’)

Instance Method Summary collapse

Constructor Details

#initializeTkWidgetFactory

Returns a new instance of TkWidgetFactory.



1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
# File 'lib/a-tkcommons.rb', line 1695

def initialize
  if Arcadia.conf('tile.theme')
    @use_tile = true
    begin
      require 'tkextlib/tile'
      if Tk::Tile::Style.theme_names.include?(Arcadia.conf('tile.theme'))
        Tk::Tile::Style.theme_use(Arcadia.conf('tile.theme'))
      end
    rescue
      @use_tile = false
    end
    initialize_tile_widgets if @use_tile
  end
end

Instance Method Details

#initialize_tile_widgetsObject



1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
# File 'lib/a-tkcommons.rb', line 1710

def initialize_tile_widgets
  #TScrollbar
  Tk::Tile::Style.configure("Arcadia.TScrollbar", Arcadia.style('scrollbar'))
  Tk::Tile::Style.map("Arcadia.TScrollbar",
  :background=>[:pressed, Arcadia.style('scrollbar')['activebackground'], :disabled, Arcadia.style('scrollbar')['background'], :active, Arcadia.style('scrollbar')['activebackground']],
  :arrowcolor=>[:pressed, Arcadia.style('scrollbar')['background'], :disabled, Arcadia.style('scrollbar')['highlightbackground'], :active, Arcadia.style('scrollbar')['background']],
  :relief=>[:pressed, :sunken])

  Tk::Tile::Style.layout(Tk::Tile.style('Vertical', "Arcadia.TScrollbar"),
  ["Scrollbar.trough",{:sticky=>"nsew", :children=>[
    "Scrollbar.uparrow",{:side=>:top, :sticky=>"we"},
    "Scrollbar.downarrow", {:side=>:bottom, :sticky=>"we"},
  "Scrollbar.thumb", {:sticky=>"nswe",:side=>:top, :border =>1, :expand=>true}]}])

  Tk::Tile::Style.layout(Tk::Tile.style('Horizontal', "Arcadia.TScrollbar"),
  ['Scrollbar.trough', {:children=>[
    'Scrollbar.leftarrow',   {:side=>:left},
    'Scrollbar.rightarrow', {:side=>:right},
  'Scrollbar.thumb',  {:side=>:left, :expand=>true}]}])

  #TFrame
  #Tk::Tile::Style.configure(Tk::Tile::TFrame, Arcadia.style('panel'))

  #TPaned
  #Tk::Tile::Style.configure(Tk::Tile::TPaned, Arcadia.style('panel'))

  #TEntry
  #Tk::Tile::Style.configure(Tk::Tile::TEntry, Arcadia.style('edit'))

  #TCombobox
  #Tk::Tile::Style.configure(Tk::Tile::TCombobox, Arcadia.style('combobox'))

  #TLabel
  #Tk::Tile::Style.configure(Tk::Tile::TLabel, Arcadia.style('label'))


  #Treeview
  #Tk::Tile::Style.configure(Tk::Tile::Treeview, Arcadia.style('treepanel'))


  #TMenubutton
  #Tk::Tile::Style.configure(Tk::Tile::TMenubutton, Arcadia.style('menu'))

  #TButton
  #Tk::Tile::Style.configure(Tk::Tile::TButton, Arcadia.style('button'))
end

#scrollbar(_parent, _args = nil, &b) ⇒ Object



1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
# File 'lib/a-tkcommons.rb', line 1757

def scrollbar(_parent,_args=nil, &b)
  begin
    if @use_tile
      return Tk::Tile::Scrollbar.new(_parent,{:style=>"Arcadia.TScrollbar"}.update(_args), &b)
    else
      return TkScrollbar.new(_parent,Arcadia.style('scrollbar').update(_args), &b)
    end
  rescue RuntimeError => e
    Arcadia.runtime_error(e) 
  end
end