XlInputExtensionExtras.mesa
Copyright Ó 1992 by Xerox Corporation. All rights reserved.
Created by Christian Jacobi, January 6, 1992 12:18:11 pm PST
Christian Jacobi, January 7, 1992 2:50 pm PST
This is a companion module for XlInputExtension.
Support for window manager functionality
This is a placeholder showing what could be implemented. None of it is actually there yet.
DIRECTORY Xl, XlInputExtension;
XlInputExtensionExtras: CEDAR DEFINITIONS ~ BEGIN
DeviceId: TYPE = XlInputExtension.DeviceId;
EventClass: TYPE = XlInputExtension.EventClass;
SendExtensionEvent: PROC [c: Xl.Connection, device, DeviceId, destination: Xl.Window, propagate: BOOL ¬ TRUE, eventClass: LIST OF EventClass, event: REF, details: Xl.Details ¬ NIL];
GetFeedBackControl: PROC [c: Xl.Connection, device: DeviceId] RETURNS [REF FeedbackSequence];
FeedbackSequence: TYPE = RECORD [SEQUENCE number: NAT OF FeedBackRef];
FeedBackRef: TYPE = REF FeedBackRec;
FeedbackType: TYPE = MACHINE DEPENDENT {kbdFeedBackState(0), ptrFeedBackState(1), stringFeedBackState(2), integerFeedBackState(3), ledFeedBackState(4), bellFeedBackState(5), (255)};
FeedbackClass: TYPE = MACHINE DEPENDENT {kbdFeedBackState(0), ptrFeedBackState(1), stringFeedBackState(2), integerFeedBackState(3), ledFeedBackState(4), bellFeedBackState(5), (255)};
FeedBackRec: TYPE = RECORD [
SELECT feedbackType: FeedbackType FROM
kbdFeedBackState => [??],
ptrFeedBackState => [??],
integerFeedBackState => [??],
stringFeedBackState => [??],
bellFeedBackState => [??],
ledFeedBackState => [??],
ENDCASE
];
ChangeFeedBackControl: PROC [c: Xl.Connection, code: WORD32, value: REF READONLY ANY];
DeviceBell: PROC [c: Xl.Connection, device: DeviceId, feedbackId: BYTE, feedbackClass: BYTE, details: Xl.Details ← NIL];
SetDeviceButtonMapping: PROC [c: Xl.Connection, device: DeviceId, map: Xl.PointerMapping] RETURNS [SetMappingSuccess];
SetMappingSuccess: TYPE = {success, busy};
Device control
ControlType: TYPE ~ CARD16;
deviceResolution: ControlType ~ 1;
DeviceResolutionState: TYPE = RECORD [
resolutions: SEQUENCE numValuators: BYTE OF XlInputExtension.AxisInfo
];
DeviceResolutionChangeRec: TYPE = RECORD [
first: BYTE,
resolutionValues: LIST OF CARD32
];
deviceResolutionDontChange: CARD32 ~ CARD32.LAST;
GetDeviceControl: PROC [c: Xl.Connection, device: DeviceId, controlType: ControlType ← deviceResolution] RETURNS [REF ANY];
For "deviceResolution" returned type is REF DeviceResolutionState
ChangeDeviceControl: PROC [c: Xl.Connection, device: DeviceId, controlType: ControlType ← deviceResolution, data: REF READONLY ANY] RETURNS [DeviceStatus];
For "deviceResolution", data should be of type REF DeviceResolutionChangeRec
END.