]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkRange.ml
Initial revision
[helm.git] / helm / DEVEL / lablgtk / lablgtk_20000829-0.1.0 / gtkRange.ml
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkRange.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkRange.ml
new file mode 100644 (file)
index 0000000..b67e49b
--- /dev/null
@@ -0,0 +1,147 @@
+(* $Id$ *)
+
+open Gaux
+open Gtk
+open Tags
+open GtkBase
+
+module Progress = struct
+  let cast w : progress obj = Object.try_cast w "GtkProgress"
+  external set_show_text : [>`progress] obj -> bool -> unit
+      = "ml_gtk_progress_set_show_text"
+  external set_text_alignment :
+      [>`progress] obj -> ?x:float -> ?y:float -> unit -> unit
+      = "ml_gtk_progress_set_show_text"
+  external set_format_string : [>`progress] obj -> string -> unit
+      = "ml_gtk_progress_set_format_string"
+  external set_adjustment : [>`progress] obj -> [>`adjustment] obj -> unit
+      = "ml_gtk_progress_set_adjustment"
+  external configure :
+      [>`progress] obj -> current:float -> min:float -> max:float -> unit
+      = "ml_gtk_progress_configure"
+  external set_percentage : [>`progress] obj -> float -> unit
+      = "ml_gtk_progress_set_percentage"
+  external set_value : [>`progress] obj -> float -> unit
+      = "ml_gtk_progress_set_value"
+  external get_value : [>`progress] obj -> float
+      = "ml_gtk_progress_get_value"
+  external get_percentage : [>`progress] obj -> float
+      = "ml_gtk_progress_get_current_percentage"
+  external set_activity_mode : [>`progress] obj -> bool -> unit
+      = "ml_gtk_progress_set_activity_mode"
+  external get_current_text : [>`progress] obj -> string
+      = "ml_gtk_progress_get_current_text"
+  external get_adjustment : [>`progress] obj -> adjustment obj
+      = "ml_gtk_progress_get_adjustment"
+  let set ?value ?percentage ?activity_mode
+      ?show_text ?format_string ?text_xalign ?text_yalign w =
+    may value ~f:(set_value w);
+    may percentage ~f:(set_percentage w);
+    may activity_mode ~f:(set_activity_mode w);
+    may show_text ~f:(set_show_text w);
+    may format_string ~f:(set_format_string w);
+    if text_xalign <> None || text_yalign <> None then
+      set_text_alignment w ?x:text_xalign ?y:text_yalign ()
+end
+
+module ProgressBar = struct
+  let cast w : progress_bar obj = Object.try_cast w "GtkProgressBar"
+  external create : unit -> progress_bar obj = "ml_gtk_progress_bar_new"
+  external create_with_adjustment : [>`adjustment] obj -> progress_bar obj
+      = "ml_gtk_progress_bar_new_with_adjustment"
+  external set_bar_style :
+      [>`progressbar] obj -> [`CONTINUOUS|`DISCRETE] -> unit
+      = "ml_gtk_progress_bar_set_bar_style"
+  external set_discrete_blocks : [>`progressbar] obj -> int -> unit
+      = "ml_gtk_progress_bar_set_discrete_blocks"
+  external set_activity_step : [>`progressbar] obj -> int -> unit
+      = "ml_gtk_progress_bar_set_activity_step"
+  external set_activity_blocks : [>`progressbar] obj -> int -> unit
+      = "ml_gtk_progress_bar_set_activity_blocks"
+  external set_orientation :
+      [>`progressbar] obj -> Tags.progress_bar_orientation -> unit
+      = "ml_gtk_progress_bar_set_orientation"
+  let set ?bar_style ?discrete_blocks ?activity_step ?activity_blocks w =
+    let may_set f opt = may opt ~f:(f w) in
+    may_set set_bar_style bar_style;
+    may_set set_discrete_blocks discrete_blocks;
+    may_set set_activity_step activity_step;
+    may_set set_activity_blocks activity_blocks
+end
+
+module Range = struct
+  let cast w : range obj = Object.try_cast w "GtkRange"
+  external coerce : [>`range] obj -> range obj = "%identity"
+  external get_adjustment : [>`range] obj -> adjustment obj
+      = "ml_gtk_range_get_adjustment"
+  external set_adjustment : [>`range] obj -> [>`adjustment] obj -> unit
+      = "ml_gtk_range_set_adjustment"
+  external set_update_policy : [>`range] obj -> update_type -> unit
+      = "ml_gtk_range_set_update_policy"
+  let set ?adjustment ?update_policy w =
+    may adjustment ~f:(set_adjustment w);
+    may update_policy ~f:(set_update_policy w)
+end
+
+module Scale = struct
+  let cast w : scale obj = Object.try_cast w "GtkScale"
+  external hscale_new : [>`adjustment] optobj -> scale obj
+      = "ml_gtk_hscale_new"
+  external vscale_new : [>`adjustment] optobj -> scale obj
+      = "ml_gtk_vscale_new"
+  let create ?adjustment (dir : orientation) =
+    let create = if dir = `HORIZONTAL then hscale_new else vscale_new  in
+    create (Gpointer.optboxed adjustment)
+  external set_digits : [>`scale] obj -> int -> unit
+      = "ml_gtk_scale_set_digits"
+  external set_draw_value : [>`scale] obj -> bool -> unit
+      = "ml_gtk_scale_set_draw_value"
+  external set_value_pos : [>`scale] obj -> position -> unit
+      = "ml_gtk_scale_set_value_pos"
+  external get_value_width : [>`scale] obj -> int
+      = "ml_gtk_scale_get_value_width"
+  external draw_value : [>`scale] obj -> unit
+      = "ml_gtk_scale_draw_value"
+  let set ?digits ?draw_value ?value_pos w =
+    may digits ~f:(set_digits w);
+    may draw_value ~f:(set_draw_value w);
+    may value_pos ~f:(set_value_pos w)
+end
+
+module Scrollbar = struct
+  let cast w : scrollbar obj = Object.try_cast w "GtkScrollbar"
+  external hscrollbar_new : [>`adjustment] optobj -> scrollbar obj
+      = "ml_gtk_hscrollbar_new"
+  external vscrollbar_new : [>`adjustment] optobj -> scrollbar obj
+      = "ml_gtk_vscrollbar_new"
+  let create ?adjustment (dir : orientation) =
+    let create = if dir = `HORIZONTAL then hscrollbar_new else vscrollbar_new
+    in create (Gpointer.optboxed adjustment)
+end
+
+module Ruler = struct
+  let cast w : ruler obj = Object.try_cast w "GtkRuler"
+  external hruler_new : unit -> ruler obj = "ml_gtk_hruler_new"
+  external vruler_new : unit -> ruler obj = "ml_gtk_vruler_new"
+  let create (dir : orientation) =
+    if dir = `HORIZONTAL then hruler_new () else vruler_new ()
+  external set_metric : [>`ruler] obj -> metric_type -> unit
+      = "ml_gtk_ruler_set_metric"
+  external set_range :
+      [>`ruler] obj ->
+      lower:float -> upper:float -> position:float -> max_size:float -> unit
+      = "ml_gtk_ruler_set_range"
+  external get_lower : [>`ruler] obj -> float = "ml_gtk_ruler_get_lower"
+  external get_upper : [>`ruler] obj -> float = "ml_gtk_ruler_get_upper"
+  external get_position : [>`ruler] obj -> float = "ml_gtk_ruler_get_position"
+  external get_max_size : [>`ruler] obj -> float = "ml_gtk_ruler_get_max_size"
+  let set_range ?lower ?upper ?position ?max_size w =
+    set_range w ~lower:(may_default get_lower w ~opt:lower)
+      ~upper:(may_default get_upper w ~opt:upper)
+      ~position:(may_default get_position w ~opt:position)
+      ~max_size:(may_default get_max_size w ~opt:max_size)
+  let set ?metric ?lower ?upper ?position ?max_size w =
+    may metric ~f:(set_metric w);
+    if lower <> None || upper <> None || position <> None || max_size <> None
+    then set_range w ?lower ?upper ?position ?max_size
+end