From 11dbedfaad4a9a9521ece2198a8dc491678b1902 Mon Sep 17 00:00:00 2001 From: shyouhei Date: Wed, 29 Aug 2007 04:06:12 +0000 Subject: add tag v1_8_6_5001 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_6_5001@13304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ruby_1_8_6/ext/tk/sample/tkextlib/bwidget/demo.rb | 243 ++++++++++++++++++++++ 1 file changed, 243 insertions(+) create mode 100644 ruby_1_8_6/ext/tk/sample/tkextlib/bwidget/demo.rb (limited to 'ruby_1_8_6/ext/tk/sample/tkextlib/bwidget/demo.rb') diff --git a/ruby_1_8_6/ext/tk/sample/tkextlib/bwidget/demo.rb b/ruby_1_8_6/ext/tk/sample/tkextlib/bwidget/demo.rb new file mode 100644 index 0000000000..785d2681a8 --- /dev/null +++ b/ruby_1_8_6/ext/tk/sample/tkextlib/bwidget/demo.rb @@ -0,0 +1,243 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/bwidget' + +module DemoVar + @_wfont = nil + @notebook = nil + @mainframe = nil + @status = TkVariable.new + @prgtext = TkVariable.new + @prgindic = TkVariable.new + @font = nil + @font_name = nil + @toolbar1 = TkVariable.new(true) + @toolbar2 = TkVariable.new(true) +end +class << DemoVar + attr_accessor :_wfont, :notebook, :mainframe, :font, :font_name + attr_reader :status, :prgtext, :prgindic, :toolbar1, :toolbar2 +end + +class BWidget_Demo + DEMODIR = File.dirname(File.expand_path(__FILE__)) + + %w(manager basic select dnd tree tmpldlg).each{|f| + require File.join(DEMODIR, f << '.rb') + } + + 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 + + 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 + + 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 + + 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 +end + +module DemoVar + Demo = BWidget_Demo.new +end + +Tk.mainloop -- cgit v1.2.3