123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638(**************************************************************************)(* 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 *)(* *)(* *)(**************************************************************************)openGauxopenGtkSourceView3openSourceView3EnumsopenGobjectopenGtkopenGtkBaseopenGtkSourceView3_typesopenOgtkSourceView3PropsopenGObjletget_bool=function`BOOLx->x|_->assertfalseletboolx=`BOOLxletget_uint=function`INTx->x|_->assertfalseletuintx=`INTxletget_int=function`INTx->x|_->assertfalseletintx=`INTxletget_gobject=function`OBJECTx->x|_->assertfalseletgobjectx=`OBJECT(Somex)letmap_optf=functionNone->None|Somex->Some(fx)(** {2 GtkSourceTag} *)typesource_tag_property=[|`BACKGROUNDofGdk.color|`BOLDofbool|`FOREGROUNDofGdk.color|`ITALICofbool|`STRIKETHROUGHofbool|`UNDERLINEofbool]lettext_tag_property_of_source_tag_property=function|`BACKGROUNDp->`BACKGROUND_GDKp|`BOLDp->`WEIGHT(ifpthen`BOLDelse`NORMAL)|`FOREGROUNDp->`FOREGROUND_GDKp|`ITALICp->`STYLE(ifpthen`ITALICelse`NORMAL)|`STRIKETHROUGHp->`STRIKETHROUGHp|`UNDERLINEp->`UNDERLINE(ifpthen`SINGLEelse`NONE)(* Gtk.Color deactivated
let color_of_string s =
Gdk.Color.alloc ~colormap: (Gdk.Color.get_system_colormap())
(`NAME s)
*)(** {2 GtkSourceStyleScheme} *)classsource_style_scheme(obj:GtkSourceView3_types.source_style_schemeobj)=object(self)methodas_source_style_scheme=objmethodname=SourceStyleScheme.get_nameobjmethoddescription=SourceStyleScheme.get_descriptionobjend(** {2 GtkSourceStyleSchemeManager} *)classsource_style_scheme_manager(obj:GtkSourceView3_types.source_style_scheme_managerobj)=object(self)valobj=objinheritsource_style_scheme_manager_propsmethodsearch_path=SourceStyleSchemeManager.get_search_pathobjmethodset_search_path=SourceStyleSchemeManager.set_search_pathobjmethodstyle_scheme_ids=SourceStyleSchemeManager.get_scheme_idsobjmethodstyle_schemes=may_map(newsource_style_scheme)(SourceStyleSchemeManager.get_schemeobjs)endletsource_style_scheme_manager~default=letmgr=ifdefaultthenSourceStyleSchemeManager.default()elseSourceStyleSchemeManager.new_()innewsource_style_scheme_managermgr(** {2 GtkSourceCompletionInfo} *)classsource_completion_info_signals(obj':GtkSourceView3_types.source_completion_infoobj)=objectinheritGContainer.container_signals_implobj'inheritsource_completion_info_sigsendclasssource_completion_info(obj':([>GtkSourceView3_types.source_completion_info]as'a)obj)=objectinheritGWindow.windowobj'inheritsource_completion_info_propsmethodas_source_completion_info=(obj:>GtkSourceView3_types.source_completion_infoobj)methodwidget=newGObj.widget(SourceCompletionInfo.get_widgetobj)methodset_widget(w:GObj.widget)=SourceCompletionInfo.set_widgetobjw#as_widgetend(** {2 GtkSourceCompletionProposal} *)classsource_completion_proposal_signals(obj':GtkSourceView3_types.source_completion_proposalobj)=objectinherit['a]gobject_signals(obj':[>GtkSourceView3_types.source_completion_proposal]obj)inheritsource_completion_proposal_sigsendclasssource_completion_proposal(obj:GtkSourceView3_types.source_completion_proposalobj)=objectvalobj=objmethodconnect=newsource_completion_proposal_signalsobjmethodas_source_completion_proposal=objinheritsource_completion_proposal_propsendclasssource_completion_item(obj:GtkSourceView3_types.source_completion_proposalobj)=objectinheritsource_completion_proposalobjinheritsource_completion_item_propsendletsource_completion_item?(label="")?(text="")?icon?info()=newsource_completion_item(SourceCompletionItem.new_labeltexticoninfo)letsource_completion_item_with_markup?(label="")?(text="")?icon?info()=newsource_completion_item(SourceCompletionItem.new_with_markuplabeltexticoninfo)letsource_completion_item_from_stock?(label="")?(text="")~stock~info()=letstock=GtkStock.Item.lookupstockinletid=stock.GtkStock.stock_idinnewsource_completion_item(SourceCompletionItem.new_from_stocklabeltextidinfo)(** {2 GtkSourceCompletionProvider} *)classsource_completion_provider(obj':GtkSourceView3_types.source_completion_providerobj)=objectvalobj=obj'methodas_source_completion_provider=objmethodicon=SourceCompletionProvider.get_iconobjmethodname=SourceCompletionProvider.get_nameobjmethodpopulate(context:source_completion_context)=SourceCompletionProvider.populateobjcontext#as_source_completion_contextmethodactivation=SourceCompletionProvider.get_activationobjmethodmatched(context:source_completion_context)=SourceCompletionProvider.match_objcontext#as_source_completion_contextmethodinfo_widget(proposal:source_completion_proposal)=letwidget=SourceCompletionProvider.get_info_widgetobjproposal#as_source_completion_proposalinmatchwidgetwith|None->None|Somewidget->Some(newGObj.widgetwidget)methodupdate_info(proposal:source_completion_proposal)(info:source_completion_info)=SourceCompletionProvider.update_infoobjproposal#as_source_completion_proposalinfo#as_source_completion_infomethodstart_iter(context:source_completion_context)(proposal:source_completion_proposal)=letiter=SourceCompletionProvider.get_start_iterobjcontext#as_source_completion_contextproposal#as_source_completion_proposalinnewGText.iteritermethodactivate_proposal(proposal:source_completion_proposal)(iter:GText.iter)=SourceCompletionProvider.activate_proposalobjproposal#as_source_completion_proposaliter#as_itermethodinteractive_delay=SourceCompletionProvider.get_interactive_delayobjmethodpriority=SourceCompletionProvider.get_priorityobjend(** {2 GtkSourceCompletionContext} *)andsource_completion_context_signals(obj':GtkSourceView3_types.source_completion_contextobj)=objectinherit['a]gobject_signals(obj':[>GtkSourceView3_types.source_completion_context]obj)inheritsource_completion_context_sigsendandsource_completion_context(obj':GtkSourceView3_types.source_completion_contextobj)=objectvalobj=obj'valiter_prop={Gobject.name="iter";conv=Gobject.Data.unsafe_pointer}inheritsource_completion_context_propsmethodas_source_completion_context=objmethodactivation=SourceCompletionContext.get_activationobjmethodadd_proposals(provider:source_completion_provider)(proposals:source_completion_proposallist)b=letproposals=List.map(funobj->obj#as_source_completion_proposal)proposalsinSourceCompletionContext.add_proposalsobjprovider#as_source_completion_providerproposalsbmethodconnect=newsource_completion_context_signalsobj'methoditer=newGText.iter(Gobject.getiter_propobj)methodset_iter(iter:GText.iter)=Gobject.setiter_propobj(iter#as_iter)endclasstypecustom_completion_provider=objectmethodname:stringmethodicon:GdkPixbuf.pixbufoptionmethodpopulate:source_completion_context->unitmethodmatched:source_completion_context->boolmethodactivation:source_completion_activation_flagslistmethodinfo_widget:source_completion_proposal->GObj.widgetoptionmethodupdate_info:source_completion_proposal->source_completion_info->unitmethodstart_iter:source_completion_context->source_completion_proposal->GText.iter->boolmethodactivate_proposal:source_completion_proposal->GText.iter->boolmethodinteractive_delay:intmethodpriority:intendletsource_completion_provider(p:custom_completion_provider):source_completion_provider=letof_contextctx=newsource_completion_contextctxinletof_proposalprop=newsource_completion_proposalpropinletof_infoinfo=newsource_completion_infoinfoinletof_iteriter=newGText.iteriterinletas_opt_widget=function|None->None|Someobj->Someobj#as_widgetinletcompletion_provider={SourceCompletionProvider.provider_name=(fun()->p#name);provider_icon=(fun()->p#icon);provider_populate=(functx->p#populate(of_contextctx));provider_match=(functx->p#matched(of_contextctx));provider_activation=(fun()->p#activation);provider_info_widget=(funprop->as_opt_widget(p#info_widget(of_proposalprop)));provider_update_info=(funpropinfo->p#update_info(of_proposalprop)(of_infoinfo));provider_start_iter=(functxpropiter->p#start_iter(of_contextctx)(of_proposalprop)(of_iteriter));provider_activate_proposal=(funpropiter->p#activate_proposal(of_proposalprop)(of_iteriter));provider_interactive_delay=(fun()->p#interactive_delay);provider_priority=(fun()->p#priority);}inletobj=SourceCompletionProvider.new_completion_providerinnewsource_completion_providerobj(** {2 GtkSourceCompletion} *)classsource_completion_signalsobj'=object(self)inherit['a]gobject_signals(obj':[>GtkSourceView3_types.source_completion]obj)inheritsource_completion_sigsmethodpopulate_context~callback=letcallbackobj=callback(newsource_completion_contextobj)inself#connectSourceCompletion.S.populate_context~callbackendclasssource_completion(obj:GtkSourceView3_types.source_completionobj)=objectvalobj=objinheritsource_completion_propsassupermethodas_source_completion=objmethodconnect=newsource_completion_signalsobjmethodcreate_context(iter:GText.iter)=letobj=SourceCompletion.create_contextobj(iter#as_iter)innewsource_completion_contextobjmethodmove_window(iter:GText.iter)=SourceCompletion.move_windowobj(iter#as_iter)methodshow(prs:source_completion_providerlist)(ctx:source_completion_context)=letprs=List.map(funpr->pr#as_source_completion_provider)prsinSourceCompletion.showobjprsctx#as_source_completion_contextmethodproviders=letprs=SourceCompletion.get_providersobjinList.map(funpr->newsource_completion_providerpr)prsmethodadd_provider(pr:source_completion_provider)=SourceCompletion.add_providerobj(pr#as_source_completion_provider)methodremove_provider(pr:source_completion_provider)=SourceCompletion.remove_providerobj(pr#as_source_completion_provider)end(** {2 GtkSourceLanguage} *)classsource_language(obj:GtkSourceView3_types.source_languageobj)=object(self)methodas_source_language=objvalobj=objmethodmisc=newgobject_opsobjmethodid=SourceLanguage.get_idobjmethodname=SourceLanguage.get_nameobjmethodsection=SourceLanguage.get_sectionobjmethodhidden=SourceLanguage.get_hiddenobjmethodmetadatas=SourceLanguage.metadataobjsmethodmime_types=SourceLanguage.mime_typesobjmethodglobs=SourceLanguage.globsobjmethodstyle_names=SourceLanguage.style_nameobjsmethodstyle_ids=SourceLanguage.style_idsobjend(** {2 GtkSourceLanguageManager} *)classsource_language_manager(obj:GtkSourceView3_types.source_language_managerobj)=object(self)methodget_oid=Gobject.get_oidobjmethodas_source_language_manager=objmethodset_search_pathp=SourceLanguageManager.set_search_pathobjpmethodsearch_path=SourceLanguageManager.search_pathobjmethodlanguage_ids=SourceLanguageManager.language_idsobjmethodlanguageid=may_map(newsource_language)(SourceLanguageManager.languageobjid)methodguess_language?filename?content_type()=may_map(newsource_language)(SourceLanguageManager.guess_languageobjfilenamecontent_type)endletsource_language_manager~default=newsource_language_manager(ifdefaultthenSourceLanguageManager.default()elseSourceLanguageManager.create[])(** {2 GtkSourceMark} *)classsource_mark(obj:GtkSourceView3_types.source_markobj)=object(self)methodcoerce=(`MARK(GtkText.Mark.castobj):GText.mark)methodas_source_mark=objvalobj=objinheritsource_mark_propsmethodnext?category()=may_map(funm->newsource_markm)(SourceMark.nextobjcategory)methodprev?category()=may_map(funm->newsource_markm)(SourceMark.prevobjcategory)endletsource_mark?category()=newsource_mark(SourceMark.create?category[])(** {2 GtkSourceMarkAttributes} *)classsource_mark_attributes(obj:GtkSourceView3_types.source_mark_attributesobj)=object(self)methodas_source_mark_attributes=objvalobj=objinheritsource_mark_attributes_propsendletsource_mark_attributes()=letobj=SourceMarkAttributes.create[]innewsource_mark_attributesobj(** {2 GtkSourceUndoManager} *)classsource_undo_manager_signalsobj'=object(self)inherit['a]gobject_signals(obj':[>GtkSourceView3_types.source_undo_manager]obj)inheritsource_undo_manager_sigsendclasssource_undo_manager(obj:GtkSourceView3_types.source_undo_managerobj)=objectvalobj=objinheritsource_undo_manager_propsmethodas_source_undo_manager=objmethodconnect=newsource_undo_manager_signalsobjendclasstypecustom_undo_manager=objectmethodcan_undo:boolmethodcan_redo:boolmethodundo:unit->unitmethodredo:unit->unitmethodbegin_not_undoable_action:unit->unitmethodend_not_undoable_action:unit->unitmethodcan_undo_changed:unit->unitmethodcan_redo_changed:unit->unitendletsource_undo_manager(manager:custom_undo_manager):source_undo_manager=letundo_manager={SourceUndoManager.can_undo=(fun()->manager#can_undo);can_redo=(fun()->manager#can_redo);undo=manager#undo;redo=manager#redo;begin_not_undoable_action=manager#begin_not_undoable_action;end_not_undoable_action=manager#end_not_undoable_action;can_undo_changed=manager#can_undo_changed;can_redo_changed=manager#can_redo_changed;}inletobj=SourceUndoManager.new_undo_managerinnewsource_undo_managerobj(** {2 GtkSourceBuffer} *)classsource_buffer_signalsobj'=objectinherit['a]gobject_signals(obj':[>GtkSourceView3_types.source_buffer]obj)inheritGText.buffer_signals_skelinheritsource_buffer_sigsendandsource_buffer(_obj:GtkSourceView3_types.source_bufferobj)=object(self)inheritGText.buffer_skel_objastext_buffervalobj=_objmethodprivateobj=_objinheritsource_buffer_propsmethodas_source_buffer=objmethodconnect=newsource_buffer_signalsobjmethodmisc=newgobject_opsobjmethodlanguage=may_map(newsource_language)(getSourceBuffer.P.languageobj)methodset_language(l:source_languageoption)=setSourceBuffer.P.languageobj(may_map(funl->l#as_source_language)l)methodstyle_scheme=may_map(newsource_style_scheme)(getSourceBuffer.P.style_schemeobj)methodset_style_scheme(s:source_style_schemeoption)=matchswithNone->()|Somescheme->setSourceBuffer.P.style_schemeobj(Somescheme#as_source_style_scheme)methodundo()=SourceBuffer.undoobjmethodredo()=SourceBuffer.redoobjmethodbegin_not_undoable_action()=SourceBuffer.begin_not_undoable_actionobjmethodend_not_undoable_action()=SourceBuffer.end_not_undoable_actionobjmethodcreate_source_mark?name?category(iter:GText.iter)=newsource_mark(SourceBuffer.create_source_markobjnamecategoryiter#as_iter)methodsource_marks_at_line?categoryline=List.map(funmark->newsource_markmark)(SourceBuffer.get_source_marks_at_lineobjlinecategory)methodsource_marks_at_iter?category(iter:GText.iter)=List.map(funmark->newsource_markmark)(SourceBuffer.get_source_marks_at_iterobjiter#as_itercategory)methodremove_source_marks?category~(start:GText.iter)~(stop:GText.iter)()=SourceBuffer.remove_source_marksobjstart#as_iterstop#as_itercategorymethodforward_iter_to_source_mark?category(iter:GText.iter)=SourceBuffer.forward_iter_to_source_markobjiter#as_itercategorymethodbackward_iter_to_source_mark?category(iter:GText.iter)=SourceBuffer.backward_iter_to_source_markobjiter#as_itercategorymethoditer_has_context_class(iter:GText.iter)context_class=SourceBuffer.iter_has_context_classobjiter#as_itercontext_classmethoditer_forward_to_context_class_toggle(iter:GText.iter)context_class=SourceBuffer.iter_forward_to_context_class_toggleobjiter#as_itercontext_classmethoditer_backward_to_context_class_toggle(iter:GText.iter)context_class=SourceBuffer.iter_backward_to_context_class_toggleobjiter#as_itercontext_classmethodensure_highlight~(start:GText.iter)~(stop:GText.iter)=SourceBuffer.ensure_highlightobjstart#as_iterstop#as_itermethodset_undo_manager(manager:source_undo_manager)=letmanager=manager#as_source_undo_managerinGobject.setSourceBuffer.P.undo_managerobjmanagermethodundo_manager=letmanager=Gobject.getSourceBuffer.P.undo_managerobjinnewsource_undo_managermanagerendletsource_buffer?(language:source_languageoption)?(style_scheme:source_style_schemeoption)?(tag_table:GText.tag_tableoption)?text?(undo_manager:source_undo_manageroption)=letlanguage=matchlanguagewith|None->None|Somesource_language->Some(source_language#as_source_language)inletstyle_scheme=matchstyle_schemewith|None->None|Someschm->Some(schm#as_source_style_scheme)inletundo_manager=matchundo_managerwith|None->None|Somemanager->Some(manager#as_source_undo_manager)inSourceBuffer.make_params[]?language?style_scheme?undo_manager~cont:(funpl()->letbuf=matchtag_tablewithNone->newsource_buffer(SourceBuffer.createpl)|Somett->letobj=SourceBuffer.new_tt#as_tag_tableinGobject.set_params(Gobject.try_castobj"GtkSourceBuffer")pl;newsource_bufferobjin(matchtextwith|None->()|Sometext->buf#set_texttext);buf)(** {2 GtkSourceView} *)classsource_view_signalsobj'=objectinheritwidget_signals_impl(obj':[>GtkSourceView3_types.source_view]obj)inheritGText.view_signalsobj'inheritsource_view_sigsendclasssource_view(obj':GtkSourceView3_types.source_viewobj)=object(self)inheritGText.view_skelobj'inheritsource_view_propsvalsource_buf=letbuf_obj=Gobject.try_cast(GtkText.View.get_bufferobj')"GtkSourceBuffer"innewsource_bufferbuf_objmethodsource_buffer=source_bufmethodconnect=newsource_view_signalsobj'methodset_cursor_color=SourceView.set_cursor_colorobj(* method set_cursor_color_by_name s = SourceView.set_cursor_color obj (color_of_string s)*)methoddraw_spaces=SourceView.get_draw_spacesobjmethodset_draw_spacesflags=SourceView.set_draw_spacesobjflagsmethodcompletion=newsource_completion(SourceView.get_completionobj)methodset_mark_attributes~category(attrs:source_mark_attributes)priority=SourceView.set_mark_attributesobj~categoryattrs#as_source_mark_attributesprioritymethodget_mark_attributes~category=matchSourceView.get_mark_attributesobjcategorywith|Someobj->Some(newsource_mark_attributesobj)|None->Nonemethodget_mark_priority~category=SourceView.get_mark_priorityobjcategoryendletsource_view?source_buffer?draw_spaces=SourceView.make_params[]~cont:(GtkText.View.make_params~cont:(GContainer.pack_container~create:(funpl->letobj=matchsource_bufferwith|Somebuf->SourceView.new_with_buffer(Gobject.try_castbuf#as_buffer"GtkSourceBuffer")|None->SourceView.new_()inGobject.set_params(Gobject.try_castobj"GtkSourceView")pl;may(SourceView.set_draw_spacesobj)draw_spaces;newsource_viewobj)))(** {2 Misc} *)(*
let iter_forward_search (iter:GText.iter) flags
~start ~stop ?limit str =
let limit = map_opt (fun x -> x#as_iter) limit in
match SourceViewMisc.iter_forward_search iter#as_iter str
flags ~start: start#as_iter ~stop: stop#as_iter limit
with
None -> None
| Some (it1,it2) -> Some (new GText.iter it1, new GText.iter it2)
let iter_backward_search (iter:GText.iter) flags
~start ~stop ?limit str =
let limit = map_opt (fun x -> x#as_iter) limit in
match SourceViewMisc.iter_backward_search iter#as_iter str
flags ~start: start#as_iter ~stop: stop#as_iter limit
with
None -> None
| Some (it1,it2) -> Some (new GText.iter it1, new GText.iter it2)
*)