See docs at http://incrtcl.sourceforge.net/iwidgets/iwidgets/notebook.html and http://purl.org/tcl/home/man/iwidgets3.0/notebook.n.html
See also Notebook App.
BWidgets has a notebook widget as well. Michael McLennan wrote one for the BOOK Effective Tcl - Writing Better Programs in Tcl and Tk - source code available at [L1 ]. Also Donal Fellows has written a notebook [L2 ]. RS used the BWidget "page manager" to create a vertical-tab notebook, which conveniently can hold e.g. 26 single-letter tabs.
Rohan Pall Wow, this page is popular ;) So here's my two cents: I keep examples of each little Tcl/Tk component. This way I don't forget how to do something. Here is my BWidgets NoteBook example. If I remember correctly, I think I learnt this from Bryan Oakley in a comp.lang.tcl newsgroup posting.
BWidgets is an excellent package.
The code has been tested with BWidget 1.4.1 on
package require BWidget set nb [NoteBook .nb -side top] $nb insert 0 foo -text "foo" $nb insert 1 bar -text "bar" set pane [$nb getframe foo] label $pane.hello -text "hello world" pack $pane.hello -fill both -expand 1 set pane [$nb getframe bar] button $pane.fizz -text testing pack $pane.fizz -fill both -expand true pack $nb -fill both -expand 1 $nb raise foo
Michael Jacobson Oct 8, 2002 ~ I was trying to get the BWidgets NoteBook to work with a popup menu displayed on the active tab when you right clicked on the tab. I thought I would document how to do it below.
package require BWidget ## create a notebook with 2 text panes NoteBook .n .n insert 0 text1 -text Text1 .n insert 1 text2 -text Text2 foreach panel {text1 text2} { set pane [.n getframe $panel] text $pane.t pack $pane.t -fill both -expand 1 } pack .n .n raise text1 ## make a popup menu for the tabs (just add commands) menu .popup -tearoff 0 -activeborderwidth 0 .popup add command -label "mess 1" -command [list puts "in mess 1"] .popup add command -label "mess 2" -command [list puts "in mess 2"] .popup add separator .popup add command -label "mess n" -command [list puts "in mess n"] ## bind right mouse button to the popup menus .n bindtabs <Button-3> [list popup .popup %X %Y] proc popup {win X Y pane} { # check to see if current click is on the top tab if {[string equal [.n raise] $pane]} { tk_popup $win $X $Y } }
[ Category Command | Part of incr Widgets ]