+ added header translation of X11/extensions/XI2.h

git-svn-id: trunk@33608 -
This commit is contained in:
nickysn 2016-05-01 23:53:18 +00:00
parent 8d4e07c262
commit 03dcc0f9ff
3 changed files with 278 additions and 0 deletions

1
.gitattributes vendored
View File

@ -8052,6 +8052,7 @@ packages/x11/src/xf86dga1.inc svneol=native#text/plain
packages/x11/src/xf86vmode.pp svneol=native#text/plain
packages/x11/src/xft.pas svneol=native#text/pascal
packages/x11/src/xi.pp svneol=native#text/plain
packages/x11/src/xi2.pp svneol=native#text/plain
packages/x11/src/xinerama.pp svneol=native#text/plain
packages/x11/src/xkb.pp svneol=native#text/plain
packages/x11/src/xkblib.pp svneol=native#text/plain

View File

@ -50,6 +50,7 @@ begin
AddUnit('xlib');
end;
T:=P.Targets.AddUnit('xi.pp');
T:=P.Targets.AddUnit('xi2.pp');
T:=P.Targets.AddUnit('xkblib.pp');
with T.Dependencies do
begin

276
packages/x11/src/xi2.pp Normal file
View File

@ -0,0 +1,276 @@
(*
* Copyright © 2009 Red Hat, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) 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 AUTHORS OR COPYRIGHT HOLDERS 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.
*
*)
unit xi2;
{$PACKRECORDS C}
interface
uses
ctypes;
const
XInput_2_0 = 7;
(* DO NOT ADD TO THIS LIST. These are libXi-specific defines.
See commit libXi-1.4.2-21-ge8531dd *)
XI_2_Major = 2;
XI_2_Minor = 3;
{ Property event flags }
XIPropertyDeleted = 0;
XIPropertyCreated = 1;
XIPropertyModified = 2;
{ Property modes }
XIPropModeReplace = 0;
XIPropModePrepend = 1;
XIPropModeAppend = 2;
{ Special property type used for XIGetProperty }
XIAnyPropertyType = 0;
{ Enter/Leave and Focus In/Out modes }
XINotifyNormal = 0;
XINotifyGrab = 1;
XINotifyUngrab = 2;
XINotifyWhileGrabbed = 3;
XINotifyPassiveGrab = 4;
XINotifyPassiveUngrab = 5;
{ Enter/Leave and focus In/out detail }
XINotifyAncestor = 0;
XINotifyVirtual = 1;
XINotifyInferior = 2;
XINotifyNonlinear = 3;
XINotifyNonlinearVirtual = 4;
XINotifyPointer = 5;
XINotifyPointerRoot = 6;
XINotifyDetailNone = 7;
{ Grab modes }
XIGrabModeSync = 0;
XIGrabModeAsync = 1;
XIGrabModeTouch = 2;
{ Grab reply status codes }
XIGrabSuccess = 0;
XIAlreadyGrabbed = 1;
XIGrabInvalidTime = 2;
XIGrabNotViewable = 3;
XIGrabFrozen = 4;
{ Grab owner events values }
XIOwnerEvents = True;
XINoOwnerEvents = False;
{ Passive grab types }
XIGrabtypeButton = 0;
XIGrabtypeKeycode = 1;
XIGrabtypeEnter = 2;
XIGrabtypeFocusIn = 3;
XIGrabtypeTouchBegin = 4;
{ Passive grab modifier }
XIAnyModifier = LongWord(1) shl 31;
XIAnyButton = 0;
XIAnyKeycode = 0;
{ XIAllowEvents event-modes }
XIAsyncDevice = 0;
XISyncDevice = 1;
XIReplayDevice = 2;
XIAsyncPairedDevice = 3;
XIAsyncPair = 4;
XISyncPair = 5;
XIAcceptTouch = 6;
XIRejectTouch = 7;
{ DeviceChangedEvent change reasons }
XISlaveSwitch = 1;
XIDeviceChange = 2;
{ Hierarchy flags }
XIMasterAdded = 1 shl 0;
XIMasterRemoved = 1 shl 1;
XISlaveAdded = 1 shl 2;
XISlaveRemoved = 1 shl 3;
XISlaveAttached = 1 shl 4;
XISlaveDetached = 1 shl 5;
XIDeviceEnabled = 1 shl 6;
XIDeviceDisabled = 1 shl 7;
{ ChangeHierarchy constants }
XIAddMaster = 1;
XIRemoveMaster = 2;
XIAttachSlave = 3;
XIDetachSlave = 4;
XIAttachToMaster = 1;
XIFloating = 2;
{ Valuator modes }
XIModeRelative = 0;
XIModeAbsolute = 1;
{ Device types }
XIMasterPointer = 1;
XIMasterKeyboard = 2;
XISlavePointer = 3;
XISlaveKeyboard = 4;
XIFloatingSlave = 5;
(* Device classes: classes that are not identical to Xi 1.x classes must be
* numbered starting from 8. *)
XIKeyClass = 0;
XIButtonClass = 1;
XIValuatorClass = 2;
XIScrollClass = 3;
XITouchClass = 8;
{ Scroll class types }
XIScrollTypeVertical = 1;
XIScrollTypeHorizontal = 2;
{ Scroll class flags }
XIScrollFlagNoEmulation = 1 shl 0;
XIScrollFlagPreferred = 1 shl 1;
{ Device event flags (common) }
{ Device event flags (key events only) }
XIKeyRepeat = 1 shl 16;
{ Device event flags (pointer events only) }
XIPointerEmulated = 1 shl 16;
{ Device event flags (touch events only) }
XITouchPendingEnd = 1 shl 16;
XITouchEmulatingPointer = 1 shl 17;
{ Barrier event flags }
XIBarrierPointerReleased = 1 shl 0;
XIBarrierDeviceIsGrabbed = 1 shl 1;
{ Touch modes }
XIDirectTouch = 1;
XIDependentTouch = 2;
{ XI2 event mask macros }
procedure XISetMask(ptr: Pcuchar; event: cint); inline;
procedure XIClearMask(ptr: Pcuchar; event: cint); inline;
function XIMaskIsSet(ptr: Pcuchar; event: cint): Boolean; inline;
function XIMaskLen(event: cint): cint; inline;
const
{ Fake device ID's for event selection }
XIAllDevices = 0;
XIAllMasterDevices = 1;
{ Event types }
XI_DeviceChanged = 1;
XI_KeyPress = 2;
XI_KeyRelease = 3;
XI_ButtonPress = 4;
XI_ButtonRelease = 5;
XI_Motion = 6;
XI_Enter = 7;
XI_Leave = 8;
XI_FocusIn = 9;
XI_FocusOut = 10;
XI_HierarchyChanged = 11;
XI_PropertyEvent = 12;
XI_RawKeyPress = 13;
XI_RawKeyRelease = 14;
XI_RawButtonPress = 15;
XI_RawButtonRelease = 16;
XI_RawMotion = 17;
XI_TouchBegin = 18; { XI 2.2 }
XI_TouchUpdate = 19;
XI_TouchEnd = 20;
XI_TouchOwnership = 21;
XI_RawTouchBegin = 22;
XI_RawTouchUpdate = 23;
XI_RawTouchEnd = 24;
XI_BarrierHit = 25; { XI 2.3 }
XI_BarrierLeave = 26;
XI_LASTEVENT = XI_BarrierLeave;
(* NOTE: XI2LASTEVENT in xserver/include/inputstr.h must be the same value
* as XI_LASTEVENT if the server is supposed to handle masks etc. for this
* type of event. *)
(* Event masks.
* Note: the protocol spec defines a mask to be of (1 << type). Clients are
* free to create masks by bitshifting instead of using these defines.
*)
XI_DeviceChangedMask = 1 shl XI_DeviceChanged;
XI_KeyPressMask = 1 shl XI_KeyPress;
XI_KeyReleaseMask = 1 shl XI_KeyRelease;
XI_ButtonPressMask = 1 shl XI_ButtonPress;
XI_ButtonReleaseMask = 1 shl XI_ButtonRelease;
XI_MotionMask = 1 shl XI_Motion;
XI_EnterMask = 1 shl XI_Enter;
XI_LeaveMask = 1 shl XI_Leave;
XI_FocusInMask = 1 shl XI_FocusIn;
XI_FocusOutMask = 1 shl XI_FocusOut;
XI_HierarchyChangedMask = 1 shl XI_HierarchyChanged;
XI_PropertyEventMask = 1 shl XI_PropertyEvent;
XI_RawKeyPressMask = 1 shl XI_RawKeyPress;
XI_RawKeyReleaseMask = 1 shl XI_RawKeyRelease;
XI_RawButtonPressMask = 1 shl XI_RawButtonPress;
XI_RawButtonReleaseMask = 1 shl XI_RawButtonRelease;
XI_RawMotionMask = 1 shl XI_RawMotion;
XI_TouchBeginMask = 1 shl XI_TouchBegin;
XI_TouchEndMask = 1 shl XI_TouchEnd;
XI_TouchOwnershipChangedMask = 1 shl XI_TouchOwnership;
XI_TouchUpdateMask = 1 shl XI_TouchUpdate;
XI_RawTouchBeginMask = 1 shl XI_RawTouchBegin;
XI_RawTouchEndMask = 1 shl XI_RawTouchEnd;
XI_RawTouchUpdateMask = 1 shl XI_RawTouchUpdate;
XI_BarrierHitMask = 1 shl XI_BarrierHit;
XI_BarrierLeaveMask = 1 shl XI_BarrierLeave;
implementation
{ XI2 event mask macros }
procedure XISetMask(ptr: Pcuchar; event: cint); inline;
begin
ptr[event shr 3] := ptr[event shr 3] or (1 shl (event and 7));
end;
procedure XIClearMask(ptr: Pcuchar; event: cint); inline;
begin
ptr[event shr 3] := ptr[event shr 3] and not (1 shl (event and 7))
end;
function XIMaskIsSet(ptr: Pcuchar; event: cint): Boolean; inline;
begin
XIMaskIsSet := (ptr[event shr 3] and (1 shl (event and 7))) <> 0;
end;
function XIMaskLen(event: cint): cint; inline;
begin
XIMaskLen := (event shr 3) + 1;
end;
end.