]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gButton.ml
Initial revision
[helm.git] / helm / DEVEL / lablgtk / lablgtk_20000829-0.1.0 / gButton.ml
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gButton.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gButton.ml
new file mode 100644 (file)
index 0000000..08ac704
--- /dev/null
@@ -0,0 +1,124 @@
+(* $Id$ *)
+
+open Gaux
+open Gtk
+open GtkBase
+open GtkButton
+open GObj
+open GContainer
+
+class button_skel obj = object (self)
+  inherit container obj
+  method clicked () = Button.clicked obj
+  method grab_default () =
+    Widget.set_can_default obj true;
+    Widget.grab_default obj
+end
+
+class button_signals obj = object
+  inherit container_signals obj
+  method clicked = GtkSignal.connect ~sgn:Button.Signals.clicked ~after obj
+  method pressed = GtkSignal.connect ~sgn:Button.Signals.pressed ~after obj
+  method released = GtkSignal.connect ~sgn:Button.Signals.released ~after obj
+  method enter = GtkSignal.connect ~sgn:Button.Signals.enter ~after obj
+  method leave = GtkSignal.connect ~sgn:Button.Signals.leave ~after obj
+end
+
+class button obj = object
+  inherit button_skel (Button.coerce obj)
+  method connect = new button_signals obj
+  method event = new GObj.event_ops obj
+end
+
+let button ?label ?border_width ?width ?height ?packing ?show () =
+  let w = Button.create ?label () in
+  Container.set w ?border_width ?width ?height;
+  pack_return (new button w) ~packing ~show
+
+class toggle_button_signals obj = object
+  inherit button_signals obj
+  method toggled =
+    GtkSignal.connect ~sgn:ToggleButton.Signals.toggled obj ~after
+end
+
+class toggle_button obj = object
+  inherit button_skel obj
+  method connect = new toggle_button_signals obj
+  method active = ToggleButton.get_active obj
+  method set_active = ToggleButton.set_active obj
+  method set_draw_indicator = ToggleButton.set_mode obj
+end
+
+let toggle_button ?label ?active ?draw_indicator
+    ?border_width ?width ?height ?packing ?show () =
+  let w = ToggleButton.create_toggle ?label () in
+  ToggleButton.set w ?active ?draw_indicator;
+  Container.set w ?border_width ?width ?height;
+  pack_return (new toggle_button w) ~packing ~show
+
+let check_button ?label ?active ?draw_indicator
+    ?border_width ?width ?height ?packing ?show () =
+  let w = ToggleButton.create_check ?label () in
+  ToggleButton.set w ?active ?draw_indicator;
+  Container.set w ?border_width ?width ?height;
+  pack_return (new toggle_button w) ~packing ~show
+
+class radio_button obj = object
+  inherit toggle_button (obj : Gtk.radio_button obj)
+  method set_group = RadioButton.set_group obj
+  method group = Some obj
+end
+
+let radio_button ?group ?label ?active ?draw_indicator
+    ?border_width ?width ?height ?packing ?show () =
+  let w = RadioButton.create ?group ?label () in
+  ToggleButton.set w ?active ?draw_indicator;
+  Container.set w ?border_width ?width ?height;
+  pack_return (new radio_button w) ~packing ~show
+
+class toolbar obj = object
+  inherit container_full (obj : Gtk.toolbar obj)
+  method insert_widget ?tooltip ?tooltip_private ?pos w =
+    Toolbar.insert_widget obj (as_widget w) ?tooltip ?tooltip_private ?pos
+
+  method insert_button ?text ?tooltip ?tooltip_private ?icon
+      ?pos ?callback () =
+    let icon = may_map icon ~f:as_widget in
+    new button
+      (Toolbar.insert_button obj ~kind:`BUTTON ?icon ?text
+        ?tooltip ?tooltip_private ?pos ?callback ())
+
+  method insert_toggle_button ?text ?tooltip ?tooltip_private ?icon
+      ?pos ?callback () =
+    let icon = may_map icon ~f:as_widget in
+    new toggle_button
+      (ToggleButton.cast
+        (Toolbar.insert_button obj ~kind:`TOGGLEBUTTON ?icon ?text
+           ?tooltip ?tooltip_private ?pos ?callback ()))
+
+  method insert_radio_button ?text ?tooltip ?tooltip_private ?icon
+      ?pos ?callback () =
+    let icon = may_map icon ~f:as_widget in
+    new radio_button
+      (RadioButton.cast
+        (Toolbar.insert_button obj ~kind:`RADIOBUTTON ?icon ?text
+           ?tooltip ?tooltip_private ?pos ?callback ()))
+
+  method insert_space = Toolbar.insert_space obj
+
+  method set_orientation = Toolbar.set_orientation obj
+  method set_style = Toolbar.set_style obj
+  method set_space_size = Toolbar.set_space_size obj
+  method set_space_style = Toolbar.set_space_style obj
+  method set_tooltips = Toolbar.set_tooltips obj
+  method set_button_relief = Toolbar.set_button_relief obj
+  method button_relief = Toolbar.get_button_relief obj
+end
+
+let toolbar ?(orientation=`HORIZONTAL) ?style
+    ?space_size ?space_style ?tooltips ?button_relief
+    ?border_width ?width ?height ?packing ?show () =
+  let w = Toolbar.create orientation ?style () in
+  Toolbar.set w ?space_size ?space_style ?tooltips ?button_relief;
+  Container.set w ?border_width ?width ?height;
+  pack_return (new toolbar w) ~packing ~show