Next: Changing Page Tabs Up: TixNoteBook Previous: Keyboard Accelerators


Delaying the Creation of New Pages 

If your notebook contains many complicated pages, it may take quite a while to create all widgets inside these pages and your program will probably freezes for a few seconds when it pops up the notebook for the first time. To avoid embarrassing moments like this, we can use the ``delayed page creation'' feature of the TixNoteBook widget.

When we create a page using the add method, we can specify the optional parameter -createcmd so that we only need to create the page when the user wants to see it. This is illustrated in program 2-3:

tixNoteBook .n
.n add hd -label "Hard Disk" -underline 0 -createcmd CreateHd
.n add net -label "Network" -underline 0 -createCmd CreateNet

proc CreateHd {frame} {
tixControl $frame.access -label "Access Time:"
tixControl $frame.write -label "Write Throughput:"
tixControl $ -label "Read Througput:"
tixControl $frame.capacity -label "Capacity:"
pack $frame.access $frame.write $ $frame.capacity
-side top -fill x

proc CreateNet {frame} {

(Figure 2-3) Delayed Page Creation 

In line 2 of program 2-3, we use the -createcmd option to specify that the procedure CreateHd should be called when the ``Hard Disk'' page needs to be created. CreateHd takes one argument, the frame subwidget of the page. As we can see, program program 2-3 is not very different than program 2-2, except now we can issue less commands during the set-up of the NoteBook widget and the interface can be started up more quickly.