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

extevent

focus

help

key

paste

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

document

notepage

record

transformer

Vater

groupbox

layoutbox

module

notepage

splitbox

toolbar

window

Menü

Popup-Menü

29.1 Attribute

.acc_label

.acc_text

.activeobject

.alignment

.backpage

.bgc

.binding

.bordercolor

.borderraster

.child[integer]

.childcount

.class

.control

.cursor

.cut_pending

.cut_pending_changed

.dialog

.direction

.document[integer]

.external

.external[integer]

.fgc

.firstchild

.firstrecord

.focus

.font

.function

.groupbox

.height

.help

.index

.label

.lastchild

.lastrecord

.layoutbox

.majortabheight

.majortabwidth

.mapped

.member[integer]

.membercount

.menu

.minortabheight

.minortabwidth

.model

.multiline

.notepage

options[enum]

.parent

.picheight

.picwidth

.posraster

.real_height

.real_sensitive

.real_visible

.real_width

.record[integer]

.recordcount

.scope

.sensitive

.sizeraster

.statushelp

.tabalignment

.tabshape

tile

.tilestyle

.toolbar

.toolhelp

.userdata

.visible

.width

.window

.xauto

.xleft

.xright

.yauto

.ybottom

.ytop

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

.activeobject

Die aktive, d.h. die aktuell oben liegende Notepage.

.alignment

Definiert die Ausrichtung des Statustextes, den jede Notepage besitzen kann.

.backpage
(nur Motif)

Definiert die Ecke, in der die seitlich sichtbaren Seitenkanten zusammentreffen.

.binding

Definiert die Art, wie ein Notebook gebunden werden soll.

.direction
(nur Motif)

Spezifiziert wird die Richtung, in der die Bindung verlaufen soll.

.height

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.

.majortabheight

Definiert die Höhe aller Majortabs (Hauptindex).

.majortabwidth

Definiert die Breite aller Majortabs (Hauptindex).

.menu

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:

  1. für jede Notepage wird ein Popup-Menü gesetzt, aber keines für das Notebook
  2. es wird ein Popup-Menü für das Notebook gesetzt, jedoch besitzt keine Notepage ein Popup-Menü.

.minortabheight

Definiert die Höhe aller Minortabs (Nebenindex).

.minortabwidth

Definiert die Breite aller Minortabs (Nebenindex).

.multiline

Gibt an, ob die Tabs mehrzeilig dargestellt werden sollen oder nicht.

options[enum]

Optionen des Objekts.

Indizes:

opt_center_toolhelp (nur IDM für Windows).

.picheight
(nur IDM für Windows)

Gibt die Höhe der in den enthaltenen Notepages dargestellten Bilder an.

.picwidth
(nur IDM für Windows)

Gibt die Breite der in den enthaltenen Notepages dargestellten Bilder an.

.tabalignment

Beschreibt die Ausrichtung des Textes in den Tabs eines Notebooks (nur IDM für Windows).

.tabshape

Definiert die Form der Major- und Minortabs.

tile

Definiert das Hintergrundbild des Objekts

.tilestyle

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.

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";
    }
  }
}

Abbildung 16-30: notebook