29 notebook
Das notebook symbolisiert ein Notizbuch mit verschiedenen Seiten, die notepages. Es ist in unterschiedliche Abschnitte unterteilt, die durch Reiter, sog. Tabs
, markiert sind.
Dieses Objekt kann z.B. zur Parameterdarstellung eingesetzt werden, um bestimmte Grundeinstellungen vorzunehmen. Des weiteren können mit Hilfe des Notebooks auch Daten dargestellt werden, die in logische Gruppierungen unterteilbar sind.
Definition
{ export | reexport } { model } notebook { <Bezeichner> } { <Standardattribute> <Allgemeine Attribute> <Geometrieattribute> <Hierarchieattribute> <Layoutattribute> <Objektspezifische Attribute> }
Ereignisse
Da die Tabs der Notepages eigentlich zum Notebook-Objekt gehören, wird beim Fokussieren eines Notepage-Tabs ein focus-Ereignis am Notebook-Objekt erzeugt.
Kinder
Vater
Menü
29.1 Attribute
29.2 Spezifische Attribute
Die Eigenschaften der Tableiste (diese gehört nicht zu den Notepages sondern zum Notebook) bzw. der Notepages allgemein werden über die Attribute .activeobject, .alignment, .backpage, .binding, .direction, .majortabheight, .majortabwidth, .minortabheight, .minortabwidth, .multiline, .tabalignment und .tabshape geregelt.
Attribut | Beschreibung |
---|---|
Die aktive, d.h. die aktuell oben liegende Notepage. |
|
Definiert die Ausrichtung des Statustextes, den jede Notepage besitzen kann. |
|
.backpage
|
Definiert die Ecke, in der die seitlich sichtbaren Seitenkanten zusammentreffen. |
Definiert die Art, wie ein Notebook gebunden werden soll. |
|
.direction
|
Spezifiziert wird die Richtung, in der die Bindung verlaufen soll. |
Definiert die Höhe des gesamten Notebook-Objekts mit all seinen Elementen. Wird die Höhe zu klein definiert, wird ein fenstersystemabhängiger Minimalwert genommen. |
|
Definiert die Höhe aller Majortabs (Hauptindex). |
|
Definiert die Breite aller Majortabs (Hauptindex). |
|
Die Verfügbarkeit eines Popup-Menüs, das nur für das Notebook gilt, ist fenstersystemabhängig. Daher sollten - falls ein Popup-Menü vorhanden sein soll - nur zwei Varianten verfolgt werden:
|
|
Definiert die Höhe aller Minortabs (Nebenindex). |
|
Definiert die Breite aller Minortabs (Nebenindex). |
|
Gibt an, ob die Tabs mehrzeilig dargestellt werden sollen oder nicht. |
|
Optionen des Objekts. Indizes: opt_center_toolhelp (nur IDM für Windows). |
|
.picheight
|
Gibt die Höhe der in den enthaltenen Notepages dargestellten Bilder an. |
.picwidth
|
Gibt die Breite der in den enthaltenen Notepages dargestellten Bilder an. |
Beschreibt die Ausrichtung des Textes in den Tabs eines Notebooks (nur IDM für Windows). |
|
Definiert die Form der Major- und Minortabs. |
|
Definiert das Hintergrundbild des Objekts |
|
Gibt die Art und Weise an, wie das in tile definierte Hintergrundbild dargestellt wird. |
29.3 Anmerkungen für Microsoft Windows
Das Notebook-Objekt zeichnet den Bereich neben den Reitern immer in der 3D-Objekt
Hintergrundfarbe. Um zu erreichen, dass sich das Notebook nahtlos in sein Vaterobjekt einfügt, sollte die Hintergrundfarbe des Vaterobjektes auf CLR_BUTTONFACE gesetzt werden.
Die Reiter des Notebook-Objekts können entweder alle gleich groß sein oder jeder Reiter besitzt eine Breite und Höhe, die dem Titel entspricht. Im letzten Fall werden die Reiter von Windows berechnet (tritt nur ein, wenn .majortabheight, .majortabwidth und .tabalignment auf den Wert 0 gesetzt sind).
Im ersten Fall, wenn alle Reiter gleich groß sind, werden die Breite und die Höhe durch den IDM berechnet. Um die Darstellung aller Reiter in derselben Größe zu erreichen, kann entweder das Attribut .tabalignment = 1 gesetzt werden oder mindestens eines der Attribute .majortabwidth und .majortabheight ist ungleich 0.
Zum Erreichen der für den jeweiligen Fall besten Lösung sollten hier verschiedene Kombinationen durchgegangen werden. Beispielsweise berechnet der IDM die Breite der Reiter automatisch, wenn das Attribut .majortabheight <> 0 ist.
Bei aktiven Visual Styles
wird der Titel einer Notepage nach rechts verschoben, wenn er ein Mnemonic enthält. Um den Effekt zu vermeiden sollten für Notebooks die unter Windows üblichen Einstellungen
.tabalignment := 0;
.majortabwidth := 0;
gewählt werden. Wenn Mnemomics ohne die genannten Einstellungen verwendet werden, sollten alle Notepages eines Notebooks Mnemonics besitzen, damit bei allen Titeln die gleiche Verschiebung auftritt.
Siehe auch
Kapitel „Anmerkungen zum IDM für Windows“ beim Objekt notepage
29.4 Anmerkungen zum IDM für Motif
Ab IDM-Version A.05.01.d kommen die activate- und deactivate-Ereignisse für die Notepage im IDM für Motif nun analog zum IDM für Windows.
-
activate wird ausgelöst
- initial bei der Sichtbarmachung eines Notebooks für die aktive Notepage
- beim Umschaltung der Aktivierung per Maus oder Tastatur
- beim Umsetzen der Aktivierung durch setzen des .active-Attributs auf true an einer anderen Notepage
- beim unsichtbar Setzen oder Zerstören der gerade aktive Notepage für die nun neu aktivierte Notepage
-
deactivate wird ausgelöst
- beim unsichtbar Machen eines Notebooks für die gerade aktive Notepage
- beim Umsetzen der aktiven Notepage per Maus oder Tastatur
- beim Setzen von .active auf true bei einer anderen Notepage
Achtung
Beim erneuten Sichtbarmachen (Clobbering
) eines ohnehin sichtbaren Notebooks bzw. einer ohnehin sichtbaren Notepage, ausgelöst durch einige spezielle Attributänderungen, kommt es ebenso zur Versendung von activate- und deactivate-Ereignissen.
Das deactivate-Ereignis wird nicht ausgelöst, wenn das Notebook oder die Notepage bzw. das übergeordnete Objekt mit destroy() zerstört wird.
29.5 Beispiel
dialog D window W { .active false; .width 359; .height 243; .title "Beispiel"; child notebook N { .xleft 45; .width 181; .ytop 19; .height 150; child notepage Np1 { .active true; .title "AAA"; } child notepage Np2 { .title "BBB"; } child notepage Np3 { .title "CCC"; } } }