Methods
#
N
U
Constants
DEMODIR = File.dirname(File.expand_path(__FILE__))
 
Class Public methods
new()
# File ext/tk/sample/tkextlib/bwidget/demo.rb, line 29
def initialize
  TkOption.add('*TitleFrame.l.font', 'helvetica 11 bold italic')

  root = TkRoot.new(:title=>'BWidget demo')
  root.withdraw

  _create

  Tk::BWidget.place(root, 0, 0, :center)
  root.deiconify
  root.raise
  root.focus(true)

  root.geometry(root.geometry)
end
Instance Public methods
_create()
# File ext/tk/sample/tkextlib/bwidget/demo.rb, line 45
def _create
  DemoVar.prgtext.value = 'Please wait while loading font...'
  DemoVar.prgindic.value = -1

  intro = _create_intro

  Tk.update

  Tk::BWidget::SelectFont.load_font

  descmenu = [
    '&File', 'all', 'file', 0, [
      ['command', 'E&xit', [], 'Exit BWidget demo', [],
        {:command=>proc{exit}}]
    ],
    '&Options', 'all', 'options', 0, [
      ['checkbutton', 'Toolbar &1', ['all', 'option'],
        'Show/hide toolbar 1', [],
        { :variable=>DemoVar.toolbar1,
          :command=>proc{
            DemoVar.mainframe.show_toolbar(0, DemoVar.toolbar1.value)
          }
        }
      ],
      ['checkbutton', 'Toolbar &2', ['all', 'option'],
        'Show/hide toolbar 2', [],
        { :variable=>DemoVar.toolbar2,
          :command=>proc{
            DemoVar.mainframe.show_toolbar(1, DemoVar.toolbar2.value)
          }
        }
      ]
    ]
  ]

  DemoVar.prgtext.value = 'Creating MainFrame...'
  DemoVar.prgindic.value = 0

  DemoVar.mainframe = Tk::BWidget::MainFrame.new(
                              :menu=>descmenu,
                              :textvariable=>DemoVar.status,
                              :progressvar=>DemoVar.prgindic
                      )

  # toobar 1 creation
  DemoVar.prgindic.numeric += 1

  DemoVar.mainframe.add_toolbar{|tb1|
    Tk::BWidget::ButtonBox.new(tb1, :spacing=>0, :padx=>1, :pady=>1){|bbox|
      add(:image=>Tk::BWidget::Bitmap.new('new'),
          :highlightthickness=>0, :takefocus=>0, :relief=>:link,
          :borderwidth=>1, :padx=>1, :pady=>1,
          :command=>proc{puts 'select "Create a new file" icon'},
          :helptext=>"Create a new file")

      add(:image=>Tk::BWidget::Bitmap.new('open'),
          :highlightthickness=>0, :takefocus=>0, :relief=>:link,
          :borderwidth=>1, :padx=>1, :pady=>1,
          :command=>proc{puts 'select "Open an existing file" icon'},
          :helptext=>"Open an existing file")

      add(:image=>Tk::BWidget::Bitmap.new('save'),
          :highlightthickness=>0, :takefocus=>0, :relief=>:link,
          :borderwidth=>1, :padx=>1, :pady=>1,
          :command=>proc{puts 'select "Save file" icon'},
          :helptext=>"Save file")

      pack(:side=>:left, :anchor=>:w)
    }

    Tk::BWidget::Separator.new(tb1, :orient=>:vertical){
      pack(:side=>:left, :fill=>:y, :padx=>4, :anchor=>:w)
    }

    DemoVar.prgindic.numeric += 1

    Tk::BWidget::ButtonBox.new(tb1, :spacing=>0, :padx=>1, :pady=>1){|bbox|
      add(:image=>Tk::BWidget::Bitmap.new('cut'),
          :highlightthickness=>0, :takefocus=>0, :relief=>:link,
          :borderwidth=>1, :padx=>1, :pady=>1,
          :command=>proc{puts 'select "Cut selection" icon'},
          :helptext=>"Cut selection")

      add(:image=>Tk::BWidget::Bitmap.new('copy'),
          :highlightthickness=>0, :takefocus=>0, :relief=>:link,
          :borderwidth=>1, :padx=>1, :pady=>1,
          :command=>proc{puts 'select "Copy selection" icon'},
          :helptext=>"Copy selection")

      add(:image=>Tk::BWidget::Bitmap.new('paste'),
          :highlightthickness=>0, :takefocus=>0, :relief=>:link,
          :borderwidth=>1, :padx=>1, :pady=>1,
          :command=>proc{puts 'select "Paste selection" icon'},
          :helptext=>"Paste selection")

      pack(:side=>:left, :anchor=>:w)
    }
  }

  # toolbar 2 creation
  DemoVar.prgindic.numeric += 1

  tb2 = DemoVar.mainframe.add_toolbar
  DemoVar._wfont = Tk::BWidget::SelectFont::Toolbar.new(tb2,
                     :command=>proc{update_font(DemoVar._wfont[:font])}
                   )
  DemoVar.font = DemoVar._wfont[:font]
  DemoVar._wfont.pack(:side=>:left, :anchor=>:w)

  DemoVar.mainframe.add_indicator(
    :text=>"BWidget #{Tk::BWidget.package_version}"
  )
  DemoVar.mainframe.add_indicator(:textvariable=>'tk_patchLevel')

  # NoteBook creation
  DemoVar.notebook = Tk::BWidget::NoteBook.new(DemoVar.mainframe.get_frame)

  DemoVar.prgtext.value = "Creating Manager..."
  DemoVar.prgindic.numeric += 1
  DemoManager.create(DemoVar.notebook)

  DemoVar.prgtext.value = "Creating Basic..."
  DemoVar.prgindic.numeric += 1
  DemoBasic.create(DemoVar.notebook)

  DemoVar.prgtext.value = "Creating Select..."
  DemoVar.prgindic.numeric += 1
  DemoSelect.create(DemoVar.notebook)

  DemoVar.prgtext.value = "Creating Dialog..."
  DemoVar.prgindic.numeric += 1
  DemoDialog.create(DemoVar.notebook)

  DemoVar.prgtext.value = "Creating Drag and Drop..."
  DemoVar.prgindic.numeric += 1
  DemoDnD.create(DemoVar.notebook)

  DemoVar.prgtext.value = "Creating Tree..."
  DemoVar.prgindic.numeric += 1
  DemoTree.create(DemoVar.notebook)

  DemoVar.prgtext.value = "Done"
  DemoVar.prgindic.numeric += 1

  DemoVar.notebook.compute_size
  DemoVar.notebook.pack(:fill=>:both, :expand=>true, :padx=>4, :pady=>4)
  DemoVar.notebook.raise(DemoVar.notebook.get_page(0))

  DemoVar.mainframe.pack(:fill=>:both, :expand=>true)

  Tk.update_idletasks

  intro.destroy
end
_create_intro()
# File ext/tk/sample/tkextlib/bwidget/demo.rb, line 211
def _create_intro
  top = TkToplevel.new(:relief=>:raised, :borderwidth=>2)
  top.withdraw
  top.overrideredirect(true)

  ximg  = TkLabel.new(top, :bitmap=>"@#{File.join(DEMODIR,'x1.xbm')}",
                      :foreground=>'grey90', :background=>'white')
  bwimg = TkLabel.new(ximg, :bitmap=>"@#{File.join(DEMODIR,'bwidget.xbm')}",
                      :foreground=>'grey90', :background=>'white')
  frame = TkFrame.new(ximg, :background=>'white')
  TkLabel.new(frame, :text=>'Loading demo',
              :background=>'white', :font=>'times 8').pack
  TkLabel.new(frame, :textvariable=>DemoVar.prgtext,
              :background=>'white', :font=>'times 8', :width=>35).pack
  Tk::BWidget::ProgressBar.new(frame, :width=>50, :height=>10,
                               :background=>'white',
                               :variable=>DemoVar.prgindic,
                               :maximum=>10).pack
  frame.place(:x=>0, :y=>0, :anchor=>:nw)
  bwimg.place(:relx=>1, :rely=>1, :anchor=>:se)
  ximg.pack
  Tk::BWidget.place(top, 0, 0, :center)
  top.deiconify

  top
end
update_font(newfont)
# File ext/tk/sample/tkextlib/bwidget/demo.rb, line 200
def update_font(newfont)
  root = Tk.root
  root[:cursor] = 'watch'
  if newfont != '' && DemoVar.font != newfont
    DemoVar._wfont[:font] = newfont
    DemoVar.notebook[:font] = newfont
    DemoVar.font = newfont
  end
  root[:cursor] = ''
end