fpc/packages/extra/gtk/gdk/gdkprivate.pp

336 lines
12 KiB
ObjectPascal

{
$Id$
}
{****************************************************************************
Interface
****************************************************************************}
{$ifdef read_interface}
type
PDisplay = pointer;
PXImage = pointer;
PVisual = pointer;
TWindow = longint;
TCursor = longint;
TAtom = longint;
TGC = longint;
TColorMap = longint;
TXStandardColorMap = array [0..9] of longint;
TVisualID = longint;
PXEvent = pointer;
TRegion = pointer;
TXID = longint;
Time_T = longint;
PGdkWindowPrivate = ^TGdkWindowPrivate;
TGdkWindowPrivate = record
window : TGdkWindow;
parent : PGdkWindow;
xwindow : TWindow;
xdisplay : PDisplay;
x : gint16;
y : gint16;
width : guint16;
height : guint16;
resize_count : guint8;
window_type : guint8;
ref_count : guint;
flag0 : {$ifdef win32}longint{$else}word{$endif};
extension_events : gint;
filters : PGList;
colormap : PGdkColormap;
children : PGList;
end;
const
bm_TGdkWindowPrivate_destroyed = $3;
bp_TGdkWindowPrivate_destroyed = 0;
bm_TGdkWindowPrivate_mapped = $4;
bp_TGdkWindowPrivate_mapped = 2;
bm_TGdkWindowPrivate_guffaw_gravity = $8;
bp_TGdkWindowPrivate_guffaw_gravity = 3;
function destroyed(var a : TGdkWindowPrivate) : guint;
procedure set_destroyed(var a : TGdkWindowPrivate; __destroyed : guint);
function mapped(var a : TGdkWindowPrivate) : guint;
procedure set_mapped(var a : TGdkWindowPrivate; __mapped : guint);
function guffaw_gravity(var a : TGdkWindowPrivate) : guint;
procedure set_guffaw_gravity(var a : TGdkWindowPrivate; __guffaw_gravity : guint);
type
PGdkImagePrivate = ^TGdkImagePrivate;
TGdkImagePrivate = record
image : TGdkImage;
ximage : PXImage;
xdisplay : PDisplay;
x_shm_info : gpointer;
image_put : procedure (window:PGdkDrawable; gc:PGdkGC; image:PGdkImage; xsrc:gint; ysrc:gint; xdest:gint; ydest:gint; width:gint; height:gint);cdecl;
end;
PGdkGCPrivate = ^TGdkGCPrivate;
TGdkGCPrivate = record
gc : TGdkGC;
xgc : TGC;
xdisplay : PDisplay;
ref_count : guint;
end;
TGdkColorInfoFlags = (GDK_COLOR_WRITEABLE := 1 shl 0);
PGdkColorInfo = ^TGdkColorInfo;
TGdkColorInfo = record
flags : TGdkColorInfoFlags;
ref_count : guint;
end;
PGdkColormapPrivate = ^TGdkColormapPrivate;
TGdkColormapPrivate = record
colormap : TGdkColormap;
xcolormap : TColormap;
xdisplay : PDisplay;
visual : PGdkVisual;
private_val : gint;
hash : PGHashTable;
info : PGdkColorInfo;
last_sync_time : time_t;
ref_count : guint;
end;
PGdkVisualPrivate = ^TGdkVisualPrivate;
TGdkVisualPrivate = record
visual : TGdkVisual;
xvisual : PVisual;
end;
PGdkFontPrivate = ^TGdkFontPrivate;
TGdkFontPrivate = record
font : TGdkFont;
xfont : gpointer;
xdisplay : PDisplay;
ref_count : guint;
names : PGSList;
end;
PGdkCursorPrivate = ^TGdkCursorPrivate;
TGdkCursorPrivate = record
cursor : TGdkCursor;
xcursor : TCursor;
xdisplay : PDisplay;
end;
PGdkDndCursorInfo = ^TGdkDndCursorInfo;
TGdkDndCursorInfo = record
gdk_cursor_dragdefault : TCursor;
gdk_cursor_dragok : TCursor;
drag_pm_default : PGdkWindow;
drag_pm_ok : PGdkWindow;
default_hotspot : TGdkPoint;
ok_hotspot : TGdkPoint;
xids : PGList;
end;
PGdkDndGlobals = ^TGdkDndGlobals;
TGdkDndGlobals = record
gdk_XdeEnter : TGdkAtom;
gdk_XdeLeave : TGdkAtom;
gdk_XdeRequest : TGdkAtom;
gdk_XdeDataAvailable : TGdkAtom;
gdk_XdeDataShow : TGdkAtom;
gdk_XdeCancel : TGdkAtom;
gdk_XdeTypelist : TGdkAtom;
c : PGdkDndCursorInfo;
drag_startwindows : PPGdkWindow;
drag_numwindows : guint;
drag_really : gboolean;
drag_perhaps : gboolean;
dnd_grabbed : gboolean;
dnd_drag_target : TWindow;
drag_dropcoords : TGdkPoint;
dnd_drag_start : TGdkPoint;
dnd_drag_oldpos : TGdkPoint;
dnd_drag_dropzone : TGdkRectangle;
real_sw : PGdkWindowPrivate;
dnd_drag_curwin : TWindow;
last_drop_time : Time_T;
end;
PGdkEventFilter = ^TGdkEventFilter;
TGdkEventFilter = record
thefunction : TGdkFilterFunc;
data : gpointer;
end;
PGdkClientFilter = ^TGdkClientFilter;
TGdkClientFilter = record
thetype : TGdkAtom;
thefunction : TGdkFilterFunc;
data : gpointer;
end;
{$ifdef USE_XIM}
PGdkICPrivate = ^TGdkICPrivate;
TGdkICPrivate = record
xic : XIC;
attr : PGdkICAttr;
mask : TGdkICAttributesType;
end;
{$endif}
PGdkColorContextPrivate = ^TGdkColorContextPrivate;
TGdkColorContextPrivate = record
color_context : TGdkColorContext;
xdisplay : PDisplay;
std_cmap : TXStandardColormap;
end;
PGdkRegionPrivate = ^TGdkRegionPrivate;
TGdkRegionPrivate = record
region : TGdkRegion;
xregion : TRegion;
end;
TGdkDebugFlag = (GDK_DEBUG_MISC := 1 shl 0,GDK_DEBUG_EVENTS := 1 shl 1,
GDK_DEBUG_DND := 1 shl 2,GDK_DEBUG_COLOR_CONTEXT := 1 shl 3,
GDK_DEBUG_XIM := 1 shl 4);
procedure gdk_xid_table_insert(xid:TXID; data:gpointer);cdecl;external gdkdll name 'gdk_xid_table_insert';
function gdk_xid_table_lookup(xid:TXID):gpointer;cdecl;external gdkdll name 'gdk_xid_table_lookup';
function GDK_window_lookup(xid : longint) : PGdkWindow;
function GDK_pixmap_lookup(xid : longint) : PGdkPixmap;
function GDK_font_lookup(xid : longint) : PGdkFont;
{$ifndef os2}
var
gdk_selection_property : TAtom;external gdkdll name 'gdk_selection_property';
gdk_progclass : Pgchar;external gdkdll name 'gdk_progclass';
gdk_error_code : gint;external gdkdll name 'gdk_error_code';
gdk_null_window_warnings : gint;external gdkdll name 'gdk_null_window_warnings';
{$endif}
{$ifndef gtkwin}
procedure gdk_events_init;cdecl;external gdkdll name 'gdk_events_init';
procedure gdk_window_init;cdecl;external gdkdll name 'gdk_window_init';
procedure gdk_visual_init;cdecl;external gdkdll name 'gdk_visual_init';
procedure gdk_dnd_init;cdecl;external gdkdll name 'gdk_dnd_init';
procedure gdk_image_init;cdecl;external gdkdll name 'gdk_image_init';
procedure gdk_image_exit;cdecl;external gdkdll name 'gdk_image_exit';
function gdk_colormap_lookup(xcolormap:TColormap):PGdkColormap;cdecl;external gdkdll name 'gdk_colormap_lookup';
function gdk_visual_lookup(xvisual:pVisual):PGdkVisual;cdecl;external gdkdll name 'gdk_visual_lookup';
procedure gdk_window_add_colormap_windows(window:PGdkWindow);cdecl;external gdkdll name 'gdk_window_add_colormap_windows';
procedure gdk_window_destroy_notify(window:PGdkWindow);cdecl;external gdkdll name 'gdk_window_destroy_notify';
procedure gdk_xid_table_remove(xid:TXID);cdecl;external gdkdll name 'gdk_xid_table_remove';
function gdk_send_xevent(window:TWindow; propagate:gboolean; event_mask:glong; event_send:pXEvent):gint;cdecl;external gdkdll name 'gdk_send_xevent';
procedure gdk_dnd_display_drag_cursor(x:gint; y:gint; drag_ok:gboolean; change_made:gboolean);cdecl;external gdkdll name 'gdk_dnd_display_drag_cursor';
function gdk_window_xid_at(base:TWindow; bx:gint; by:gint; x:gint; y:gint; excludes:PGList; excl_child:gboolean):TWindow;cdecl;external gdkdll name 'gdk_window_xid_at';
function gdk_window_xid_at_coords(x:gint; y:gint; excludes:PGList; excl_child:gboolean):TWindow;cdecl;external gdkdll name 'gdk_window_xid_at_coords';
{$ifndef os2}
var
gdk_use_xshm : gint;external gdkdll name 'gdk_use_xshm';
gdk_display_name : Pgchar;external gdkdll name 'gdk_display_name';
gdk_display : PDisplay;external gdkdll name 'gdk_display';
gdk_screen : gint;external gdkdll name 'gdk_screen';
gdk_root_window : TWindow;external gdkdll name 'gdk_root_window';
gdk_leader_window : TWindow;external gdkdll name 'gdk_leader_window';
gdk_root_parent : TGdkWindowPrivate;external gdkdll name 'gdk_root_parent';
gdk_wm_delete_window : TAtom;external gdkdll name 'gdk_wm_delete_window';
gdk_wm_take_focus : TAtom;external gdkdll name 'gdk_wm_take_focus';
gdk_wm_protocols : TAtom;external gdkdll name 'gdk_wm_protocols';
gdk_dnd : TGdkDndGlobals;external gdkdll name 'gdk_dnd';
gdk_error_warnings : gint;external gdkdll name 'gdk_error_warnings';
gdk_default_filters : PGList;external gdkdll name 'gdk_default_filters';
gdk_nevent_masks : longint;external gdkdll name 'gdk_nevent_masks';
gdk_xgrab_window : PGdkWindowPrivate;external gdkdll name 'gdk_xgrab_window';
{$endif}
{$ifdef USE_XIM}
function gdk_im_open:gint;cdecl;external gdkdll name 'gdk_im_open';
procedure gdk_im_close;cdecl;external gdkdll name 'gdk_im_close';
procedure gdk_ic_cleanup;cdecl;external gdkdll name 'gdk_ic_cleanup';
var
gdk_xim_ic : PGdkICPrivate;external gdkdll name 'gdk_xim_ic';
gdk_xim_window : PGdkWindow;external gdkdll name 'gdk_xim_window';
{$endif}
{$endif win32}
{$endif read_interface}
{****************************************************************************
Implementation
****************************************************************************}
{$ifdef read_implementation}
function destroyed(var a : TGdkWindowPrivate) : guint;
begin
destroyed:=(a.flag0 and bm_TGdkWindowPrivate_destroyed) shr bp_TGdkWindowPrivate_destroyed;
end;
procedure set_destroyed(var a : TGdkWindowPrivate; __destroyed : guint);
begin
a.flag0:=a.flag0 or ((__destroyed shl bp_TGdkWindowPrivate_destroyed) and bm_TGdkWindowPrivate_destroyed);
end;
function mapped(var a : TGdkWindowPrivate) : guint;
begin
mapped:=(a.flag0 and bm_TGdkWindowPrivate_mapped) shr bp_TGdkWindowPrivate_mapped;
end;
procedure set_mapped(var a : TGdkWindowPrivate; __mapped : guint);
begin
a.flag0:=a.flag0 or ((__mapped shl bp_TGdkWindowPrivate_mapped) and bm_TGdkWindowPrivate_mapped);
end;
function guffaw_gravity(var a : TGdkWindowPrivate) : guint;
begin
guffaw_gravity:=(a.flag0 and bm_TGdkWindowPrivate_guffaw_gravity) shr bp_TGdkWindowPrivate_guffaw_gravity;
end;
procedure set_guffaw_gravity(var a : TGdkWindowPrivate; __guffaw_gravity : guint);
begin
a.flag0:=a.flag0 or ((__guffaw_gravity shl bp_TGdkWindowPrivate_guffaw_gravity) and bm_TGdkWindowPrivate_guffaw_gravity);
end;
function GDK_window_lookup(xid : longint) : PGdkWindow;
begin
gdk_window_lookup:=PGdkWindow(gdk_xid_table_lookup(xid));
end;
function GDK_pixmap_lookup(xid : longint) : PGdkPixmap;
begin
gdk_pixmap_lookup:=PGdkPixmap(gdk_xid_table_lookup(xid));
end;
function GDK_font_lookup(xid : longint) : PGdkFont;
begin
gdk_font_lookup:=PGdkFont(gdk_xid_table_lookup(xid));
end;
{$endif read_implementation}
{
$Log$
Revision 1.4 2003-08-06 07:28:21 michael
+ Patch from Marc Weustinck to fix Win32 version
Revision 1.3 2003/03/02 02:08:50 hajny
+ OS/2 support for GTK and X11 added by Yuri
Revision 1.2 2002/09/07 15:42:58 peter
* old logs removed and tabs fixed
Revision 1.1 2002/01/29 17:55:07 peter
* splitted to base and extra
}