123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306(**************************************************************************)(* Lablgtk *)(* *)(* This program is free software; you can redistribute it *)(* and/or modify it under the terms of the GNU Library General *)(* Public License as published by the Free Software Foundation *)(* version 2, with the exception described in file COPYING which *)(* comes with the library. *)(* *)(* This program is distributed in the hope that it will be useful, *)(* but WITHOUT ANY WARRANTY; without even the implied warranty of *)(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *)(* GNU Library General Public License for more details. *)(* *)(* You should have received a copy of the GNU Library General *)(* Public License along with this program; if not, write to the *)(* Free Software Foundation, Inc., 59 Temple Place, Suite 330, *)(* Boston, MA 02111-1307 USA *)(* *)(* *)(**************************************************************************)(* $Id$ *)openGauxopenGobjectopenGtkopenGtkBaseopenGtkButtonopenOgtkButtonPropsopenGObjopenGContainerclassbutton_skelobj=object(self)inheritbinobjinheritbutton_propsmethodclicked()=Button.clickedobjmethodgrab_default()=setWidget.P.can_defaultobjtrue;setWidget.P.has_defaultobjtruemethodevent=newGObj.event_opsobjmethodunset_image()=Gobject.Property.set_dynobjGtkButtonProps.Button.P.image.Gobject.name(`OBJECTNone)endclassbutton_signalsobj=objectinheritcontainer_signals_impl(obj:[>button]obj)inheritbutton_sigsendclassbuttonobj=objectinheritbutton_skel(obj:Gtk.buttonobj)methodconnect=newbutton_signalsobjendletpack_returncreatep?packing?show()=pack_return(createp)~packing~showletbutton?label=Button.make_params[]?label~cont:(pack_return(funp->newbutton(Button.createp)))classtoggle_button_signalsobj=object(self)inheritbutton_signalsobjmethodtoggled=self#connectToggleButton.S.toggledendclasstoggle_buttonobj=objectinheritbutton_skelobjmethodconnect=newtoggle_button_signalsobjmethodactive=getToggleButton.P.activeobjmethodset_active=setToggleButton.P.activeobjmethodset_draw_indicator=setToggleButton.P.draw_indicatorobjendletmake_toggle_buttoncreate?label=Button.make_params[]?label~cont:(ToggleButton.make_params~cont:(pack_return(funp->newtoggle_button(createp))))lettoggle_button=make_toggle_buttonToggleButton.createletcheck_button=make_toggle_buttonToggleButton.create_checkclassradio_buttonobj=objectinherittoggle_button(obj:Gtk.radio_buttonobj)methodset_group=setRadioButton.P.groupobjmethodgroup=Someobjendletradio_button?group=Button.make_params[]~cont:(ToggleButton.make_params~cont:(pack_return(funp->newradio_button(RadioButton.create?groupp))))classcolor_button_signalsobj=object(self)inheritbutton_signalsobjmethodcolor_set=self#connectColorButton.S.color_setendclasscolor_buttonobj=objectinheritbutton_skelobjinheritcolor_button_propsmethodconnect=newcolor_button_signalsobjendletcolor_button=ColorButton.make_params[]~cont:(pack_return(funpl->newcolor_button(ColorButton.createpl)))classfont_button_signalsobj=object(self)inheritbutton_signalsobjmethodfont_set=self#connectFontButton.S.font_setendclassfont_buttonobj=objectinheritbutton_skelobjinheritfont_button_propsmethodconnect=newfont_button_signalsobjendletfont_button=FontButton.make_params[]~cont:(pack_return(funpl->newfont_button(FontButton.createpl)))(* Toolbar *)classtypetool_item_o=objectmethodas_tool_item:Gtk.tool_itemobjendclasstoolbar_signalsobj=objectinheritGContainer.container_signals_implobjinherittoolbar_sigsendclasstoolbarobj=objectinheritcontainer(obj:Gtk.toolbarobj)inherittoolbar_propsinheritOgtkBaseProps.orientable_propsmethodconnect=newtoolbar_signalsobjmethodinsert:'a.?pos:int->(#tool_item_oas'a)->unit=fun?(pos=-1)it->Toolbar.insertobjit#as_tool_itemposmethodget_item_index:Gtk.tool_itemobj->_=Toolbar.get_item_indexobjmethodget_n_items=Toolbar.get_n_itemsobjmethodget_nth_item=Toolbar.get_nth_itemobjmethodunset_style=Toolbar.unset_styleobjmethodget_drop_index=Toolbar.get_drop_indexobjmethodset_drop_highlight_item:'a.((#tool_item_oas'a)*int)option->_=function|None->Toolbar.set_drop_highlight_itemobjNone0|Some(i,pos)->Toolbar.set_drop_highlight_itemobj(Somei#as_tool_item)posmethodrelief_style=Toolbar.get_relief_styleobjendletmay_cons=Gobject.Property.may_conslettoolbar?orientation?style=pack_container[]~create:(funp->letp=may_consToolbar.P.toolbar_stylestyle(may_consGtkBase.Orientable.P.orientationorientationp)innewtoolbar(Toolbar.createp))classtool_item_skelobj=objectinherit[[>Gtk.tool_item]]GContainer.bin_implobjinheritOgtkButtonProps.tool_item_propsmethodas_tool_item=(obj:>Gtk.tool_itemobj)methodset_homogeneous=ToolItem.set_homogeneousobjmethodget_homogeneous=ToolItem.get_homogeneousobjmethodset_expand=ToolItem.set_expandobjmethodget_expand=ToolItem.get_expandobjmethodset_use_drag_window=ToolItem.set_use_drag_windowobjmethodget_use_drag_window=ToolItem.get_use_drag_windowobjendclasstool_itemobj=objectinherittool_item_skelobjmethodconnect=newGContainer.container_signals_implobjendlettool_item_paramscreatepl?homogeneous?expand?packing?show()=letitem=createplinGaux.mayitem#set_homogeneoushomogeneous;Gaux.mayitem#set_expandexpand;Gaux.may(funf->(f(item:>tool_item_o):unit))packing;ifshow<>Somefalsethenitem#misc#show();itemlettool_item=tool_item_params(funpl->newtool_item(ToolItem.createpl))[]classseparator_tool_itemobj=objectinherittool_itemobjmethoddraw=getSeparatorToolItem.P.drawobjmethodset_draw=setSeparatorToolItem.P.drawobjendletseparator_tool_item?draw=letpl=may_consSeparatorToolItem.P.drawdraw[]intool_item_params(funpl->newseparator_tool_item(SeparatorToolItem.createpl))plclasstool_button_signals(obj:[>Gtk.tool_button]obj)=object(self)inheritGContainer.container_signals_implobjmethodclicked=self#connectToolButton.S.clickedendclasstool_button_skelobj=objectinherittool_item_skelobjinherittool_button_propsendclasstool_buttonobj=objectinherittool_button_skelobjmethodconnect=newtool_button_signalsobjendlettool_button_paramscreatepl?label?stock?use_underline=tool_item_paramscreate(may_consToolButton.P.labellabel(may_consToolButton.P.stock_idstock(may_consToolButton.P.use_underlineuse_underlinepl)))lettool_button=tool_button_params(funpl->newtool_button(ToolButton.createpl))[]classtoggle_tool_button_signalsobj=object(self)inherittool_button_signalsobjmethodtoggled=self#connectToggleToolButton.S.toggledendclasstoggle_tool_buttonobj=objectinherittool_button_skelobjmethodconnect=newtoggle_tool_button_signalsobjmethodset_active=ToggleToolButton.set_activeobjmethodget_active=ToggleToolButton.get_activeobjendlettoggle_tool_button_paramscreatepl?active=tool_button_params(funpl->leto=createplinGaux.mayo#set_activeactive;o)pllettoggle_tool_button=toggle_tool_button_params(funpl->newtoggle_tool_button(ToggleToolButton.createpl))[]classradio_tool_buttonobj=objectinherittoggle_tool_buttonobjmethodgroup=Some(obj:>Gtk.radio_tool_buttonGtk.obj)methodset_group=setRadioToolButton.P.groupobjendletradio_tool_button?group=toggle_tool_button_params(funpl->newradio_tool_button(RadioToolButton.createpl))(may_consRadioToolButton.P.group(Gaux.may_map(fung->g#group)group)[])classmenu_tool_buttonobj=objectinherittool_buttonobjmethodmenu=getMenuToolButton.P.menuobjmethodset_menu=setMenuToolButton.P.menuobjendletmenu_tool_button?menu=tool_button_params(funpl->newmenu_tool_button(MenuToolButton.createpl))(may_consMenuToolButton.P.menu(Gaux.may_map(funm->m#as_menu)menu)[])classlink_button_signalsobj=object(self)inheritbutton_signalsobjmethodactivate_link=self#connectLinkButton.S.activate_linkendclasslink_buttonobj=objectinheritbutton_skelobjinheritlink_button_propsmethodconnect=newlink_button_signalsobjendletlink_button?label=pack_return(funuri->newlink_button(matchlabelwith|None->LinkButton.createuri|Somes->LinkButton.create_with_labeluris))