gtkmenu.pp 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. {
  2. }
  3. {****************************************************************************
  4. Interface
  5. ****************************************************************************}
  6. {$ifdef read_interface}
  7. type
  8. PGtkMenu = ^TGtkMenu;
  9. TGtkMenuPositionFunc = procedure (menu:PGtkMenu; x:Pgint; y:Pgint; user_data:gpointer); cdecl;
  10. TGtkMenuDetachFunc = procedure (attach_widget:PGtkWidget; menu:PGtkMenu); cdecl;
  11. TGtkMenu = record
  12. menu_shell : TGtkMenuShell;
  13. parent_menu_item : PGtkWidget;
  14. old_active_menu_item : PGtkWidget;
  15. accel_group : PGtkAccelGroup;
  16. position_func : TGtkMenuPositionFunc;
  17. position_func_data : gpointer;
  18. toplevel : PGtkWidget;
  19. tearoff_window : PGtkWidget;
  20. flag0 : {$ifdef win32}longint{$else}word{$endif};
  21. end;
  22. const
  23. bm_TGtkMenu_torn_off = $1;
  24. bp_TGtkMenu_torn_off = 0;
  25. function torn_off(var a : TGtkMenu) : guint;
  26. procedure set_torn_off(var a : TGtkMenu; __torn_off : guint);
  27. type
  28. PGtkMenuClass = ^TGtkMenuClass;
  29. TGtkMenuClass = record
  30. parent_class : TGtkMenuShellClass;
  31. end;
  32. Type
  33. GTK_MENU = PGtkMenu;
  34. GTK_MENU_CLASS = PGtkMenuClass;
  35. function GTK_MENU_TYPE:TGtkType;cdecl;external gtkdll name 'gtk_menu_get_type';
  36. function GTK_IS_MENU(obj:pointer):boolean;
  37. function GTK_IS_MENU_CLASS(klass:pointer):boolean;
  38. function gtk_menu_get_type:TGtkType;cdecl;external gtkdll name 'gtk_menu_get_type';
  39. function gtk_menu_new:PGtkWidget;cdecl;external gtkdll name 'gtk_menu_new';
  40. procedure gtk_menu_append(menu:PGtkMenu; child:PGtkWidget);cdecl;external gtkdll name 'gtk_menu_append';
  41. procedure gtk_menu_prepend(menu:PGtkMenu; child:PGtkWidget);cdecl;external gtkdll name 'gtk_menu_prepend';
  42. procedure gtk_menu_insert(menu:PGtkMenu; child:PGtkWidget; position:gint);cdecl;external gtkdll name 'gtk_menu_insert';
  43. procedure gtk_menu_popup(menu:PGtkMenu; parent_menu_shell:PGtkWidget; parent_menu_item:PGtkWidget; func:TGtkMenuPositionFunc; data:gpointer;button:guint; activate_time:guint32);cdecl;external gtkdll name 'gtk_menu_popup';
  44. procedure gtk_menu_reposition(menu:PGtkMenu);cdecl;external gtkdll name 'gtk_menu_reposition';
  45. procedure gtk_menu_popdown(menu:PGtkMenu);cdecl;external gtkdll name 'gtk_menu_popdown';
  46. function gtk_menu_get_active(menu:PGtkMenu):PGtkWidget;cdecl;external gtkdll name 'gtk_menu_get_active';
  47. procedure gtk_menu_set_active(menu:PGtkMenu; index:guint);cdecl;external gtkdll name 'gtk_menu_set_active';
  48. procedure gtk_menu_set_accel_group(menu:PGtkMenu; accel_group:PGtkAccelGroup);cdecl;external gtkdll name 'gtk_menu_set_accel_group';
  49. function gtk_menu_get_accel_group(menu:PGtkMenu):PGtkAccelGroup;cdecl;external gtkdll name 'gtk_menu_get_accel_group';
  50. function gtk_menu_get_uline_accel_group(menu:PGtkMenu):PGtkAccelGroup;cdecl;external gtkdll name 'gtk_menu_get_uline_accel_group';
  51. function gtk_menu_ensure_uline_accel_group(menu:PGtkMenu):PGtkAccelGroup;cdecl;external gtkdll name 'gtk_menu_ensure_uline_accel_group';
  52. procedure gtk_menu_attach_to_widget(menu:PGtkMenu; attach_widget:PGtkWidget; detacher:TGtkMenuDetachFunc);cdecl;external gtkdll name 'gtk_menu_attach_to_widget';
  53. function gtk_menu_get_attach_widget(menu:PGtkMenu):PGtkWidget;cdecl;external gtkdll name 'gtk_menu_get_attach_widget';
  54. procedure gtk_menu_detach(menu:PGtkMenu);cdecl;external gtkdll name 'gtk_menu_detach';
  55. procedure gtk_menu_set_tearoff_state(menu:PGtkMenu; torn_off:gboolean);cdecl;external gtkdll name 'gtk_menu_set_tearoff_state';
  56. procedure gtk_menu_set_title(menu:PGtkMenu; title:Pgchar);cdecl;external gtkdll name 'gtk_menu_set_title';
  57. procedure gtk_menu_reorder_child(menu:PGtkMenu; child:PGtkWidget; position:gint);cdecl;external gtkdll name 'gtk_menu_reorder_child';
  58. {$endif read_interface}
  59. {****************************************************************************
  60. Implementation
  61. ****************************************************************************}
  62. {$ifdef read_implementation}
  63. function torn_off(var a : TGtkMenu) : guint;
  64. begin
  65. torn_off:=(a.flag0 and bm_TGtkMenu_torn_off) shr bp_TGtkMenu_torn_off;
  66. end;
  67. procedure set_torn_off(var a : TGtkMenu; __torn_off : guint);
  68. begin
  69. a.flag0:=a.flag0 or ((__torn_off shl bp_TGtkMenu_torn_off) and bm_TGtkMenu_torn_off);
  70. end;
  71. function GTK_IS_MENU(obj:pointer):boolean;
  72. begin
  73. GTK_IS_MENU:=(obj<>nil) and GTK_IS_MENU_CLASS(PGtkTypeObject(obj)^.klass);
  74. end;
  75. function GTK_IS_MENU_CLASS(klass:pointer):boolean;
  76. begin
  77. GTK_IS_MENU_CLASS:=(klass<>nil) and (PGtkTypeClass(klass)^.thetype=GTK_MENU_TYPE);
  78. end;
  79. {$endif read_implementation}