XlConventions.mesa
Copyright Ó 1988, 1989, 1990, 1991 by Xerox Corporation. All rights reserved.
Created by Christian Jacobi, May 2, 1988 4:40:43 pm PDT
Christian Jacobi, August 22, 1991 4:25 pm PDT
DIRECTORY
Rope USING [ROPE],
Xl USING [Connection, Window],
XlICCCMTypes USING [WMNormalHints, WMHints];
XlConventions: CEDAR DEFINITIONS
~ BEGIN
ROPE: TYPE = Rope.ROPE;
Connection: TYPE = Xl.Connection;
Window: TYPE = Xl.Window;
Window manager hints
ICCCM conventions in X.
SetWMNormalHints: PROC [c: Connection, window: Window, sizeHints: XlICCCMTypes.WMNormalHints, allways: BOOL ¬ FALSE];
Sets the WM NORMAL HINTS property.
If allways is false and no sizeHints fields are set, this is a noop
p flag fields computed from non defaulted values
SetWMHints: PROC [c: Connection, window: Window, hints: XlICCCMTypes.WMHints, allways: BOOL ¬ FALSE];
Sets the WM HINTS property.
If allways is false and no hints fields are set, this is a noop
p flag fields computed from non defaulted values
SetWindowName: PROC [c: Connection, window: Window, windowName: ROPE];
Sets the window header
SetIconName: PROC [c: Connection, window: Window, iconName: ROPE];
Sets the icon header; defaults to window header
SetWMTransient: PROC [c: Connection, window: Window, for: Window];
Sets the WM TRANSIENT FOR atom
SetWMClass: PROC [c: Connection, window: Window, instance, class: ROPE ¬ NIL];
Sets the WM CLASS atom
SetWMProtocols: PROC [c: Connection, window: Window, protocols: LIST OF ROPE ¬ NIL];
Sets the WM PROTOCOLS atom
Window manager cheats
Try to outsmart silly window managers
NOT ICCCM
This will be removed when all interesting window manager can be handled without these tricks.
WMQueryPosition: PROC [c: Connection] RETURNS [BOOL];
Returns whether current window manager makes interactive requests on window creation
This is a hint only
WMMakesHeader: PROC [c: Connection] RETURNS [BOOL];
Returns whether current window manager makes window headers
This is a hint only
Cut buffers
Follows outdated ICCCM Conventions. Circular buffer of depht 8. Store always rotates before downloading new value.
CutBufferGet: PROC [c: Connection] RETURNS [ROPE];
CutBufferPush: PROC [c: Connection, data: ROPE, hackForXTerm: BOOL ¬ FALSE];
IF hackForXTerm, violates ICCCM just enough so it works correctly with xterm (no rotate)
CutBufferRotate: PROC [c: Connection, amount: INT ¬ -1];
END.