diff options
Diffstat (limited to 'library/demos/toolbar.tcl')
-rw-r--r-- | library/demos/toolbar.tcl | 69 |
1 files changed, 40 insertions, 29 deletions
diff --git a/library/demos/toolbar.tcl b/library/demos/toolbar.tcl index 0f25ce9..073d538 100644 --- a/library/demos/toolbar.tcl +++ b/library/demos/toolbar.tcl @@ -2,7 +2,7 @@ # # This demonstration script creates a toolbar that can be torn off. # -# RCS: @(#) $Id: toolbar.tcl,v 1.1 2007/10/22 14:21:10 dkf Exp $ +# RCS: @(#) $Id: toolbar.tcl,v 1.2 2007/10/23 06:31:16 das Exp $ if {![info exists widgetDemo]} { error "This script should be run from the \"widget\" demo." @@ -18,46 +18,57 @@ wm title $w "Toolbar Demonstration" wm iconname $w "toolbar" positionWindow $w +if {[tk windowingsystem] ne "aqua"} { + ttk::label $w.msg -wraplength 4i -text "This is a demonstration of how to do\ + a toolbar that is styled correctly and which can be torn off. The\ + buttons are configured to be \u201Ctoolbar style\u201D buttons by\ + telling them that they are to use the Toolbutton style. At the left\ + end of the toolbar is a simple marker that the cursor changes to a\ + movement icon over; drag that away from the toolbar to tear off the\ + whole toolbar into a separate toplevel widget. When the dragged-off\ + toolbar is no longer needed, just close it like any normal toplevel\ + and it will reattach to the window it was torn off from." +} else { ttk::label $w.msg -wraplength 4i -text "This is a demonstration of how to do\ - a toolbar that is styled correctly and which can be torn off. The\ - buttons are configured to be \u201Ctoolbar style\u201D buttons by\ - telling them that they are to use the Toolbutton style. At the left\ - end of the toolbar is a simple marker that the cursor changes to a\ - movement icon over; drag that away from the toolbar to tear off the\ - whole toolbar into a separate toplevel widget. When the dragged-off\ - toolbar is no longer needed, just close it like any normal toplevel\ - and it will reattach to the window it was torn off from." + a toolbar that is styled correctly. The buttons are configured to\ + be \u201Ctoolbar style\u201D buttons by telling them that they are\ + to use the Toolbutton style." +} ## Set up the toolbar hull set t [frame $w.toolbar] ;# Must be a frame! ttk::separator $w.sep ttk::frame $t.tearoff -cursor fleur -ttk::separator $t.tearoff.to -orient vertical -ttk::separator $t.tearoff.to2 -orient vertical +if {[tk windowingsystem] ne "aqua"} { + ttk::separator $t.tearoff.to -orient vertical + ttk::separator $t.tearoff.to2 -orient vertical + pack $t.tearoff.to -fill y -expand 1 -padx 2 -side left + pack $t.tearoff.to2 -fill y -expand 1 -side left +} ttk::frame $t.contents -pack $t.tearoff.to -fill y -expand 1 -padx 2 -side left -pack $t.tearoff.to2 -fill y -expand 1 -side left grid $t.tearoff $t.contents -sticky nsew grid columnconfigure $t $t.contents -weight 1 grid columnconfigure $t.contents 1000 -weight 1 -## Bindings so that the toolbar can be torn off and reattached -bind $t.tearoff <B1-Motion> [list tearoff $t %X %Y] -bind $t.tearoff.to <B1-Motion> [list tearoff $t %X %Y] -bind $t.tearoff.to2 <B1-Motion> [list tearoff $t %X %Y] -proc tearoff {w x y} { - if {[string match $w* [winfo containing $x $y]]} { - return +if {[tk windowingsystem] ne "aqua"} { + ## Bindings so that the toolbar can be torn off and reattached + bind $t.tearoff <B1-Motion> [list tearoff $t %X %Y] + bind $t.tearoff.to <B1-Motion> [list tearoff $t %X %Y] + bind $t.tearoff.to2 <B1-Motion> [list tearoff $t %X %Y] + proc tearoff {w x y} { + if {[string match $w* [winfo containing $x $y]]} { + return + } + grid remove $w + grid remove $w.tearoff + wm manage $w + wm protocol $w WM_DELETE_WINDOW [list untearoff $w] + } + proc untearoff {w} { + wm forget $w + grid $w.tearoff + grid $w } - grid remove $w - grid remove $w.tearoff - wm manage $w - wm protocol $w WM_DELETE_WINDOW [list untearoff $w] -} -proc untearoff {w} { - wm forget $w - grid $w.tearoff - grid $w } ## Toolbar contents |