Skript Tcl/Tk - Praktische Informatik / Datenbanken - Universität Kassel
Skript Tcl/Tk - Praktische Informatik / Datenbanken - Universität Kassel
Skript Tcl/Tk - Praktische Informatik / Datenbanken - Universität Kassel
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Kapitel 7 – Packen, Rastern, Plazieren von Fenstern 107<br />
option add *Notebook.borderWidth 2 WidgetDefault<br />
option add *Notebook.relief sunken WidgetDefault<br />
Das Kommando pack propagate hilft uns die Größe zu kontrollieren.<br />
Wir übergehen das hier momentan.<br />
Die Information über den Zustand des Notizbuchs legen wir in einen<br />
globalen Vektor nbInfo, dessen Felder die Seitenanzahl, die Liste der<br />
Seiten und den Namen der gegenwärtigen Seite enthalten.<br />
Die Prozedur notebook_create liefert den Namen des gerade<br />
geschaffenen Notizbuchs zurück.<br />
Jetzt schauen wir uns die Prozedur zum Erzeugen von Seiten an. Sie<br />
verlangt den Namen des Notizbuchs und einen Namen für die Seite.<br />
proc notebook_page {win name} {<br />
global nbInfo<br />
set page "$win.page[incr nbInfo($win-count)]"<br />
lappend nbInfo($win-pages) $page<br />
set nbInfo($win-page-$name) $page<br />
frame $page<br />
if {$nbInfo($win-count) == 1} {<br />
after idle [list notebook_display $win $name]<br />
}<br />
return page<br />
}<br />
Zunächst werden neue, eindeutige Namen durch Hochzählen der Seitennummer<br />
in nbInfo generiert. In unserem Notizbuch .nb entstehen so<br />
für die Seitenfenster die Bezeichner .nb.page1, .nb.page2, usw.<br />
Dieser neu generierte Name kommt in die Liste der Namen in nbInfo<br />
und wird in der Variablen page gespeichert. Es wird ein frame dafür<br />
erzeugt und der Name wird zurückgeliefert.<br />
Ist es die erste Seite, wird sie angezeigt, sobald die Anwendung nichts<br />
mehr zu tun hat. Insbesondere sollten dann auch die anderen Seiten generiert<br />
worden sein, so daß deren Größe bekannt ist und damit das Notizbuch<br />
richtig eingestellt werden kann. Das list-Kommando darin<br />
bewirkt die richtige Aufbereitung der Argumente und wird in Abschnitt<br />
3.1.5 [12] besprochen.