lazarus/components/opengl/gtk2x11/include/gdkinputprivate.inc
2006-01-01 20:43:51 +00:00

149 lines
4.9 KiB
PHP

{%MainUnit ../gdk2x.pas}
{$IFDEF read_forward_definitions}
PPPGdkTimeCoord = ^PPGdkTimeCoord;
{$ENDIF read_forward_definitions}
{$IFDEF read_interface_rest}
type
{ information about a device axis }
{ reported x resolution }
{ reported x minimum/maximum values }
{ calibrated resolution (for aspect ration) - only relative values
between axes used }
{ calibrated minimum/maximum values }
PGdkAxisInfo = ^TGdkAxisInfo;
TGdkAxisInfo = record
xresolution : gint;
xmin_value : gint;
xmax_value : gint;
resolution : gint;
min_value : gint;
max_value : gint;
end;
const
GDK_INPUT_NUM_EVENTC = 6;
{$ifndef XINPUT_NONE}
{ information about the axes }
{ Information about XInput device }
{ minimum key code for device }
{ true if we need to select a different set of events, but
can't because this is the core pointer }
{ Mask of buttons (used for button grabs) }
{ true if we've claimed the device as active. (used only for XINPUT_GXI) }
{$endif}
{ !XINPUT_NONE }
type
PGdkDevicePrivate = ^TGdkDevicePrivate;
TGdkDevicePrivate = record
info : TGdkDevice;
deviceid : guint32;
display : PGdkDisplay;
axes : PGdkAxisInfo;
xdevice : Pointer; // PXDevice;
min_keycode : gint;
buttonpress_type : longint;
buttonrelease_type : longint;
keypress_type : longint;
keyrelease_type : longint;
motionnotify_type : longint;
proximityin_type : longint;
proximityout_type : longint;
changenotify_type : longint;
needs_update : gint;
button_state : gint;
claimed : gint;
end;
P_GdkDeviceClass = ^T_GdkDeviceClass;
T_GdkDeviceClass = record
parent_class : TGObjectClass;
end;
{ gdk window }
{ Extension mode (GDK_EXTENSION_EVENTS_ALL/CURSOR) }
{ position relative to root window }
{ rectangles relative to window of windows obscuring this one }
{ Is there a pointer grab for this window ? }
PGdkInputWindow = ^TGdkInputWindow;
TGdkInputWindow = record
window : PGdkWindow;
mode : TGdkExtensionMode;
root_x : gint;
root_y : gint;
obscuring : PGdkRectangle;
num_obscuring : gint;
grabbed : gint;
end;
{ Global data }
// Private function GDK_IS_CORE(d : pointer) : boolean;
{ Function declarations }
function gdk_input_window_find(window:PGdkWindow):PGdkInputWindow;cdecl;external;
procedure gdk_input_window_destroy(window:PGdkWindow);cdecl;external;
function _gdk_device_allocate_history(device:PGdkDevice; n_events:gint):PPGdkTimeCoord;cdecl;external;
procedure _gdk_init_input_core;cdecl;external;
{ The following functions are provided by each implementation
(xfree, gxi, and none)
}
function _gdk_input_enable_window(window:PGdkWindow; gdkdev:PGdkDevicePrivate):gint;cdecl;external;
function _gdk_input_disable_window(window:PGdkWindow; gdkdev:PGdkDevicePrivate):gint;cdecl;external;
function _gdk_input_window_none_event(event:PGdkEvent; xevent:PXEvent):gint;cdecl;external;
procedure _gdk_input_configure_event(xevent:PXConfigureEvent; window:PGdkWindow);cdecl;external;
procedure _gdk_input_enter_event(xevent:PXCrossingEvent; window:PGdkWindow);cdecl;external;
function _gdk_input_other_event(event:PGdkEvent; xevent:PXEvent; window:PGdkWindow):gint;cdecl;external;
function _gdk_input_grab_pointer(window:PGdkWindow; owner_events:gint; event_mask:TGdkEventMask; confine_to:PGdkWindow; time:guint32):gint;cdecl;external;
procedure _gdk_input_ungrab_pointer(display:PGdkDisplay; time:guint32);cdecl;external;
function _gdk_device_get_history(device:PGdkDevice; window:PGdkWindow; start:guint32; stop:guint32; events:PPPGdkTimeCoord;
n_events:Pgint):gboolean;cdecl;external;
{$ifndef XINPUT_NONE}
const
GDK_MAX_DEVICE_CLASSES = 13;
function gdk_input_common_init(display:PGdkDisplay; include_core:gint):gint;cdecl;external;
function gdk_input_find_device(display:PGdkDisplay; id:guint32):PGdkDevicePrivate;cdecl;external;
procedure gdk_input_get_root_relative_geometry(display:PDisplay; w:TWindow; x_ret:Plongint; y_ret:Plongint; width_ret:Plongint;
height_ret:Plongint);cdecl;external;
procedure gdk_input_common_find_events(window:PGdkWindow; gdkdev:PGdkDevicePrivate; mask:gint; classes:Pointer {PXEventClass}; num_classes:Plongint);cdecl;external;
procedure gdk_input_common_select_events(window:PGdkWindow; gdkdev:PGdkDevicePrivate);cdecl;external;
function gdk_input_common_other_event(event:PGdkEvent; xevent:PXEvent; input_window:PGdkInputWindow; gdkdev:PGdkDevicePrivate):gint;cdecl;external;
{$endif}
{$ENDIF read_interface_rest}
//------------------------------------------------------------------------------
{$IFDEF read_implementation}
{ Private
function GDK_IS_CORE(d : pointer) : boolean;
begin
GDK_IS_CORE:= (PGdkDevice(d)) = _gdk_core_pointer;
end;}
{$ENDIF read_implementation}