/packages/gtk2/src/gtk+/gdk/gdkdnd.inc

https://github.com/slibre/freepascal · Pascal · 143 lines · 84 code · 31 blank · 28 comment · 0 complexity · a96f665f5e465dcebd5f6bbc889bea9d MD5 · raw file

  1. // included by gdk2.pp
  2. {$IFDEF read_interface_types}
  3. PGdkDragAction = ^TGdkDragAction;
  4. TGdkDragAction = longint; // see below for possible values
  5. { A root window with nobody claiming drags }
  6. { Not a valid drag window }
  7. { The simple WM_DROPFILES dnd }
  8. { The complex OLE2 dnd (not implemented) }
  9. { Intra-app }
  10. PGdkDragProtocol = ^TGdkDragProtocol;
  11. TGdkDragProtocol = (GDK_DRAG_PROTO_MOTIF,GDK_DRAG_PROTO_XDND,
  12. GDK_DRAG_PROTO_ROOTWIN,GDK_DRAG_PROTO_NONE,
  13. GDK_DRAG_PROTO_WIN32_DROPFILES,GDK_DRAG_PROTO_OLE2,
  14. GDK_DRAG_PROTO_LOCAL);
  15. {< public > }
  16. {< private > }
  17. PGdkDragContext = ^TGdkDragContext;
  18. TGdkDragContext = record
  19. parent_instance : TGObject;
  20. protocol : TGdkDragProtocol;
  21. is_source : gboolean;
  22. source_window : PGdkWindow;
  23. dest_window : PGdkWindow;
  24. targets : PGList;
  25. actions : TGdkDragAction;
  26. suggested_action : TGdkDragAction;
  27. action : TGdkDragAction;
  28. start_time : guint32;
  29. windowing_data : gpointer;
  30. end;
  31. PGdkDragContextClass = ^TGdkDragContextClass;
  32. TGdkDragContextClass = record
  33. parent_class : TGObjectClass;
  34. end;
  35. {$ENDIF read_interface_types}
  36. //------------------------------------------------------------------------------
  37. {$IFDEF read_interface_rest}
  38. const
  39. // values for TGdkDragAction
  40. GDK_ACTION_DEFAULT = 1 shl 0;
  41. GDK_ACTION_COPY = 1 shl 1;
  42. GDK_ACTION_MOVE = 1 shl 2;
  43. GDK_ACTION_LINK = 1 shl 3;
  44. GDK_ACTION_PRIVATE = 1 shl 4;
  45. GDK_ACTION_ASK = 1 shl 5;
  46. { Object that holds information about a drag in progress.
  47. this is used on both source and destination sides.
  48. }
  49. function GDK_TYPE_DRAG_CONTEXT : GType;
  50. function GDK_DRAG_CONTEXT(anObject : Pointer) : PGdkDragContext;
  51. function GDK_DRAG_CONTEXT_CLASS(klass : Pointer) : PGdkDragContextClass;
  52. function GDK_IS_DRAG_CONTEXT(anObject : Pointer) : boolean;
  53. function GDK_IS_DRAG_CONTEXT_CLASS(klass : Pointer) : boolean;
  54. function GDK_DRAG_CONTEXT_GET_CLASS(obj : Pointer) : PGdkDragContextClass;
  55. { Drag and Drop }
  56. function gdk_drag_context_get_type:GType; cdecl; external gdklib;
  57. function gdk_drag_context_new:PGdkDragContext; cdecl; external gdklib;
  58. {$ifndef GDK_DISABLE_DEPRECATED}
  59. procedure gdk_drag_context_ref(context:PGdkDragContext); cdecl; external gdklib;
  60. procedure gdk_drag_context_unref(context:PGdkDragContext); cdecl; external gdklib;
  61. {$endif}
  62. { Destination side }
  63. procedure gdk_drag_status(context:PGdkDragContext; action:TGdkDragAction; time:guint32); cdecl; external gdklib;
  64. function gdk_drag_drop_succeeded(context:PGdkDragContext):gboolean; cdecl; external gdklib;
  65. procedure gdk_drop_reply(context:PGdkDragContext; ok:gboolean; time:guint32); cdecl; external gdklib;
  66. procedure gdk_drop_finish(context:PGdkDragContext; success:gboolean; time:guint32); cdecl; external gdklib;
  67. function gdk_drag_get_selection(context:PGdkDragContext):TGdkAtom; cdecl; external gdklib;
  68. { Source side }
  69. function gdk_drag_begin(window:PGdkWindow; targets:PGList):PGdkDragContext; cdecl; external gdklib;
  70. function gdk_drag_get_protocol_for_display(display:PGdkDisplay; xid:guint32; protocol:PGdkDragProtocol):guint32; cdecl; external gdklib;
  71. {$ifndef GDK_MULTIHEAD_SAFE}
  72. function gdk_drag_get_protocol(xid:guint32; protocol:PGdkDragProtocol):guint32; cdecl; external gdklib;
  73. {$endif}
  74. { GDK_MULTIHEAD_SAFE }
  75. procedure gdk_drag_find_window(context:PGdkDragContext; drag_window:PGdkWindow; x_root:gint; y_root:gint; var dest_window:PGdkWindow;
  76. protocol:PGdkDragProtocol); cdecl; external gdklib;
  77. procedure gdk_drag_find_window_for_screen(context:PGdkDragContext; drag_window:PGdkWindow; screen:PGdkScreen; x_root:gint; y_root:gint; var dest_window:PGdkWindow;
  78. protocol:PGdkDragProtocol); cdecl; external gdklib;
  79. function gdk_drag_motion(context:PGdkDragContext; dest_window:PGdkWindow; protocol:TGdkDragProtocol; x_root:gint; y_root:gint;
  80. suggested_action:TGdkDragAction; possible_actions:TGdkDragAction; time:guint32):gboolean; cdecl; external gdklib;
  81. procedure gdk_drag_drop(context:PGdkDragContext; time:guint32); cdecl; external gdklib;
  82. procedure gdk_drag_abort(context:PGdkDragContext; time:guint32); cdecl; external gdklib;
  83. {$endif read_interface_rest}
  84. //------------------------------------------------------------------------------
  85. {$IFDEF read_implementation}
  86. function GDK_TYPE_DRAG_CONTEXT : GType;
  87. begin
  88. GDK_TYPE_DRAG_CONTEXT:=gdk_drag_context_get_type;
  89. end;
  90. function GDK_DRAG_CONTEXT(anObject : Pointer) : PGdkDragContext;
  91. begin
  92. GDK_DRAG_CONTEXT:=PGdkDragContext(G_TYPE_CHECK_INSTANCE_CAST(anObject,
  93. GDK_TYPE_DRAG_CONTEXT));
  94. end;
  95. function GDK_DRAG_CONTEXT_CLASS(klass : Pointer) : PGdkDragContextClass;
  96. begin
  97. GDK_DRAG_CONTEXT_CLASS:=PGdkDragContextClass(G_TYPE_CHECK_CLASS_CAST(klass,GDK_TYPE_DRAG_CONTEXT));
  98. end;
  99. function GDK_IS_DRAG_CONTEXT(anObject : Pointer) : boolean;
  100. begin
  101. GDK_IS_DRAG_CONTEXT:=G_TYPE_CHECK_INSTANCE_TYPE(anObject,GDK_TYPE_DRAG_CONTEXT);
  102. end;
  103. function GDK_IS_DRAG_CONTEXT_CLASS(klass : Pointer) : boolean;
  104. begin
  105. GDK_IS_DRAG_CONTEXT_CLASS:=G_TYPE_CHECK_CLASS_TYPE(klass,GDK_TYPE_DRAG_CONTEXT);
  106. end;
  107. function GDK_DRAG_CONTEXT_GET_CLASS(obj : Pointer) : PGdkDragContextClass;
  108. begin
  109. GDK_DRAG_CONTEXT_GET_CLASS:=PGdkDragContextClass(G_TYPE_INSTANCE_GET_CLASS(
  110. obj,GDK_TYPE_DRAG_CONTEXT));
  111. end;
  112. {$ENDIF}