mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-06 14:10:23 +02:00
+ added unit xtestext1 (header translation of X11/extensions/xtestext1.h)
This commit is contained in:
parent
68e026ab2d
commit
a061b2e763
@ -217,6 +217,14 @@ begin
|
||||
AddUnit('x');
|
||||
AddUnit('xlib');
|
||||
end;
|
||||
T:=P.Targets.AddUnit('xtestext1.pp');
|
||||
with T.Dependencies do
|
||||
begin
|
||||
AddInclude('xtestext1const.inc');
|
||||
AddUnit('x');
|
||||
AddUnit('xlib');
|
||||
AddUnit('xmd');
|
||||
end;
|
||||
|
||||
{$ifndef ALLPACKAGES}
|
||||
Run;
|
||||
|
109
packages/x11/src/xtestext1.pp
Normal file
109
packages/x11/src/xtestext1.pp
Normal file
@ -0,0 +1,109 @@
|
||||
(*
|
||||
* xtestext1.h
|
||||
*
|
||||
* X11 Input Synthesis Extension include file
|
||||
*)
|
||||
|
||||
(*
|
||||
|
||||
|
||||
Copyright 1986, 1987, 1988, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1986, 1987, 1988 by Hewlett-Packard Corporation
|
||||
|
||||
Permission to use, copy, modify, and distribute this
|
||||
software and its documentation for any purpose and without
|
||||
fee is hereby granted, provided that the above copyright
|
||||
notice appear in all copies and that both that copyright
|
||||
notice and this permission notice appear in supporting
|
||||
documentation, and that the name of Hewlett-Packard not be used in
|
||||
advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
Hewlett-Packard makes no representations about the
|
||||
suitability of this software for any purpose. It is provided
|
||||
"as is" without express or implied warranty.
|
||||
|
||||
This software is not subject to any license of the American
|
||||
Telephone and Telegraph Company or of the Regents of the
|
||||
University of California.
|
||||
|
||||
*)
|
||||
|
||||
unit xtestext1;
|
||||
|
||||
{$PACKRECORDS c}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
ctypes, x, xlib, xmd;
|
||||
|
||||
const
|
||||
libXext = 'Xext';
|
||||
|
||||
(*
|
||||
* the typedefs for CARD8, CARD16, and CARD32 are defined in Xmd.h
|
||||
*)
|
||||
|
||||
{$I xtestext1const.inc}
|
||||
|
||||
(*
|
||||
* This is the definition for the input action host format event structure.
|
||||
* This is the form that a client using this extension will see when
|
||||
* it receives an input action event.
|
||||
*)
|
||||
type
|
||||
PXTestInputActionEvent = ^TXTestInputActionEvent;
|
||||
TXTestInputActionEvent = record
|
||||
_type: cint; { always XTestInputActionType }
|
||||
display: PDisplay;
|
||||
window: TWindow;
|
||||
actions: array [0..XTestACTIONS_SIZE-1] of CARD8;
|
||||
end;
|
||||
|
||||
(*
|
||||
* This is the definition for the xTestFakeAck host format event structure.
|
||||
* This is the form that a client using this extension will see when
|
||||
* it receives an XTestFakeAck event.
|
||||
*)
|
||||
PXTestFakeAckEvent = ^TXTestFakeAckEvent;
|
||||
TXTestFakeAckEvent = record
|
||||
_type: cint; { always XTestFakeAckType }
|
||||
display: PDisplay;
|
||||
window: TWindow;
|
||||
end;
|
||||
|
||||
function XTestFakeInput({register} dpy: PDisplay; action_list_addr: Pchar; action_list_size, ack_flag: cint): cint; cdecl; external libXext;
|
||||
function XTestGetInput({register} dpy: PDisplay; action_handling: cint): cint; cdecl; external libXext;
|
||||
function XTestQueryInputSize({register} dpy: PDisplay; size_return: Pculong): cint; cdecl; external libXext;
|
||||
function XTestPressKey(display: PDisplay; device_id: cint; delay: culong; keycode, key_action: cuint): cint; cdecl; external libXext;
|
||||
function XTestPressButton(display: PDisplay; device_id: cint; delay: culong; button_number, button_action: cuint): cint; cdecl; external libXext;
|
||||
function XTestMovePointer(display: PDisplay; device_id: cint; delay: Pculong; x, y: Pcint; count: cuint): cint; cdecl; external libXext;
|
||||
function XTestFlush(display: PDisplay): cint; cdecl; external libXext;
|
||||
function XTestStopInput({register} dpy: PDisplay): cint; cdecl; external libXext;
|
||||
function XTestReset({register} dpy: PDisplay): cint; cdecl; external libXext;
|
||||
|
||||
implementation
|
||||
end.
|
156
packages/x11/src/xtestext1const.inc
Normal file
156
packages/x11/src/xtestext1const.inc
Normal file
@ -0,0 +1,156 @@
|
||||
(*
|
||||
* xtestext1.h
|
||||
*
|
||||
* X11 Input Synthesis Extension include file
|
||||
*)
|
||||
|
||||
(*
|
||||
|
||||
|
||||
Copyright 1986, 1987, 1988, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1986, 1987, 1988 by Hewlett-Packard Corporation
|
||||
|
||||
Permission to use, copy, modify, and distribute this
|
||||
software and its documentation for any purpose and without
|
||||
fee is hereby granted, provided that the above copyright
|
||||
notice appear in all copies and that both that copyright
|
||||
notice and this permission notice appear in supporting
|
||||
documentation, and that the name of Hewlett-Packard not be used in
|
||||
advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
Hewlett-Packard makes no representations about the
|
||||
suitability of this software for any purpose. It is provided
|
||||
"as is" without express or implied warranty.
|
||||
|
||||
This software is not subject to any license of the American
|
||||
Telephone and Telegraph Company or of the Regents of the
|
||||
University of California.
|
||||
|
||||
*)
|
||||
|
||||
const
|
||||
XTestMAX_ACTION_LIST_SIZE = 64;
|
||||
XTestACTIONS_SIZE = 28;
|
||||
|
||||
|
||||
(*
|
||||
* used in the XTestPressButton and XTestPressKey functions
|
||||
*)
|
||||
XTestPRESS = 1 shl 0;
|
||||
XTestRELEASE = 1 shl 1;
|
||||
XTestSTROKE = 1 shl 2;
|
||||
|
||||
(*
|
||||
* When doing a key or button stroke, the number of milliseconds
|
||||
* to delay between the press and the release of a key or button
|
||||
* in the XTestPressButton and XTestPressKey functions.
|
||||
*)
|
||||
|
||||
XTestSTROKE_DELAY_TIME = 10;
|
||||
|
||||
(*
|
||||
* used in the XTestGetInput function
|
||||
*)
|
||||
XTestEXCLUSIVE = 1 shl 0;
|
||||
XTestPACKED_ACTIONS = 1 shl 1;
|
||||
XTestPACKED_MOTION = 1 shl 2;
|
||||
|
||||
(*
|
||||
* used in the XTestFakeInput function
|
||||
*)
|
||||
XTestFAKE_ACK_NOT_NEEDED = 0;
|
||||
XTestFAKE_ACK_REQUEST = 1;
|
||||
|
||||
(*
|
||||
* used in the XTest extension initialization routine
|
||||
*)
|
||||
XTestEXTENSION_NAME = 'XTestExtension1';
|
||||
XTestEVENT_COUNT = 2;
|
||||
|
||||
(*
|
||||
* This is the definition for the format of the header byte
|
||||
* in the input action structures.
|
||||
*)
|
||||
XTestACTION_TYPE_MASK = $03; { bits 0 and 1 }
|
||||
XTestKEY_STATE_MASK = $04; { bit 2 (key action) }
|
||||
XTestX_SIGN_BIT_MASK = $04; { bit 2 (motion action) }
|
||||
XTestY_SIGN_BIT_MASK = $08; { bit 3 (motion action) }
|
||||
XTestDEVICE_ID_MASK = $f0; { bits 4 through 7 }
|
||||
|
||||
XTestMAX_DEVICE_ID = $0f;
|
||||
//#define XTestPackDeviceID(x) (((x) & XTestMAX_DEVICE_ID) << 4)
|
||||
//#define XTestUnpackDeviceID(x) (((x) & XTestDEVICE_ID_MASK) >> 4)
|
||||
|
||||
(*
|
||||
* These are the possible action types.
|
||||
*)
|
||||
XTestDELAY_ACTION = 0;
|
||||
XTestKEY_ACTION = 1;
|
||||
XTestMOTION_ACTION = 2;
|
||||
XTestJUMP_ACTION = 3;
|
||||
|
||||
(*
|
||||
* These are the definitions for key/button motion input actions.
|
||||
*)
|
||||
XTestKEY_UP = $04;
|
||||
XTestKEY_DOWN = $00;
|
||||
|
||||
(*
|
||||
* These are the definitions for pointer relative motion input
|
||||
* actions.
|
||||
*
|
||||
* The sign bits for the x and y relative motions are contained
|
||||
* in the header byte. The x and y relative motions are packed
|
||||
* into one byte to make things fit in 32 bits. If the relative
|
||||
* motion range is larger than +/-15, use the pointer jump action.
|
||||
*)
|
||||
XTestMOTION_MAX = 15;
|
||||
XTestMOTION_MIN = -15;
|
||||
|
||||
XTestX_NEGATIVE = $04;
|
||||
XTestY_NEGATIVE = $08;
|
||||
|
||||
XTestX_MOTION_MASK = $0f;
|
||||
XTestY_MOTION_MASK = $f0;
|
||||
|
||||
//#define XTestPackXMotionValue(x) ((x) & XTestX_MOTION_MASK)
|
||||
//#define XTestPackYMotionValue(x) (((x) << 4) & XTestY_MOTION_MASK)
|
||||
|
||||
//#define XTestUnpackXMotionValue(x) ((x) & XTestX_MOTION_MASK)
|
||||
//#define XTestUnpackYMotionValue(x) (((x) & XTestY_MOTION_MASK) >> 4)
|
||||
(*
|
||||
* These are the definitions for a long delay input action. It is
|
||||
* used when more than XTestSHORT_DELAY_TIME milliseconds of delay
|
||||
* (approximately one minute) is needed.
|
||||
*
|
||||
* The device ID for a delay is always set to XTestDELAY_DEVICE_ID.
|
||||
* This guarantees that a header byte with a value of 0 is not
|
||||
* a valid header, so it can be used as a flag to indicate that
|
||||
* there are no more input actions in an XTestInputAction event.
|
||||
*)
|
||||
|
||||
XTestSHORT_DELAY_TIME = $ffff;
|
||||
XTestDELAY_DEVICE_ID = $0f;
|
16
packages/x11/tests/xtestext1_linktest.pp
Normal file
16
packages/x11/tests/xtestext1_linktest.pp
Normal file
@ -0,0 +1,16 @@
|
||||
{ this program just links all externals, declared in the xtestext1 unit }
|
||||
program xtestext1_linktest;
|
||||
uses
|
||||
xtestext1;
|
||||
begin
|
||||
halt(0);
|
||||
XTestFakeInput(nil,nil,0,0);
|
||||
XTestGetInput(nil,0);
|
||||
XTestQueryInputSize(nil,nil);
|
||||
XTestPressKey(nil,0,0,0,0);
|
||||
XTestPressButton(nil,0,0,0,0);
|
||||
XTestMovePointer(nil,0,nil,nil,nil,0);
|
||||
XTestFlush(nil);
|
||||
XTestStopInput(nil);
|
||||
XTestReset(nil);
|
||||
end.
|
Loading…
Reference in New Issue
Block a user