next up previous contents index
Next: Imageviewer Up: Toolbar Previous: Packer

Beispiel : tb

Als abschließendes Beispiel soll nun eine Toolbar entwickelt werden, welche das Starten anderer Applikationen, wie beispielsweise einer Shell, vom Desktop aus ermöglicht.

 
Figure: Toolbar : tb

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 true  
Fü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.

 
Figure: Layout der Toolbar

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



Sascha Scherer
Fri Dec 6 09:58:01 MET 1996