Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
8.5 Widgets<br />
Daneben gibt es noch die Konstanten <strong>SWT</strong>.APPLICATION_MODAL, <strong>SWT</strong>.<br />
MODELESS, <strong>SWT</strong>.PRIMARY_MODAL und <strong>SWT</strong>.SYSTEM_MODAL, die das modale<br />
Verhalten des Fensters bestimmen. Ein modales Fenster, das sich im<br />
Vordergrund befindet, lässt keine anderen Fenster der Applikation<br />
bzw. des Systems in den Vordergrund kommen. Ein solches Fenster<br />
sollte so instrumentiert sein, dass der Anwender das Fenster auch<br />
schließen kann.<br />
Wird kein Stilparameter angegeben, so hängt der Standardstil sowohl<br />
vom Betriebssystem als auch von der Art der Shell ab. So ist z.B. bei<br />
WindowsCE der Standardstil <strong>SWT</strong>.NONE. Bei anderen Windows-Versionen<br />
dagegen ist es SHELL_TRIM bzw. DIALOG_TRIM, je nach Art der Shell.<br />
Mit der Methode setImage() kann ein Icon spezifiziert werden,<br />
welches das Fenster repräsentiert, wenn es minimalisiert wird. Üblicherweise<br />
wird ein solches Icon auch in der Titelleiste gezeigt. Mit der<br />
Methode setImages() können Icons in verschiedenen Auflösungen<br />
spezifiziert werden, aus denen sich dann die Plattform für den jeweiligen<br />
Zweck das beste Icon aussuchen kann.<br />
Abb. 8–3 Eine Shell mit zwei Buttons (hier unter Windows2000). Die Shell wurde mit<br />
den Optionen <strong>SWT</strong>.BORDER, <strong>SWT</strong>.TITLE, <strong>SWT</strong>.CLOSE, <strong>SWT</strong>.MIN und <strong>SWT</strong>.MAX erzeugt, verfügt<br />
also über einen erhabenen Rand, eine Titelzeile und Tasten zum Schließen, Minimieren<br />
und Maximieren.<br />
Übrigens hat eine Shell nicht notwendigerweise eine rechteckige<br />
Gestalt. Durch Zuweisen einer Region kann man einer Shell eine beliebige<br />
Gestalt geben. Zunächst erzeugt man dazu eine Region-Instanz,<br />
der man dann mit add() Umrisslinien hinzufügt, oder aus der man mit<br />
subtract() auch wieder Teilbereiche entfernen kann. So kann man<br />
sogar »löchrige« Regions erzeugen. Mit setRegion() weist man dann<br />
die Region-Instanz der Shell zu. Wirksam wird eine solche Zuweisung<br />
aber nur für Shells vom Typ <strong>SWT</strong>.NO_TRIM. <strong>Das</strong> bedeutet, dass man für<br />
diese Shell das Schließen, Verschieben und das Verändern der Größe<br />
selbst organisieren muss. Abschnitt 10.3 zeigt die Konstruktion einer<br />
solchen irregulären Shell in der Praxis.<br />
Um ein erstes Beispielprogramm mit einer Shell zu schreiben, richten<br />
wir in der Workbench zunächst ein neues Projekt widgets ein und<br />
legen in diesem Projekt die Klasse widgetTest an. Diesem Projekt sind<br />
zunächst die <strong>SWT</strong>-Klassen nicht bekannt. Wir müssen die <strong>SWT</strong>-Biblio-<br />
Region<br />
159<br />
Die Workbench einrichten