next up previous contents index
Next: Tags Up: CDE - Entwicklungsumgebung Previous: CDE - Entwicklungsumgebung

Canvas-Widget

  Zur Darstellung der Abhängigkeiten zwischen den Dateien eignet sich das Canvas-Widget. Es stellt eine Art Zeichenbrett dar, auf dem graphische Objekte wie z.B. Rechtecke, Linien, Texte und auch Bitmaps dargestellt werden können. Wie auch beim Text-Widget sind hier Gruppierungen von Objekten durch das sog. Tagging möglich.

Zur Zeit (Tk4.0) unterstützt das Canvas-Widget folgende Graphikprimitiven:

Diese Objekte werden alle über die create-Methode des Canvas-Widgets erzeugt:
CanvasName create ObjectType x y [x y ...] [option value ...]
Hierbei ist CanvasName der Name des Canvas-Widgets in welchem das Objekt ObjectType an der Position x, y erzeugt werden soll (je nach Objekt können mehrere Koordinaten erforderlich sein). Zu beachten ist hierbei, daß dem Canvas-Widget das Koordinatensystem des X-Window Systems zugrundeliegt; der Ursprung befindet sich in der linken oberen Ecke. Die create-Methode liefert anschließend eine ID (eindeutige Nummer) zurück, über welche das Objekt wieder referenziert werden kann. Soll ein Objekt wieder gelöscht werden so stellt das Canvas-Widget die delete- Methode zur Verfügung.
CanvasName delete ObjectID
Sollen die Ressourcen eines Objektes verändert werden, so kann dazu die itemconfigure-Methode benutzt werden.
CanvasName itemconfigure ObjektID Resource Value
Wie in Kapitel 4 bereits erklärt wurde, kann mit dem bind-Befehl ein Tcl-Script an ein Event gebunden werden. Dies ist auch beim Canvas-Widget möglich, allerdings ist es mit dem bind-Kommando nicht möglich ein Skript an ein Event für ein bestimmtes Objekt in einem Canvas zu knüpfen. Um diese feinere Auflösung zu erreichen stellt das Canvas-Widget eine eigene bind-Methode zur Verfügung.
CanvasName bind ObjektID Event Script

Folgendes Beispiel soll dies verdeutlichen indem mehrere Objekte erzeugt werden und ihre Eigenschaften ändern wenn sich der Mauscursor über ihnen befindet.

 
Figure: Canvas-Widget

   #!/usr/bin/wish -f

   canvas .c -width 7c -height 6c

   pack .c

   set rec [ .c create rectangle 1c 1c 3c 3c -fill darkgreen ]
   set pol [ .c create polygon 3.5c 1c 7c 5c 6c 2c -fill darkgreen ]
   set cir [ .c create oval 5c 5c 1c 3.5c -fill darkgreen ]
 
   .c bind $rec <Any-Enter> { .c itemconfigure current -fill red }
   .c bind $rec <Any-Leave> { .c itemconfigure current -fill darkgreen }

   .c bind $pol <Any-Enter> { .c itemconfigure current -fill red }
   .c bind $pol <Any-Leave> { .c itemconfigure current -fill darkgreen }

   .c bind $cir <Any-Enter> { .c itemconfigure current -fill red }
   .c bind $cir <Any-Leave> { .c itemconfigure current -fill darkgreen }



next up previous contents index
Next: Tags Up: CDE - Entwicklungsumgebung Previous: CDE - Entwicklungsumgebung



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