2
0

gtksocket.pp 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. {
  2. }
  3. {****************************************************************************
  4. Interface
  5. ****************************************************************************}
  6. {$ifdef read_interface}
  7. type
  8. PGtkSocket = ^TGtkSocket;
  9. TGtkSocket = record
  10. container : TGtkContainer;
  11. request_width : guint16;
  12. request_height : guint16;
  13. current_width : guint16;
  14. current_height : guint16;
  15. plug_window : PGdkWindow;
  16. flag0 : {$ifdef win32}longint{$else}word{$endif};
  17. end;
  18. const
  19. bm_TGtkSocket_same_app = $1;
  20. bp_TGtkSocket_same_app = 0;
  21. bm_TGtkSocket_focus_in = $2;
  22. bp_TGtkSocket_focus_in = 1;
  23. bm_TGtkSocket_have_size = $4;
  24. bp_TGtkSocket_have_size = 2;
  25. bm_TGtkSocket_need_map = $8;
  26. bp_TGtkSocket_need_map = 3;
  27. function same_app(var a : TGtkSocket) : guint;
  28. procedure set_same_app(var a : TGtkSocket; __same_app : guint);
  29. function focus_in(var a : TGtkSocket) : guint;
  30. procedure set_focus_in(var a : TGtkSocket; __focus_in : guint);
  31. function have_size(var a : TGtkSocket) : guint;
  32. procedure set_have_size(var a : TGtkSocket; __have_size : guint);
  33. function need_map(var a : TGtkSocket) : guint;
  34. procedure set_need_map(var a : TGtkSocket; __need_map : guint);
  35. type
  36. PGtkSocketClass = ^TGtkSocketClass;
  37. TGtkSocketClass = record
  38. parent_class : TGtkContainerClass;
  39. end;
  40. type
  41. GTK_SOCKET=PGtkSocket;
  42. GTK_SOCKET_CLASS=PGtkSocket;
  43. function gtk_socket_new:PGtkWidget;cdecl;external gtkdll name 'gtk_socket_new';
  44. function gtk_socket_get_type:guint;cdecl;external gtkdll name 'gtk_socket_get_type';
  45. procedure gtk_socket_steal(socket:PGtkSocket; wid:guint32);cdecl;external gtkdll name 'gtk_socket_steal';
  46. {$endif read_interface}
  47. {****************************************************************************
  48. Implementation
  49. ****************************************************************************}
  50. {$ifdef read_implementation}
  51. function same_app(var a : TGtkSocket) : guint;
  52. begin
  53. same_app:=(a.flag0 and bm_TGtkSocket_same_app) shr bp_TGtkSocket_same_app;
  54. end;
  55. procedure set_same_app(var a : TGtkSocket; __same_app : guint);
  56. begin
  57. a.flag0:=a.flag0 or ((__same_app shl bp_TGtkSocket_same_app) and bm_TGtkSocket_same_app);
  58. end;
  59. function focus_in(var a : TGtkSocket) : guint;
  60. begin
  61. focus_in:=(a.flag0 and bm_TGtkSocket_focus_in) shr bp_TGtkSocket_focus_in;
  62. end;
  63. procedure set_focus_in(var a : TGtkSocket; __focus_in : guint);
  64. begin
  65. a.flag0:=a.flag0 or ((__focus_in shl bp_TGtkSocket_focus_in) and bm_TGtkSocket_focus_in);
  66. end;
  67. function have_size(var a : TGtkSocket) : guint;
  68. begin
  69. have_size:=(a.flag0 and bm_TGtkSocket_have_size) shr bp_TGtkSocket_have_size;
  70. end;
  71. procedure set_have_size(var a : TGtkSocket; __have_size : guint);
  72. begin
  73. a.flag0:=a.flag0 or ((__have_size shl bp_TGtkSocket_have_size) and bm_TGtkSocket_have_size);
  74. end;
  75. function need_map(var a : TGtkSocket) : guint;
  76. begin
  77. need_map:=(a.flag0 and bm_TGtkSocket_need_map) shr bp_TGtkSocket_need_map;
  78. end;
  79. procedure set_need_map(var a : TGtkSocket; __need_map : guint);
  80. begin
  81. a.flag0:=a.flag0 or ((__need_map shl bp_TGtkSocket_need_map) and bm_TGtkSocket_need_map);
  82. end;
  83. {$endif read_implementation}