mirror of
https://github.com/ruby/ruby.git
synced 2025-09-17 09:33:59 +02:00

* ext/tk/*: Support new features of Tcl/Tk8.6b1 and minor bug fixes. ( [KNOWN BUG] Ruby/Tk on Ruby 1.9 will not work on Cygwin. ) * ext/tk/*: Unify sources between Ruby 1.8 & 1.9. Improve default_widget_set handling. * ext/tk/*: Multi-TkInterpreter (multi-tk.rb) works on Ruby 1.8 & 1.9. ( [KNOWN BUG] On Ruby 1.8, join to a long term Thread on Tk callbacks may freeze. On Ruby 1.9, cannot create a second master interpreter (creating slaves are OK); supported master interpreter is the default master interpreter only. ) * ext/tk/lib/tkextlib/*: Update supported versions of Tk extensions. Tcllib 1.8/Tklib 0.4.1 ==> Tcllib 1.11.1/Tklib 0.5 BWidgets 1.7 ==> BWidgets 1.8 TkTable 2.9 ==> TkTable 2.10 TkTreeCtrl 2005-12-02 ==> TkTreeCtrl 2.2.9 Tile 0.8.0/8.5.1 ==> Tile 0.8.3/8.6b1 IncrTcl 2005-02-14 ==> IncrTcl 2008-12-15 TclX 2005-02-07 ==> TclX 2008-12-15 Trofs 0.4.3 ==> Trofs 0.4.4 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@24064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
47 lines
1.7 KiB
Ruby
47 lines
1.7 KiB
Ruby
# paned1.rb
|
|
#
|
|
# This demonstration script creates a toplevel window containing
|
|
# a paned window that separates two windows horizontally.
|
|
#
|
|
# based on "Id: paned1.tcl,v 1.1 2002/02/22 14:07:01 dkf Exp"
|
|
|
|
if defined?($paned1_demo) && $paned1_demo
|
|
$paned1_demo.destroy
|
|
$paned1_demo = nil
|
|
end
|
|
|
|
$paned1_demo = TkToplevel.new {|w|
|
|
title("Horizontal Paned Window Demonstration")
|
|
iconname("paned1")
|
|
positionWindow(w)
|
|
}
|
|
|
|
base_frame = TkFrame.new($paned1_demo).pack(:fill=>:both, :expand=>true)
|
|
|
|
TkLabel.new(base_frame,
|
|
:font=>$font, :wraplength=>'4i', :justify=>:left,
|
|
:text=><<EOL).pack(:side=>:top)
|
|
The sash between the two coloured windows below can be used to divide the area between them. Use the left mouse button to resize without redrawing by just moving the sash, and use the middle mouse button to resize opaquely (always redrawing the windows in each position.)
|
|
If your Tk library linked to Ruby doesn't include a 'panedwindow', this demo doesn't work. Please use later version of Tk which supports a 'panedwindow'.
|
|
EOL
|
|
|
|
# The bottom buttons
|
|
TkFrame.new(base_frame){|f|
|
|
pack(:side=>:bottom, :fill=>:x, :pady=>'2m')
|
|
|
|
TkButton.new(f, :text=>'Dismiss', :width=>15, :command=>proc{
|
|
$paned1_demo.destroy
|
|
$paned1_demo = nil
|
|
}).pack(:side=>:left, :expand=>true)
|
|
|
|
TkButton.new(f, :text=>'See Code', :width=>15, :command=>proc{
|
|
showCode 'paned1'
|
|
}).pack(:side=>:left, :expand=>true)
|
|
}
|
|
|
|
TkPanedwindow.new(base_frame, :orient=>:horizontal){|f|
|
|
add(Tk::Label.new(f, :text=>"This is the\nleft side", :bg=>'yellow'),
|
|
Tk::Label.new(f, :text=>"This is the\nright side", :bg=>'cyan'))
|
|
|
|
pack(:side=>:top, :expand=>true, :fill=>:both, :pady=>2, :padx=>'2m')
|
|
}
|