2.4 display
Die display-Ressource dient zur späteren Zuordnung eines Fensters an einen bestimmten Screen in einer Multiscreen-Umgebung (nur Motif). Den tatsächlich gewählten Screen kann man über das Attribut .real_screen erfragen.
Definition
{ export | reexport } display <Bezeichner> { screen(<Nummer>) } ;
Attribute
Attribut |
RSD |
PSD |
Eigenschaft |
Kurzbeschreibung |
---|---|---|---|---|
integer |
integer |
S,G/-/- |
Screen-Nummer |
|
integer |
integer |
-,G/-/- |
wirkliche Screen-Nummer |
Die Verwendung von ungültigen Screen-Nummern werden automatisch auf den Default-Screen (meistens, aber nicht zwangsläufig, 0) weitergeleitet. Gültige Nummern sind >=0. Das heißt, dass z.B. mit der Angabe von ‑1 der Default-Screen benutzt wird.
Besonderheiten
Das .screen-Attribut kann auch dynamisch per Regelsprache umgesetzt werden.
Verfügbarkeit
Multiscreen-Support ist nur vorhanden beim IDM für Motif. Gültige Screen-Nummern können über xpdyinfo bzw. das .screen[integer] Attribut am setup-Objekt ermittelt werden.
Siehe auch
2.4.1 Beispiel
Folgender Dialog zeigt, wie zwei Fenster auf verschiedenen Screens platziert und wie z.B. eine Behandlung für eine Single-Screen-Konfiguration durchgeführt werden kann:
dialog MultiScreen display DpyDef screen(-1); display DpyPrim screen(0); display DpySec screen(1); default window WINDOW { .width 200; .height 100; on close { exit(); } } // primary window on screen#0 // (not necessarily the default screen!) window WiPrim { .display DpyPrim; .title "Primary Window"; statictext StDefScreen { } } // secondary window on screen#1 window WiSec { .display DpySec; .title "Secondary Window"; listbox LbScreens { .xauto 0; .yauto 0; // move secondary window to another screen dynamically on select { this.window.display.screen := this.userdata[thisevent.index]; } } } on dialog start { variable integer I; StDefScreen.text := "Default Screen: " + setup.screen; // position second window below primary // when running in single-screen configuration if (setup.screencount = 1) then WiSec.ytop := WiPrim.ytop + WiPrim.real_width + 50; endif // list available screens for I:=1 to setup.screencount do LbScreens.content[I] := "Screen#" + setup.screen[I] + " " + setup.screen_width[I] + "x" + setup.screen_height[I]; LbScreens.userdata[I] := setup.screen[I]; endfor LbScreens.activeitem := LbScreens:find(.userdata, DpySec.real_screen); }