From afcfca607e147260b424563306a8d2c9ad9853eb Mon Sep 17 00:00:00 2001 From: nagai Date: Thu, 8 Jul 2004 16:50:07 +0000 Subject: * ext/tk/lib : bug fix * ext/tk/lib/tkextlib/itcl : add [incr Tcl] support * ext/tk/lib/tkextlib/itk : add [incr Tk] support * ext/tk/lib/tkextlib/iwidgets : midway point of [incr Widgets] support * ext/tk/sample/tkextlib/iwidgets : very simple examples of [incr Widgets] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6602 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- .../iwidgets/catalog_demo/images/clear.gif | Bin 0 -> 279 bytes .../sample/tkextlib/iwidgets/sample/buttonbox.rb | 22 ++++++++++++ ext/tk/sample/tkextlib/iwidgets/sample/calendar.rb | 10 ++++++ .../tkextlib/iwidgets/sample/canvasprintbox.rb | 8 +++++ .../tkextlib/iwidgets/sample/canvasprintdialog.rb | 8 +++++ ext/tk/sample/tkextlib/iwidgets/sample/checkbox.rb | 12 +++++++ ext/tk/sample/tkextlib/iwidgets/sample/combobox.rb | 32 +++++++++++++++++ .../sample/tkextlib/iwidgets/sample/dateentry.rb | 7 ++++ .../sample/tkextlib/iwidgets/sample/datefield.rb | 8 +++++ ext/tk/sample/tkextlib/iwidgets/sample/dialog.rb | 20 +++++++++++ .../sample/tkextlib/iwidgets/sample/dialogshell.rb | 14 ++++++++ .../tkextlib/iwidgets/sample/disjointlistbox.rb | 16 +++++++++ .../tkextlib/iwidgets/sample/entryfield-1.rb | 39 ++++++++++++++++++++ .../tkextlib/iwidgets/sample/entryfield-2.rb | 40 +++++++++++++++++++++ .../tkextlib/iwidgets/sample/entryfield-3.rb | 40 +++++++++++++++++++++ .../sample/tkextlib/iwidgets/sample/extbutton.rb | 20 +++++++++++ .../iwidgets/sample/extfileselectionbox.rb | 8 +++++ .../iwidgets/sample/extfileselectiondialog.rb | 29 +++++++++++++++ ext/tk/sample/tkextlib/iwidgets/sample/feedback.rb | 10 ++++++ .../tkextlib/iwidgets/sample/fileselectionbox.rb | 8 +++++ .../iwidgets/sample/fileselectiondialog.rb | 28 +++++++++++++++ .../tkextlib/iwidgets/sample/labeledwidget.rb | 13 +++++++ ext/tk/sample/tkextlib/iwidgets/sample/shell.rb | 17 +++++++++ 23 files changed, 409 insertions(+) create mode 100644 ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/clear.gif create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/buttonbox.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/calendar.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/canvasprintbox.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/canvasprintdialog.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/checkbox.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/combobox.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/dateentry.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/datefield.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/dialog.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/dialogshell.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/disjointlistbox.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/entryfield-1.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/entryfield-2.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/entryfield-3.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/extbutton.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/extfileselectionbox.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/extfileselectiondialog.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/feedback.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/fileselectionbox.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/fileselectiondialog.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/labeledwidget.rb create mode 100644 ext/tk/sample/tkextlib/iwidgets/sample/shell.rb (limited to 'ext/tk/sample/tkextlib/iwidgets') diff --git a/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/clear.gif b/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/clear.gif new file mode 100644 index 0000000000..bd45628aa7 Binary files /dev/null and b/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/clear.gif differ diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/buttonbox.rb b/ext/tk/sample/tkextlib/iwidgets/sample/buttonbox.rb new file mode 100644 index 0000000000..2b7cd45205 --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/buttonbox.rb @@ -0,0 +1,22 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/iwidgets' + +# sample 1 +p bb1 = Tk::Iwidgets::Buttonbox.new +p bb1.add('Yes', :text=>'Yes', :command=>proc{puts 'Yes'}) +p bb1.add('No', :text=>'No', :command=>proc{puts 'No'}) +p bb1.add('Maybe', :text=>'Maybe', :command=>proc{puts 'Maybe'}) +bb1.default('Yes') +bb1.pack(:expand=>true, :fill=>:both, :pady=>5) +print "\n" + +# sample 2 +p bb2 = Tk::Iwidgets::Buttonbox.new +p btn1 = bb2.add(:text=>'Yes', :command=>proc{puts 'Yes'}) +p btn2 = bb2.add(:text=>'No', :command=>proc{puts 'No'}) +p btn3 = bb2.add(:text=>'Maybe', :command=>proc{puts 'Maybe'}) +bb2.default(btn1) +bb2.pack(:expand=>true, :fill=>:both, :pady=>5) + +Tk.mainloop diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/calendar.rb b/ext/tk/sample/tkextlib/iwidgets/sample/calendar.rb new file mode 100644 index 0000000000..7a7c65ae82 --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/calendar.rb @@ -0,0 +1,10 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/iwidgets' + +Tk::Iwidgets::Calendar.new(:command=>proc{|arg| puts(arg.date)}, + :weekendbackground=>'mistyrose', + :weekdaybackground=>'ghostwhite', + :outline=>'black', :startday=>'wednesday', + :days=>%w(We Th Fr Sa Su Mo Tu)).pack +Tk.mainloop diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/canvasprintbox.rb b/ext/tk/sample/tkextlib/iwidgets/sample/canvasprintbox.rb new file mode 100644 index 0000000000..c7c043000a --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/canvasprintbox.rb @@ -0,0 +1,8 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/iwidgets' + +Tk::Iwidgets::Canvasprintbox.new(:orient=>:landscape, :stretch=>1) \ + .pack(:padx=>10, :pady=>10, :fill=>:both, :expand=>true) + +Tk.mainloop diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/canvasprintdialog.rb b/ext/tk/sample/tkextlib/iwidgets/sample/canvasprintdialog.rb new file mode 100644 index 0000000000..ea8d63e6eb --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/canvasprintdialog.rb @@ -0,0 +1,8 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/iwidgets' + +Tk::Iwidgets::Canvasprintdialog.new.activate + +Tk.mainloop + diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/checkbox.rb b/ext/tk/sample/tkextlib/iwidgets/sample/checkbox.rb new file mode 100644 index 0000000000..bae0eba73a --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/checkbox.rb @@ -0,0 +1,12 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/iwidgets' + +cb = Tk::Iwidgets::Checkbox.new +cb.add('bold', :text=>'Bold') +cb.add('italic', :text=>'Italic') +cb.add('underline', :text=>'Underline') +cb.select('underline') +cb.pack(:expand=>true, :fill=>:both, :padx=>10, :pady=>10) + +Tk.mainloop diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/combobox.rb b/ext/tk/sample/tkextlib/iwidgets/sample/combobox.rb new file mode 100644 index 0000000000..5c2e6cbbd7 --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/combobox.rb @@ -0,0 +1,32 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/iwidgets' + +# +# Non-editable Dropdown Combobox +# +cb1 = Tk::Iwidgets::Combobox.new(:labeltext=>'Month:', + :selectioncommand=>proc{ + puts(cb1.get_curselection) + }, + :editable=>false, :listheight=>185, + :popupcursor=>'hand1') + +cb1.insert_list('end', *%w(Jan Feb Mar Apr May June Jul Aug Sept Oct Nov Dec)) + + +# +# Editable Dropdown Combobox +# +cb2 = Tk::Iwidgets::Combobox.new(:labeltext=>'Operating System:', + :selectioncommand=>proc{ + puts(cb2.get_curselection) + }) + +cb2.insert_list('end', *%w(Linux HP-UX SunOS Solaris Irix)) +cb2.insert_entry('end', 'L') + +cb1.pack(:padx=>10, :pady=>10, :fill=>:x) +cb2.pack(:padx=>10, :pady=>10, :fill=>:x) + +Tk.mainloop diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/dateentry.rb b/ext/tk/sample/tkextlib/iwidgets/sample/dateentry.rb new file mode 100644 index 0000000000..5727879217 --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/dateentry.rb @@ -0,0 +1,7 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/iwidgets' + +Tk::Iwidgets::Dateentry.new.pack + +Tk.mainloop diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/datefield.rb b/ext/tk/sample/tkextlib/iwidgets/sample/datefield.rb new file mode 100644 index 0000000000..12d498245d --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/datefield.rb @@ -0,0 +1,8 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/iwidgets' + +df = Tk::Iwidgets::Datefield.new(:command=>proc{puts(df.get)}) +df.pack(:fill=>:x, :expand=>true, :padx=>10, :pady=>10) + +Tk.mainloop diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/dialog.rb b/ext/tk/sample/tkextlib/iwidgets/sample/dialog.rb new file mode 100644 index 0000000000..3449cd4b3d --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/dialog.rb @@ -0,0 +1,20 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/iwidgets' + +Thread.new{Tk.mainloop} + +d = Tk::Iwidgets::Dialog.new(:modality=>:application) + +d.buttonconfigure('OK', :command=>proc{puts 'OK'; d.deactivate true}) +d.buttonconfigure('Apply', :command=>proc{puts 'Apply'}) +d.buttonconfigure('Cancel', :command=>proc{puts 'Cancel'; d.deactivate false}) +d.buttonconfigure('Help', :command=>proc{puts 'Help'}) + +TkListbox.new(d.child_site, :relief=>:sunken).pack(:expand=>true, :fill=>:both) + +if TkComm.bool(d.activate) + puts "Exit via OK button" +else + puts "Exit via Cancel button" +end diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/dialogshell.rb b/ext/tk/sample/tkextlib/iwidgets/sample/dialogshell.rb new file mode 100644 index 0000000000..d4578297ec --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/dialogshell.rb @@ -0,0 +1,14 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/iwidgets' + +ds = Tk::Iwidgets::Dialogshell.new(:modality=>:none) + +ds.add('OK', :text=>'OK', :command=>proc{puts 'OK'; ds.deactivate}) +ds.add('Cancel', :text=>'Cancel', :command=>proc{puts 'Cancel'; ds.deactivate}) +ds.default('OK') + +TkButton.new(:text=>'ACTIVATE', :padx=>7, :pady=>7, + :command=>proc{puts ds.activate}).pack(:padx=>10, :pady=>10) + +Tk.mainloop diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/disjointlistbox.rb b/ext/tk/sample/tkextlib/iwidgets/sample/disjointlistbox.rb new file mode 100644 index 0000000000..f7a0e5c48e --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/disjointlistbox.rb @@ -0,0 +1,16 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/iwidgets' + +djl = Tk::Iwidgets::Disjointlistbox.new.pack(:fill=>:both, :expand=>true, + :padx=>10, :pady=>10) +djl.set_lhs(*[0,2,4,5]) +djl.set_rhs(3,6) + +djl.insert_lhs(1,7,8) +djl.insert_rhs(9) + +p djl.get_lhs +p djl.get_rhs + +Tk.mainloop diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/entryfield-1.rb b/ext/tk/sample/tkextlib/iwidgets/sample/entryfield-1.rb new file mode 100644 index 0000000000..24253fcb98 --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/entryfield-1.rb @@ -0,0 +1,39 @@ +#!/usr/bin/env ruby +######################################################### +# +# use Tk::UTF8_String() for a utf8 charecter +# +######################################################### +require 'tk' +require 'tkextlib/iwidgets' + +TkOption.add('*textBackground', 'white') + +ef = Tk::Iwidgets::Entryfield.new(:command=>proc{puts "Return Pressed"}) + +fef = Tk::Iwidgets::Entryfield.new(:labeltext=>'Fixed:', + :fixed=>10, :width=>12) + +nef = Tk::Iwidgets::Entryfield.new(:labeltext=>'Numeric:', + :validate=>:numeric, :width=>12) + +aef = Tk::Iwidgets::Entryfield.new(:labeltext=>'Alphabetic:', + :validate=>:alphabetic, :width=>12, + :invalid=>proc{ + puts "Alphabetic contents invalid" + }) + +pef = Tk::Iwidgets::Entryfield.new(:labeltext=>'Password:', :width=>12, + :show=>Tk::UTF8_String("\267"), + ## <=== utf8 character + :command=>proc{puts "Return Pressed"}) + +Tk::Iwidgets::Labeledwidget.alignlabels(ef, fef, nef, aef, pef) + +ef.pack(:fil=>:x, :expand=>true, :padx=>10, :pady=>5) +fef.pack(:fil=>:x, :expand=>true, :padx=>10, :pady=>5) +nef.pack(:fil=>:x, :expand=>true, :padx=>10, :pady=>5) +aef.pack(:fil=>:x, :expand=>true, :padx=>10, :pady=>5) +pef.pack(:fil=>:x, :expand=>true, :padx=>10, :pady=>5) + +Tk.mainloop diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/entryfield-2.rb b/ext/tk/sample/tkextlib/iwidgets/sample/entryfield-2.rb new file mode 100644 index 0000000000..9a80e4aaf2 --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/entryfield-2.rb @@ -0,0 +1,40 @@ +#!/usr/bin/env ruby +######################################################### +# +# set $KCODE to 'utf' for a utf8 charecter +# +######################################################### +$KCODE='utf' + +require 'tk' +require 'tkextlib/iwidgets' + +TkOption.add('*textBackground', 'white') + +ef = Tk::Iwidgets::Entryfield.new(:command=>proc{puts "Return Pressed"}) + +fef = Tk::Iwidgets::Entryfield.new(:labeltext=>'Fixed:', + :fixed=>10, :width=>12) + +nef = Tk::Iwidgets::Entryfield.new(:labeltext=>'Numeric:', + :validate=>:numeric, :width=>12) + +aef = Tk::Iwidgets::Entryfield.new(:labeltext=>'Alphabetic:', + :validate=>:alphabetic, :width=>12, + :invalid=>proc{ + puts "Alphabetic contents invalid" + }) + +pef = Tk::Iwidgets::Entryfield.new(:labeltext=>'Password:', :width=>12, + :show=>"\267", ## <=== utf8 character + :command=>proc{puts "Return Pressed"}) + +Tk::Iwidgets::Labeledwidget.alignlabels(ef, fef, nef, aef, pef) + +ef.pack(:fil=>:x, :expand=>true, :padx=>10, :pady=>5) +fef.pack(:fil=>:x, :expand=>true, :padx=>10, :pady=>5) +nef.pack(:fil=>:x, :expand=>true, :padx=>10, :pady=>5) +aef.pack(:fil=>:x, :expand=>true, :padx=>10, :pady=>5) +pef.pack(:fil=>:x, :expand=>true, :padx=>10, :pady=>5) + +Tk.mainloop diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/entryfield-3.rb b/ext/tk/sample/tkextlib/iwidgets/sample/entryfield-3.rb new file mode 100644 index 0000000000..e830308396 --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/entryfield-3.rb @@ -0,0 +1,40 @@ +#!/usr/bin/env ruby +######################################################### +# +# set Tk.encoding = 'utf-8' for a utf8 charecter +# +######################################################### +require 'tk' +require 'tkextlib/iwidgets' + +Tk.encoding = 'utf-8' + +TkOption.add('*textBackground', 'white') + +ef = Tk::Iwidgets::Entryfield.new(:command=>proc{puts "Return Pressed"}) + +fef = Tk::Iwidgets::Entryfield.new(:labeltext=>'Fixed:', + :fixed=>10, :width=>12) + +nef = Tk::Iwidgets::Entryfield.new(:labeltext=>'Numeric:', + :validate=>:numeric, :width=>12) + +aef = Tk::Iwidgets::Entryfield.new(:labeltext=>'Alphabetic:', + :validate=>:alphabetic, :width=>12, + :invalid=>proc{ + puts "Alphabetic contents invalid" + }) + +pef = Tk::Iwidgets::Entryfield.new(:labeltext=>'Password:', :width=>12, + :show=>"\267", ## <=== utf8 character + :command=>proc{puts "Return Pressed"}) + +Tk::Iwidgets::Labeledwidget.alignlabels(ef, fef, nef, aef, pef) + +ef.pack(:fil=>:x, :expand=>true, :padx=>10, :pady=>5) +fef.pack(:fil=>:x, :expand=>true, :padx=>10, :pady=>5) +nef.pack(:fil=>:x, :expand=>true, :padx=>10, :pady=>5) +aef.pack(:fil=>:x, :expand=>true, :padx=>10, :pady=>5) +pef.pack(:fil=>:x, :expand=>true, :padx=>10, :pady=>5) + +Tk.mainloop diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/extbutton.rb b/ext/tk/sample/tkextlib/iwidgets/sample/extbutton.rb new file mode 100644 index 0000000000..83a6a07b64 --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/extbutton.rb @@ -0,0 +1,20 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/iwidgets' + +Tk::Iwidgets::Extbutton.new(:text=>'Bitmap example', :bitmap=>'info', + :background=>'bisque', :activeforeground=>'red', + :bitmapforeground=>'blue', :defaultring=>true, + :command=>proc{ + puts "Bisque is beautiful" + }).pack(:expand=>true) + +#img = TkPhotoImage.new(:file=>File.join(File.dirname(File.expand_path(__FILE__)), '../../../images/earthris.gif')) +img = TkPhotoImage.new(:file=>File.join(File.dirname(File.expand_path(__FILE__)), '../catalog_demo/images/clear.gif')) + +Tk::Iwidgets::Extbutton.new(:text=>'Image example', :relief=>:ridge, + :image=>img, :imagepos=>:e, :font=>'9x15bold', + :activebackground=>'lightyellow', + :background=>'lightgreen').pack(:expand=>true) + +Tk.mainloop diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/extfileselectionbox.rb b/ext/tk/sample/tkextlib/iwidgets/sample/extfileselectionbox.rb new file mode 100644 index 0000000000..ef3b14ff4b --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/extfileselectionbox.rb @@ -0,0 +1,8 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/iwidgets' + +Tk::Iwidgets::Extfileselectionbox.new.pack(:padx=>10, :pady=>10, + :fill=>:both, :expand=>true) + +Tk.mainloop diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/extfileselectiondialog.rb b/ext/tk/sample/tkextlib/iwidgets/sample/extfileselectiondialog.rb new file mode 100644 index 0000000000..80a31d06e7 --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/extfileselectiondialog.rb @@ -0,0 +1,29 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/iwidgets' + +mainloop = Thread.new{Tk.mainloop} + +# +# Non-modal example +# +nmfsd = Tk::Iwidgets::Extfileselectiondialog.new(:title=>'Non-Modal') +nmfsd.buttonconfigure('OK', :command=>proc{ + puts "You selected #{nmfsd.get}" + nmfsd.deactivate + }) +nmfsd.activate + +# +# Modal example +# +mfsd = Tk::Iwidgets::Extfileselectiondialog.new(:modality=>:application) +mfsd.center +if TkComm.bool(mfsd.activate) + puts "You selected #{mfsd.get}" +else + puts "You cancelled the dialog" +end + + +mainloop.join diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/feedback.rb b/ext/tk/sample/tkextlib/iwidgets/sample/feedback.rb new file mode 100644 index 0000000000..c39ebd9d22 --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/feedback.rb @@ -0,0 +1,10 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/iwidgets' + +Tk::Iwidgets::Feedback.new(:labeltext=>'Status', :steps=>20){|fb| + pack(:padx=>10, :pady=>10, :fill=>:both, :expand=>true) + TkTimer.new(500, 20, proc{fb.step}).start(5000) +} + +Tk.mainloop diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/fileselectionbox.rb b/ext/tk/sample/tkextlib/iwidgets/sample/fileselectionbox.rb new file mode 100644 index 0000000000..f0313d9481 --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/fileselectionbox.rb @@ -0,0 +1,8 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/iwidgets' + +Tk::Iwidgets::Fileselectionbox.new.pack(:padx=>10, :pady=>10, + :fill=>:both, :expand=>true) + +Tk.mainloop diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/fileselectiondialog.rb b/ext/tk/sample/tkextlib/iwidgets/sample/fileselectiondialog.rb new file mode 100644 index 0000000000..955e5cbd20 --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/fileselectiondialog.rb @@ -0,0 +1,28 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/iwidgets' + +mainloop = Thread.new{Tk.mainloop} + +# +# Non-modal example +# +nmfsd = Tk::Iwidgets::Fileselectiondialog.new(:title=>'Non-Modal') +nmfsd.buttonconfigure('OK', :command=>proc{ + puts "You selected #{nmfsd.get}" + nmfsd.deactivate + }) +nmfsd.activate + +# +# Modal example +# +mfsd = Tk::Iwidgets::Fileselectiondialog.new(:modality=>:application) +mfsd.center +if TkComm.bool(mfsd.activate) + puts "You selected #{mfsd.get}" +else + puts "You cancelled the dialog" +end + +mainloop.join diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/labeledwidget.rb b/ext/tk/sample/tkextlib/iwidgets/sample/labeledwidget.rb new file mode 100644 index 0000000000..1fed7d55e7 --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/labeledwidget.rb @@ -0,0 +1,13 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/iwidgets' + +lw = Tk::Iwidgets::Labeledwidget.new(:labeltext=>'Canvas Widget', + :labelpos=>:s) +lw.pack(:fill=>:both, :expand=>true, :padx=>10, :pady=>10) + +cw = TkCanvas.new(lw.child_site, :relief=>:raised, :width=>200, :height=>200, + :borderwidth=>3, :background=>:white) +cw.pack(:padx=>10, :pady=>10) + +Tk.mainloop diff --git a/ext/tk/sample/tkextlib/iwidgets/sample/shell.rb b/ext/tk/sample/tkextlib/iwidgets/sample/shell.rb new file mode 100644 index 0000000000..850ddb29d4 --- /dev/null +++ b/ext/tk/sample/tkextlib/iwidgets/sample/shell.rb @@ -0,0 +1,17 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/iwidgets' + +sh = Tk::Iwidgets::Shell.new(:modality=>:application, + :padx=>20, :pady=>20, :title=>'Shell') + +TkButton.new(:text=>'ACTIVATE', :padx=>7, :pady=>7, + :command=>proc{puts sh.activate}).pack(:padx=>10, :pady=>10) + +TkLabel.new(sh.child_site, :text=>'SHELL').pack +TkButton.new(sh.child_site, :text=>'YES', + :command=>proc{sh.deactivate 'press YES'}).pack(:fill=>:x) +TkButton.new(sh.child_site, :text=>'NO', + :command=>proc{sh.deactivate 'press NO'}).pack(:fill=>:x) + +Tk.mainloop -- cgit v1.2.3