diff options
Diffstat (limited to 'packages/gtk2/src/gtk+/gtk/gtkprogressbar.inc')
-rw-r--r-- | packages/gtk2/src/gtk+/gtk/gtkprogressbar.inc | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/packages/gtk2/src/gtk+/gtk/gtkprogressbar.inc b/packages/gtk2/src/gtk+/gtk/gtkprogressbar.inc new file mode 100644 index 0000000000..d47a883477 --- /dev/null +++ b/packages/gtk2/src/gtk+/gtk/gtkprogressbar.inc @@ -0,0 +1,167 @@ +// included by gtk2.pas + +{$IFDEF read_forward_definitions} +{$ENDIF read_forward_definitions} + +//------------------------------------------------------------------------------ + +{$IFDEF read_interface_types} + PGtkProgressBarStyle = ^TGtkProgressBarStyle; + TGtkProgressBarStyle = ( + GTK_PROGRESS_CONTINUOUS, + GTK_PROGRESS_DISCRETE + ); + + PGtkProgressBarOrientation = ^TGtkProgressBarOrientation; + TGtkProgressBarOrientation = ( + GTK_PROGRESS_LEFT_TO_RIGHT, + GTK_PROGRESS_RIGHT_TO_LEFT, + GTK_PROGRESS_BOTTOM_TO_TOP, + GTK_PROGRESS_TOP_TO_BOTTOM + ); + + PGtkProgressBar = ^TGtkProgressBar; + TGtkProgressBar = record + progress : TGtkProgress; + bar_style : TGtkProgressBarStyle; + orientation : TGtkProgressBarOrientation; + blocks : guint; + in_block : gint; + activity_pos : gint; + activity_step : guint; + activity_blocks : guint; + pulse_fraction : gdouble; + flag0 : word; + end; + +{ Padding for future expansion } + PGtkProgressBarClass = ^TGtkProgressBarClass; + TGtkProgressBarClass = record + parent_class : TGtkProgressClass; + _gtk_reserved1 : procedure ; cdecl; + _gtk_reserved2 : procedure ; cdecl; + _gtk_reserved3 : procedure ; cdecl; + _gtk_reserved4 : procedure ; cdecl; + end; + +{$ENDIF read_interface_types} + +//------------------------------------------------------------------------------ + +{$IFDEF read_interface_rest} +const + bm_TGtkProgressBar_activity_dir = $1; + bp_TGtkProgressBar_activity_dir = 0; + + +function GTK_TYPE_PROGRESS_BAR : GType; +function GTK_PROGRESS_BAR(obj: pointer) : PGtkProgressBar; +function GTK_PROGRESS_BAR_CLASS(klass: pointer) : PGtkProgressBarClass; +function GTK_IS_PROGRESS_BAR(obj: pointer) : boolean; +function GTK_IS_PROGRESS_BAR_CLASS(klass: pointer) : boolean; +function GTK_PROGRESS_BAR_GET_CLASS(obj: pointer) : PGtkProgressBarClass; + +function activity_dir(var a : TGtkProgressBar) : guint; +procedure set_activity_dir(var a : TGtkProgressBar; __activity_dir : guint); + +function gtk_progress_bar_get_type:TGtkType; cdecl; external gtklib; +function gtk_progress_bar_new:PGtkWidget; cdecl; external gtklib; +{ + GtkProgress/GtkProgressBar had serious problems in GTK 1.2. + + - Only 3 or 4 functions are really needed for 95% of progress + interfaces; GtkProgress[Bar] had about 25 functions, and + didn't even include these 3 or 4. + - In activity mode, the API involves setting the adjustment + to any random value, just to have the side effect of + calling the progress bar update function - the adjustment + is totally ignored in activity mode + - You set the activity step as a pixel value, which means to + set the activity step you basically need to connect to + size_allocate + - There are ctree_set_expander_style()-functions, to randomly + change look-and-feel for no good reason + - The split between GtkProgress and GtkProgressBar makes no sense + to me whatsoever. + + This was a big wart on GTK and made people waste lots of time, + both learning and using the interface. + + So, I have added what I feel is the correct API, and marked all the + rest deprecated. However, the changes are 100% backward-compatible and + should break no existing code. + + The following 9 functions are the new programming interface. + } +procedure gtk_progress_bar_pulse(pbar:PGtkProgressBar); cdecl; external gtklib; +procedure gtk_progress_bar_set_text(pbar:PGtkProgressBar; text:Pgchar); cdecl; external gtklib; +procedure gtk_progress_bar_set_fraction(pbar:PGtkProgressBar; fraction:gdouble); cdecl; external gtklib; +procedure gtk_progress_bar_set_pulse_step(pbar:PGtkProgressBar; fraction:gdouble); cdecl; external gtklib; +procedure gtk_progress_bar_set_orientation(pbar:PGtkProgressBar; orientation:TGtkProgressBarOrientation); cdecl; external gtklib; +function gtk_progress_bar_get_text(pbar:PGtkProgressBar):Pgchar; cdecl; external gtklib; +function gtk_progress_bar_get_fraction(pbar:PGtkProgressBar):gdouble; cdecl; external gtklib; +function gtk_progress_bar_get_pulse_step(pbar:PGtkProgressBar):gdouble; cdecl; external gtklib; +function gtk_progress_bar_get_orientation(pbar:PGtkProgressBar):TGtkProgressBarOrientation; cdecl; external gtklib; + +{$ifndef GTK_DISABLE_DEPRECATED} +{ Everything below here is deprecated } +function gtk_progress_bar_new_with_adjustment(adjustment:PGtkAdjustment):PGtkWidget; cdecl; external gtklib; +procedure gtk_progress_bar_set_bar_style(pbar:PGtkProgressBar; style:TGtkProgressBarStyle); cdecl; external gtklib; +procedure gtk_progress_bar_set_discrete_blocks(pbar:PGtkProgressBar; blocks:guint); cdecl; external gtklib; +{ set_activity_step() is not only deprecated, it doesn't even work. + (Of course, it wasn't usable anyway, you had to set it from a size_allocate + handler or something) + } +procedure gtk_progress_bar_set_activity_step(pbar:PGtkProgressBar; step:guint); cdecl; external gtklib; +procedure gtk_progress_bar_set_activity_blocks(pbar:PGtkProgressBar; blocks:guint); cdecl; external gtklib; +procedure gtk_progress_bar_update(pbar:PGtkProgressBar; percentage:gdouble); cdecl; external gtklib; +{$endif} +{ GTK_DISABLE_DEPRECATED } +{$ENDIF read_interface_rest} + +//------------------------------------------------------------------------------ + +{$IFDEF read_implementation} +function GTK_TYPE_PROGRESS_BAR : GType; +begin + GTK_TYPE_PROGRESS_BAR:=gtk_progress_bar_get_type; +end; + +function GTK_PROGRESS_BAR(obj: pointer) : PGtkProgressBar; +begin + GTK_PROGRESS_BAR:=PGtkProgressBar(GTK_CHECK_CAST(obj,GTK_TYPE_PROGRESS_BAR)); +end; + +function GTK_PROGRESS_BAR_CLASS(klass: pointer) : PGtkProgressBarClass; +begin + GTK_PROGRESS_BAR_CLASS:=PGtkProgressBarClass(GTK_CHECK_CLASS_CAST(klass,GTK_TYPE_PROGRESS_BAR)); +end; + +function GTK_IS_PROGRESS_BAR(obj: pointer) : boolean; +begin + GTK_IS_PROGRESS_BAR:=GTK_CHECK_TYPE(obj,GTK_TYPE_PROGRESS_BAR); +end; + +function GTK_IS_PROGRESS_BAR_CLASS(klass: pointer) : boolean; +begin + GTK_IS_PROGRESS_BAR_CLASS:=GTK_CHECK_CLASS_TYPE(klass,GTK_TYPE_PROGRESS_BAR); +end; + +function GTK_PROGRESS_BAR_GET_CLASS(obj: pointer) : PGtkProgressBarClass; +begin + GTK_PROGRESS_BAR_GET_CLASS:=PGtkProgressBarClass(GTK_CHECK_GET_CLASS(obj,GTK_TYPE_PROGRESS_BAR)); +end; + +function activity_dir(var a : TGtkProgressBar) : guint; +begin + activity_dir:=(a.flag0 and bm_TGtkProgressBar_activity_dir) shr bp_TGtkProgressBar_activity_dir; +end; + +procedure set_activity_dir(var a : TGtkProgressBar; __activity_dir : guint); +begin + a.flag0:=a.flag0 or ((__activity_dir shl bp_TGtkProgressBar_activity_dir) and bm_TGtkProgressBar_activity_dir); +end; + +{$ENDIF read_implementation} +// included by gtk2.pas + |