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