gtkprogressbar.inc 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. // included by gtk2.pas
  2. {$IFDEF read_forward_definitions}
  3. {$ENDIF read_forward_definitions}
  4. //------------------------------------------------------------------------------
  5. {$IFDEF read_interface_types}
  6. PGtkProgressBarStyle = ^TGtkProgressBarStyle;
  7. TGtkProgressBarStyle = (
  8. GTK_PROGRESS_CONTINUOUS,
  9. GTK_PROGRESS_DISCRETE
  10. );
  11. PGtkProgressBarOrientation = ^TGtkProgressBarOrientation;
  12. TGtkProgressBarOrientation = (
  13. GTK_PROGRESS_LEFT_TO_RIGHT,
  14. GTK_PROGRESS_RIGHT_TO_LEFT,
  15. GTK_PROGRESS_BOTTOM_TO_TOP,
  16. GTK_PROGRESS_TOP_TO_BOTTOM
  17. );
  18. PGtkProgressBar = ^TGtkProgressBar;
  19. TGtkProgressBar = record
  20. progress : TGtkProgress;
  21. bar_style : TGtkProgressBarStyle;
  22. orientation : TGtkProgressBarOrientation;
  23. blocks : guint;
  24. in_block : gint;
  25. activity_pos : gint;
  26. activity_step : guint;
  27. activity_blocks : guint;
  28. pulse_fraction : gdouble;
  29. flag0 : word;
  30. end;
  31. { Padding for future expansion }
  32. PGtkProgressBarClass = ^TGtkProgressBarClass;
  33. TGtkProgressBarClass = record
  34. parent_class : TGtkProgressClass;
  35. _gtk_reserved1 : procedure ; cdecl;
  36. _gtk_reserved2 : procedure ; cdecl;
  37. _gtk_reserved3 : procedure ; cdecl;
  38. _gtk_reserved4 : procedure ; cdecl;
  39. end;
  40. {$ENDIF read_interface_types}
  41. //------------------------------------------------------------------------------
  42. {$IFDEF read_interface_rest}
  43. const
  44. bm_TGtkProgressBar_activity_dir = $1;
  45. bp_TGtkProgressBar_activity_dir = 0;
  46. function GTK_TYPE_PROGRESS_BAR : GType;
  47. function GTK_PROGRESS_BAR(obj: pointer) : PGtkProgressBar;
  48. function GTK_PROGRESS_BAR_CLASS(klass: pointer) : PGtkProgressBarClass;
  49. function GTK_IS_PROGRESS_BAR(obj: pointer) : boolean;
  50. function GTK_IS_PROGRESS_BAR_CLASS(klass: pointer) : boolean;
  51. function GTK_PROGRESS_BAR_GET_CLASS(obj: pointer) : PGtkProgressBarClass;
  52. function activity_dir(var a : TGtkProgressBar) : guint;
  53. procedure set_activity_dir(var a : TGtkProgressBar; __activity_dir : guint);
  54. function gtk_progress_bar_get_type:TGtkType; cdecl; external gtklib;
  55. function gtk_progress_bar_new:PGtkWidget; cdecl; external gtklib;
  56. {
  57. GtkProgress/GtkProgressBar had serious problems in GTK 1.2.
  58. - Only 3 or 4 functions are really needed for 95% of progress
  59. interfaces; GtkProgress[Bar] had about 25 functions, and
  60. didn't even include these 3 or 4.
  61. - In activity mode, the API involves setting the adjustment
  62. to any random value, just to have the side effect of
  63. calling the progress bar update function - the adjustment
  64. is totally ignored in activity mode
  65. - You set the activity step as a pixel value, which means to
  66. set the activity step you basically need to connect to
  67. size_allocate
  68. - There are ctree_set_expander_style()-functions, to randomly
  69. change look-and-feel for no good reason
  70. - The split between GtkProgress and GtkProgressBar makes no sense
  71. to me whatsoever.
  72. This was a big wart on GTK and made people waste lots of time,
  73. both learning and using the interface.
  74. So, I have added what I feel is the correct API, and marked all the
  75. rest deprecated. However, the changes are 100% backward-compatible and
  76. should break no existing code.
  77. The following 9 functions are the new programming interface.
  78. }
  79. procedure gtk_progress_bar_pulse(pbar:PGtkProgressBar); cdecl; external gtklib;
  80. procedure gtk_progress_bar_set_text(pbar:PGtkProgressBar; text:Pgchar); cdecl; external gtklib;
  81. procedure gtk_progress_bar_set_fraction(pbar:PGtkProgressBar; fraction:gdouble); cdecl; external gtklib;
  82. procedure gtk_progress_bar_set_pulse_step(pbar:PGtkProgressBar; fraction:gdouble); cdecl; external gtklib;
  83. procedure gtk_progress_bar_set_orientation(pbar:PGtkProgressBar; orientation:TGtkProgressBarOrientation); cdecl; external gtklib;
  84. function gtk_progress_bar_get_text(pbar:PGtkProgressBar):Pgchar; cdecl; external gtklib;
  85. function gtk_progress_bar_get_fraction(pbar:PGtkProgressBar):gdouble; cdecl; external gtklib;
  86. function gtk_progress_bar_get_pulse_step(pbar:PGtkProgressBar):gdouble; cdecl; external gtklib;
  87. function gtk_progress_bar_get_orientation(pbar:PGtkProgressBar):TGtkProgressBarOrientation; cdecl; external gtklib;
  88. {$ifndef GTK_DISABLE_DEPRECATED}
  89. { Everything below here is deprecated }
  90. function gtk_progress_bar_new_with_adjustment(adjustment:PGtkAdjustment):PGtkWidget; cdecl; external gtklib;
  91. procedure gtk_progress_bar_set_bar_style(pbar:PGtkProgressBar; style:TGtkProgressBarStyle); cdecl; external gtklib;
  92. procedure gtk_progress_bar_set_discrete_blocks(pbar:PGtkProgressBar; blocks:guint); cdecl; external gtklib;
  93. { set_activity_step() is not only deprecated, it doesn't even work.
  94. (Of course, it wasn't usable anyway, you had to set it from a size_allocate
  95. handler or something)
  96. }
  97. procedure gtk_progress_bar_set_activity_step(pbar:PGtkProgressBar; step:guint); cdecl; external gtklib;
  98. procedure gtk_progress_bar_set_activity_blocks(pbar:PGtkProgressBar; blocks:guint); cdecl; external gtklib;
  99. procedure gtk_progress_bar_update(pbar:PGtkProgressBar; percentage:gdouble); cdecl; external gtklib;
  100. {$endif}
  101. { GTK_DISABLE_DEPRECATED }
  102. {$ENDIF read_interface_rest}
  103. //------------------------------------------------------------------------------
  104. {$IFDEF read_implementation}
  105. function GTK_TYPE_PROGRESS_BAR : GType;
  106. begin
  107. GTK_TYPE_PROGRESS_BAR:=gtk_progress_bar_get_type;
  108. end;
  109. function GTK_PROGRESS_BAR(obj: pointer) : PGtkProgressBar;
  110. begin
  111. GTK_PROGRESS_BAR:=PGtkProgressBar(GTK_CHECK_CAST(obj,GTK_TYPE_PROGRESS_BAR));
  112. end;
  113. function GTK_PROGRESS_BAR_CLASS(klass: pointer) : PGtkProgressBarClass;
  114. begin
  115. GTK_PROGRESS_BAR_CLASS:=PGtkProgressBarClass(GTK_CHECK_CLASS_CAST(klass,GTK_TYPE_PROGRESS_BAR));
  116. end;
  117. function GTK_IS_PROGRESS_BAR(obj: pointer) : boolean;
  118. begin
  119. GTK_IS_PROGRESS_BAR:=GTK_CHECK_TYPE(obj,GTK_TYPE_PROGRESS_BAR);
  120. end;
  121. function GTK_IS_PROGRESS_BAR_CLASS(klass: pointer) : boolean;
  122. begin
  123. GTK_IS_PROGRESS_BAR_CLASS:=GTK_CHECK_CLASS_TYPE(klass,GTK_TYPE_PROGRESS_BAR);
  124. end;
  125. function GTK_PROGRESS_BAR_GET_CLASS(obj: pointer) : PGtkProgressBarClass;
  126. begin
  127. GTK_PROGRESS_BAR_GET_CLASS:=PGtkProgressBarClass(GTK_CHECK_GET_CLASS(obj,GTK_TYPE_PROGRESS_BAR));
  128. end;
  129. function activity_dir(var a : TGtkProgressBar) : guint;
  130. begin
  131. activity_dir:=(a.flag0 and bm_TGtkProgressBar_activity_dir) shr bp_TGtkProgressBar_activity_dir;
  132. end;
  133. procedure set_activity_dir(var a : TGtkProgressBar; __activity_dir : guint);
  134. begin
  135. a.flag0:=a.flag0 or ((__activity_dir shl bp_TGtkProgressBar_activity_dir) and bm_TGtkProgressBar_activity_dir);
  136. end;
  137. {$ENDIF read_implementation}
  138. // included by gtk2.pas