X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FDEVEL%2Flablgtk%2Flablgtk_20000829-0.1.0%2FgButton.ml;fp=helm%2FDEVEL%2Flablgtk%2Flablgtk_20000829-0.1.0%2FgButton.ml;h=08ac70445a97085c8c99cdf5f191c5d0af98a3c1;hb=2ee84a2a641938988703e329aef9fc3c5eb5aacf;hp=0000000000000000000000000000000000000000;hpb=34d83812af9b7064cc8f735c2a78169881140010;p=helm.git 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 index 000000000..08ac70445 --- /dev/null +++ b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gButton.ml @@ -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