Als abschließendes Beispiel soll nun eine Toolbar entwickelt werden, welche das Starten anderer Applikationen, wie beispielsweise einer Shell, vom Desktop aus ermöglicht.
Um das in Abbildung 3.6 dargestellte Layout zu realisieren, muß das Hauptfenster spaltenweise in Frames unterteilt (Ressource -side left), damit über jedem Icon ein zentrierter Text dargestellt werden kann ( anders ist keine genaue Ausrichtung möglich). In diese Frames wird anschließend der Text und darunter das Icon (Image) gepackt (Ressource -side top).
Das die Toolbar nicht vom Window-Manager dekoriert wird ( dekorativer Rahmen welcher zur Positionierung sowie Iconifizierung dient) kann durch den folgenden Befehl erreicht werden:
wm overrideredirect toplevel-widgetname trueFür weitere Window-Manager-Befehle sei auf das nächste Kapitel verwiesen. Damit sich die Toolbar aber dennoch vom Hintergrund besser abhebt, wird ein großes Frame-Widget erzeugt welches alle Nachfolgewidgets enthält und dessen Relief (Ressource -relief) auf raised gesetzt ist.
Der benötigte Programm-Code sieht folgendermaßen aus:
#!/usr/bin/wish -f
wm overrideredirect . true
#----- define application names --------
set shell_app "xterm"
set mail_app "elm"
set help_app "xman"
set lock_app "xlock"
#----- devide toplevel into frames -----
frame .main -bd 3 -relief raised
frame .f1
frame .f2
frame .f3
frame .f4
#----- create contents of each frame ------
image create photo shell -file images/xterm.gif
label .l1 -text "Shell"
button .b1 -image shell -command { exec $shell_app & }
pack .l1 .b1 -in .f1 -side top
image create photo mail -file images/mail.gif
label .l2 -text "Mailtool"
button .b2 -image mail -command { exec $mail_app & }
pack .l2 .b2 -in .f2 -side top
image create photo help -file images/insight.gif
label .l3 -text "Help"
button .b3 -image help -command { exec $help_app & }
pack .l3 .b3 -in .f3 -side top
image create photo screensaver -file images/screensa.gif
label .l4 -text "Lock Screen"
button .b4 -image screensaver -command { exec $lock_app & }
pack .l4 .b4 -in .f4 -side top
#----- pack the widgettree -------
pack .f1 .f2 .f3 .f4 -in .main -side left -padx 2 -pady 4
pack .main