gtktooltips.pp 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. {
  2. }
  3. {****************************************************************************
  4. Interface
  5. ****************************************************************************}
  6. {$ifdef read_interface}
  7. type
  8. PGtkTooltipsData = ^TGtkTooltipsData;
  9. PGtkTooltips = ^TGtkTooltips;
  10. TGtkTooltipsData = record
  11. tooltips : PGtkTooltips;
  12. widget : PGtkWidget;
  13. tip_text : Pgchar;
  14. tip_private : Pgchar;
  15. font : PGdkFont;
  16. width : gint;
  17. row : PGList;
  18. end;
  19. TGtkTooltips = record
  20. data : TGtkData;
  21. tip_window : PGtkWidget;
  22. active_tips_data : PGtkTooltipsData;
  23. tips_data_list : PGList;
  24. gc : PGdkGC;
  25. foreground : PGdkColor;
  26. background : PGdkColor;
  27. flag0 : longint;
  28. timer_tag : gint;
  29. end;
  30. const
  31. bm_TGtkTooltips_delay = $3FFFFFFF;
  32. bp_TGtkTooltips_delay = 0;
  33. bm_TGtkTooltips_enabled = $40000000;
  34. bp_TGtkTooltips_enabled = 30;
  35. function delay(var a : TGtkTooltips) : guint;
  36. procedure set_delay(var a : TGtkTooltips; __delay : guint);
  37. function enabled(var a : TGtkTooltips) : guint;
  38. procedure set_enabled(var a : TGtkTooltips; __enabled : guint);
  39. type
  40. PGtkTooltipsClass = ^TGtkTooltipsClass;
  41. TGtkTooltipsClass = record
  42. parent_class : TGtkDataClass;
  43. end;
  44. Type
  45. GTK_TOOLTIPS=PGtkTooltips;
  46. GTK_TOOLTIPS_CLASS=PGtkTooltipsClass;
  47. function GTK_TOOLTIPS_TYPE:TGtkType;cdecl;external gtkdll name 'gtk_tooltips_get_type';
  48. function GTK_IS_TOOLTIPS(obj:pointer):boolean;
  49. function GTK_IS_TOOLTIPS_CLASS(klass:pointer):boolean;
  50. function gtk_tooltips_get_type:TGtkType;cdecl;external gtkdll name 'gtk_tooltips_get_type';
  51. function gtk_tooltips_new:PGtkTooltips;cdecl;external gtkdll name 'gtk_tooltips_new';
  52. procedure gtk_tooltips_enable(tooltips:PGtkTooltips);cdecl;external gtkdll name 'gtk_tooltips_enable';
  53. procedure gtk_tooltips_disable(tooltips:PGtkTooltips);cdecl;external gtkdll name 'gtk_tooltips_disable';
  54. procedure gtk_tooltips_set_delay(tooltips:PGtkTooltips; delay:guint);cdecl;external gtkdll name 'gtk_tooltips_set_delay';
  55. procedure gtk_tooltips_set_tip(tooltips:PGtkTooltips; widget:PGtkWidget; tip_text:Pgchar; tip_private:Pgchar);cdecl;external gtkdll name 'gtk_tooltips_set_tip';
  56. procedure gtk_tooltips_set_colors(tooltips:PGtkTooltips; background:PGdkColor; foreground:PGdkColor);cdecl;external gtkdll name 'gtk_tooltips_set_colors';
  57. function gtk_tooltips_data_get(widget:PGtkWidget):PGtkTooltipsData;cdecl;external gtkdll name 'gtk_tooltips_data_get';
  58. procedure gtk_tooltips_force_window(tooltips:PGtkTooltips);cdecl;external gtkdll name 'gtk_tooltips_force_window';
  59. {$endif read_interface}
  60. {****************************************************************************
  61. Implementation
  62. ****************************************************************************}
  63. {$ifdef read_implementation}
  64. function delay(var a : TGtkTooltips) : guint;
  65. begin
  66. delay:=(a.flag0 and bm_TGtkTooltips_delay) shr bp_TGtkTooltips_delay;
  67. end;
  68. procedure set_delay(var a : TGtkTooltips; __delay : guint);
  69. begin
  70. a.flag0:=a.flag0 or ((__delay shl bp_TGtkTooltips_delay) and bm_TGtkTooltips_delay);
  71. end;
  72. function enabled(var a : TGtkTooltips) : guint;
  73. begin
  74. enabled:=(a.flag0 and bm_TGtkTooltips_enabled) shr bp_TGtkTooltips_enabled;
  75. end;
  76. procedure set_enabled(var a : TGtkTooltips; __enabled : guint);
  77. begin
  78. a.flag0:=a.flag0 or ((__enabled shl bp_TGtkTooltips_enabled) and bm_TGtkTooltips_enabled);
  79. end;
  80. function GTK_IS_TOOLTIPS(obj:pointer):boolean;
  81. begin
  82. GTK_IS_TOOLTIPS:=(obj<>nil) and GTK_IS_TOOLTIPS_CLASS(PGtkTypeObject(obj)^.klass);
  83. end;
  84. function GTK_IS_TOOLTIPS_CLASS(klass:pointer):boolean;
  85. begin
  86. GTK_IS_TOOLTIPS_CLASS:=(klass<>nil) and (PGtkTypeClass(klass)^.thetype=GTK_TOOLTIPS_TYPE);
  87. end;
  88. {$endif read_implementation}