8 canvas
Hochspezialisierte und bestehende graphische Anwendungen (z.B. Prozessvisualisierungen), die direkten Zugriff auf das verwendete Fenstersystem brauchen, können das Dialogobjekt Canvas als privaten
Zeichenbereich nutzen.
Dieses Objekt stellt der DM der Applikation zur Verfügung. Der DM kümmert sich nicht um den Inhalt dieses Objektes, allein die Applikation ist für den Inhalt verantwortlich. Aus diesem Grund darf eine Canvas auch keine Kinder enthalten.
Definition
{ export | reexport } { model } canvas { <Bezeichner> } { <Standardattribute> <Allgemeine Attribute> <Hierarchieattribute> <Layoutattribute> <Objektspezifische Attribute> }
Die Handhabung der im Kapitel „Attribute“ aufgelisteten Attribute übernimmt der DM in gewohnter Manier. Typischerweise wird dieses Objekt dann verwendet, wenn die Applikation dynamische Grafiken oder Schaubilder darstellen muss.
Ereignisse
Kinder
Vater
Menü
8.1 Attribute
8.2 Spezifische Attribute
Attribut | Beschreibung |
---|---|
Legt die Art der Geometrieberechnung bei aktivem Raster fest. Die detaillierte Beschreibung finden sie in der Attribut-Beschreibung in der „Attributreferenz“. |
|
Definiert den Stil, also Darstellung und Ausprägung, des Rahmens (ab IDM-Version A.06.01.a). |
|
Spezifiziert eine Funktion, die bei einem bestimmten Ereignis aufgerufen werden soll. Diese Funktion muss von der Anwendung bereitgestellt werden und muss vom Typ canvasfunc sein. |
|
Index des Objekts im Kindvektor des Vaterobjekts. |
|
Siehe Kapitel „Bedeutung des Attribut .options“. Zusätzlich mögliche Indizes:
|
8.2.1 Bedeutung des Attribut .options
Mit Motif 1.1 können Sie nicht mittels der Tastaturnavigation über ein Objekt navigieren, wenn dieses Objekt ein Composite-Widget
ist oder dieses Widget keine Kinder hat. Es kann dabei auch zu einem Programmabsturz kommen.
Darum wurde für das Objekt Canvas die Option opt_accept_child verfügbar gemacht, welches entscheidet, ob ein DrawingArea-Widget (composite
, d.h. akzeptiert Kindobjekte) oder ein DrawnButton-Widget (primitive
, d.h. akzeptiert keine Kindobjekte) verwendet werden soll.
Das DrawnButton-Widget wird als Default verwendet.
Anwendungen, die eigene Widgets oder spezielle Widgets in der Canvas beinhalten, müssen die Option opt_accept_child setzen.
Wenn opt_accept_child auf true gesetzt wird, wird ein DrawingArea-Widget (Composite) für die Canvas verwendet. Default ist ein DrawnButton-Widget.
Die folgenden enum-Optionen werden nur ausgewertet, wenn opt_accept_child nicht gesetzt ist.
Wenn opt_focus_frame auf false gesetzt wird, wird die sog. location-cursor-border
(Tastaturfokus) nicht gezeichnet, wenn die Canvas den Fokus nicht hat. Der Default ist true.
option_index |
Bedeutung |
---|---|
Canvas akzeptiert Kind-Widgets (d.h. kein Fokus). |
|
Fokusrahmen wird nicht gezeichnet. |
|
Canvas zeichnet Motif-Schattenrand. |
8.3 Beispiel
model canvas MCanvas
{
.canvasfunc CanvasEvent;
.xauto 0;
.xleft 0;
.xright 0;
.yauto 0;
.ytop 0;
.ybottom 5;
.fgc DiaColor20;
.bgc Background;
.posraster true;
.sizeraster true;
.font DiaFont;
}