package Ġorg . gui V ista . gui . text Ċ Ċ import Ġg lib 2 .* Ċ import Ġgtk 3 .* Ċ import Ġkotlinx . c interop . C Function Ċ import Ġkotlinx . c interop . CP o inter Ċ import Ġkotlinx . c interop . to K String Ċ import Ġorg . gui V ista . core . Object Base Ċ import Ġorg . gui V ista . core . connect G Signal Ċ import Ġorg . gui V ista . core . disconnect G Signal Ċ Ċ public Ġactual Ġclass ĠText Buffer ( text Buffer Ptr : ĠC Pointer < Gtk Text Buffer >? Ġ= Ġnull ) Ġ: ĠObject Base Ġ{ ĊĠĠĠ Ġpublic Ġval Ġgtk Text Buffer Ptr : ĠC Pointer < Gtk Text Buffer >? Ġ= Ġtext Buffer Ptr Ġ?: Ġgtk _ text _ buffer _ new ( null ) ĊĊĠĠĠ Ġpublic Ġactual Ġvar Ġmodified : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġgtk _ text _ buffer _ get _ modified ( gtk Text Buffer Ptr ) Ġ== ĠTRUE ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġgtk _ text _ buffer _ set _ modified ( gtk Text Buffer Ptr , Ġif Ġ( value ) ĠTRUE Ġelse ĠFALSE ) ĊĊĠĠĠ Ġpublic Ġactual Ġval Ġhas Selection : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġgtk _ text _ buffer _ get _ has _ selection ( gtk Text Buffer Ptr ) Ġ== ĠTRUE ĊĊĠĠĠ Ġpublic Ġactual Ġval Ġline Count : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġgtk _ text _ buffer _ get _ line _ count ( gtk Text Buffer Ptr ) ĊĊĠĠĠ Ġpublic Ġactual Ġval Ġchar Count : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġgtk _ text _ buffer _ get _ char _ count ( gtk Text Buffer Ptr ) ĊĊĠĠĠ Ġpublic Ġactual Ġin fix Ġfun Ġinsert At Cursor ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgtk _ text _ buffer _ insert _ at _ cursor ( buffer Ġ= Ġgtk Text Buffer Ptr , Ġtext Ġ= Ġtext , Ġlen Ġ= Ġ- 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġinsert Interactive At Cursor ( text : ĠString , Ġdefault Editable : ĠBoolean ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġgtk _ text _ buffer _ insert _ interactive _ at _ cursor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer Ġ= Ġgtk Text Buffer Ptr , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġtext , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlen Ġ= Ġ- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault _ editable Ġ= Ġif Ġ( default Editable ) ĠTRUE Ġelse ĠFALSE ĊĠĠĠĠĠĠĠ Ġ) Ġ== ĠTRUE ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġchange Text ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgtk _ text _ buffer _ set _ text ( buffer Ġ= Ġgtk Text Buffer Ptr , Ġtext Ġ= Ġtext , Ġlen Ġ= Ġ- 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġfetch Text ( ĊĠĠĠĠĠĠĠ Ġstart : ĠText Buffer Iterator , ĊĠĠĠĠĠĠĠ Ġend : ĠText Buffer Iterator , ĊĠĠĠĠĠĠĠ Ġinclude Hidden Chars : ĠBoolean ĊĠĠĠ Ġ): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġgtk _ text _ buffer _ get _ text ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer Ġ= Ġgtk Text Buffer Ptr , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġstart . gtk Text Iter Ptr , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġend . gtk Text Iter Ptr , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinclude _ hidden _ chars Ġ= Ġif Ġ( include Hidden Chars ) ĠTRUE Ġelse ĠFALSE ĊĠĠĠĠĠĠĠ Ġ) ?. to K String () Ġ?: Ġ"" ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġdelete Selection ( interactive : ĠBoolean , Ġdefault Editable : ĠBoolean ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġgtk _ text _ buffer _ delete _ selection ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer Ġ= Ġgtk Text Buffer Ptr , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinteractive Ġ= Ġif Ġ( interactive ) ĠTRUE Ġelse ĠFALSE , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault _ editable Ġ= Ġif Ġ( default Editable ) ĠTRUE Ġelse ĠFALSE ĊĠĠĠĠĠĠĠ Ġ) Ġ== ĠTRUE ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġbegin User Action () Ġ{ ĊĠĠĠĠĠĠĠ Ġgtk _ text _ buffer _ begin _ user _ action ( gtk Text Buffer Ptr ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġend User Action () Ġ{ ĊĠĠĠĠĠĠĠ Ġgtk _ text _ buffer _ end _ user _ action ( gtk Text Buffer Ptr ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠ Ġg _ object _ unref ( gtk Text Buffer Ptr ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġinsert ( iterator : ĠText Buffer Iterator , Ġtext : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgtk _ text _ buffer _ insert ( buffer Ġ= Ġgtk Text Buffer Ptr , Ġiter Ġ= Ġiterator . gtk Text Iter Ptr , Ġtext Ġ= Ġtext , Ġlen Ġ= Ġ- 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġinsert Interactive ( ĊĠĠĠĠĠĠĠ Ġiterator : ĠText Buffer Iterator , ĊĠĠĠĠĠĠĠ Ġtext : ĠString , ĊĠĠĠĠĠĠĠ Ġdefault Editable : ĠBoolean ĊĠĠĠ Ġ): ĠBoolean Ġ= Ġgtk _ text _ buffer _ insert _ interactive ( ĊĠĠĠĠĠĠĠ Ġbuffer Ġ= Ġgtk Text Buffer Ptr , ĊĠĠĠĠĠĠĠ Ġiter Ġ= Ġiterator . gtk Text Iter Ptr , ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġtext , ĊĠĠĠĠĠĠĠ Ġdefault _ editable Ġ= Ġif Ġ( default Editable ) ĠTRUE Ġelse ĠFALSE , ĊĠĠĠĠĠĠĠ Ġlen Ġ= Ġ- 1 ĊĠĠĠ Ġ) Ġ== ĠTRUE ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġinsert Range ( iterator : ĠText Buffer Iterator , Ġstart : ĠText Buffer Iterator , Ġend : ĠText Buffer Iterator ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgtk _ text _ buffer _ insert _ range ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer Ġ= Ġgtk Text Buffer Ptr , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiter Ġ= Ġiterator . gtk Text Iter Ptr , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġstart . gtk Text Iter Ptr , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġend . gtk Text Iter Ptr ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġinsert Range Interactive ( ĊĠĠĠĠĠĠĠ Ġiterator : ĠText Buffer Iterator , ĊĠĠĠĠĠĠĠ Ġstart : ĠText Buffer Iterator , ĊĠĠĠĠĠĠĠ Ġend : ĠText Buffer Iterator , ĊĠĠĠĠĠĠĠ Ġdefault Editable : ĠBoolean ĊĠĠĠ Ġ): ĠBoolean Ġ= Ġgtk _ text _ buffer _ insert _ range _ interactive ( ĊĠĠĠĠĠĠĠ Ġbuffer Ġ= Ġgtk Text Buffer Ptr , ĊĠĠĠĠĠĠĠ Ġiter Ġ= Ġiterator . gtk Text Iter Ptr , ĊĠĠĠĠĠĠĠ Ġstart Ġ= Ġstart . gtk Text Iter Ptr , ĊĠĠĠĠĠĠĠ Ġend Ġ= Ġend . gtk Text Iter Ptr , ĊĠĠĠĠĠĠĠ Ġdefault _ editable Ġ= Ġif Ġ( default Editable ) ĠTRUE Ġelse ĠFALSE ĊĠĠĠ Ġ) Ġ== ĠTRUE ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġinsert Markup ( iterator : ĠText Buffer Iterator , Ġmarkup : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgtk _ text _ buffer _ insert _ markup ( buffer Ġ= Ġgtk Text Buffer Ptr , Ġiter Ġ= Ġiterator . gtk Text Iter Ptr , Ġmarkup Ġ= Ġmarkup , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlen Ġ= Ġ- 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġdelete ( start : ĠText Buffer Iterator , Ġend : ĠText Buffer Iterator ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgtk _ text _ buffer _ delete ( buffer Ġ= Ġgtk Text Buffer Ptr , Ġstart Ġ= Ġstart . gtk Text Iter Ptr , Ġend Ġ= Ġend . gtk Text Iter Ptr ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġdelete Interactive ( ĊĠĠĠĠĠĠĠ Ġstart : ĠText Buffer Iterator , ĊĠĠĠĠĠĠĠ Ġend : ĠText Buffer Iterator , ĊĠĠĠĠĠĠĠ Ġdefault Editable : ĠBoolean ĊĠĠĠ Ġ): ĠBoolean Ġ= Ġgtk _ text _ buffer _ delete _ interactive ( ĊĠĠĠĠĠĠĠ Ġbuffer Ġ= Ġgtk Text Buffer Ptr , ĊĠĠĠĠĠĠĠ Ġstart _ iter Ġ= Ġstart . gtk Text Iter Ptr , ĊĠĠĠĠĠĠĠ Ġend _ iter Ġ= Ġend . gtk Text Iter Ptr , ĊĠĠĠĠĠĠĠ Ġdefault _ editable Ġ= Ġif Ġ( default Editable ) ĠTRUE Ġelse ĠFALSE ĊĠĠĠ Ġ) Ġ== ĠTRUE ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġback space ( ĊĠĠĠĠĠĠĠ Ġiterator : ĠText Buffer Iterator , ĊĠĠĠĠĠĠĠ Ġinteractive : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġdefault Editable : ĠBoolean ĊĠĠĠ Ġ): ĠBoolean Ġ= Ġgtk _ text _ buffer _ back space ( ĊĠĠĠĠĠĠĠ Ġbuffer Ġ= Ġgtk Text Buffer Ptr , ĊĠĠĠĠĠĠĠ Ġiter Ġ= Ġiterator . gtk Text Iter Ptr , ĊĠĠĠĠĠĠĠ Ġinteractive Ġ= Ġif Ġ( interactive ) ĠTRUE Ġelse ĠFALSE , ĊĠĠĠĠĠĠĠ Ġdefault _ editable Ġ= Ġif Ġ( default Editable ) ĠTRUE Ġelse ĠFALSE ĊĠĠĠ Ġ) Ġ== ĠTRUE ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġfetch Slice ( ĊĠĠĠĠĠĠĠ Ġstart : ĠText Buffer Iterator , ĊĠĠĠĠĠĠĠ Ġend : ĠText Buffer Iterator , ĊĠĠĠĠĠĠĠ Ġinclude Hidden Chars : ĠBoolean ĊĠĠĠ Ġ): ĠString Ġ= Ġgtk _ text _ buffer _ get _ slice ( ĊĠĠĠĠĠĠĠ Ġbuffer Ġ= Ġgtk Text Buffer Ptr , ĊĠĠĠĠĠĠĠ Ġstart Ġ= Ġstart . gtk Text Iter Ptr , ĊĠĠĠĠĠĠĠ Ġend Ġ= Ġend . gtk Text Iter Ptr , ĊĠĠĠĠĠĠĠ Ġinclude _ hidden _ chars Ġ= Ġif Ġ( include Hidden Chars ) ĠTRUE Ġelse ĠFALSE ĊĠĠĠ Ġ) ?. to K String () Ġ?: Ġ"" ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġplace Cursor ( where : ĠText Buffer Iterator ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgtk _ text _ buffer _ place _ cursor ( gtk Text Buffer Ptr , Ġwhere . gtk Text Iter Ptr ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġselect Range ( insert : ĠText Buffer Iterator , Ġbound : ĠText Buffer Iterator ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgtk _ text _ buffer _ select _ range ( buffer Ġ= Ġgtk Text Buffer Ptr , Ġins Ġ= Ġinsert . gtk Text Iter Ptr , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbound Ġ= Ġbound . gtk Text Iter Ptr ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġfetch Iterator At Line Offset ( iterator : ĠText Buffer Iterator , Ġline Num : ĠInt , Ġchar Offset : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgtk _ text _ buffer _ get _ iter _ at _ line _ offset ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer Ġ= Ġgtk Text Buffer Ptr , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiter Ġ= Ġiterator . gtk Text Iter Ptr , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġline _ number Ġ= Ġline Num , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchar _ offset Ġ= Ġchar Offset ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġfetch Iterator At Offset ( iterator : ĠText Buffer Iterator , Ġchar Offset : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgtk _ text _ buffer _ get _ iter _ at _ offset ( buffer Ġ= Ġgtk Text Buffer Ptr , Ġiter Ġ= Ġiterator . gtk Text Iter Ptr , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchar _ offset Ġ= Ġchar Offset ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġfetch Iterator At Line ( iterator : ĠText Buffer Iterator , Ġline Num : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgtk _ text _ buffer _ get _ iter _ at _ line ( buffer Ġ= Ġgtk Text Buffer Ptr , Ġiter Ġ= Ġiterator . gtk Text Iter Ptr , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġline _ number Ġ= Ġline Num ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġfetch Iterator At Line Index ( iterator : ĠText Buffer Iterator , Ġline Num : ĠInt , Ġbyte Index : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgtk _ text _ buffer _ get _ iter _ at _ line _ index ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer Ġ= Ġgtk Text Buffer Ptr , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiter Ġ= Ġiterator . gtk Text Iter Ptr , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġline _ number Ġ= Ġline Num , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbyte _ index Ġ= Ġbyte Index ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġfetch Start Iterator ( iterator : ĠText Buffer Iterator ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgtk _ text _ buffer _ get _ start _ iter ( gtk Text Buffer Ptr , Ġiterator . gtk Text Iter Ptr ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġfetch End Iterator ( iterator : ĠText Buffer Iterator ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgtk _ text _ buffer _ get _ end _ iter ( gtk Text Buffer Ptr , Ġiterator . gtk Text Iter Ptr ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġfetch Bounds ( start : ĠText Buffer Iterator , Ġend : ĠText Buffer Iterator ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgtk _ text _ buffer _ get _ bounds ( buffer Ġ= Ġgtk Text Buffer Ptr , Ġstart Ġ= Ġstart . gtk Text Iter Ptr , Ġend Ġ= Ġend . gtk Text Iter Ptr ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġactual Ġfun Ġfetch Selection Bounds ( ĊĠĠĠĠĠĠĠ Ġstart : ĠText Buffer Iterator ?, ĊĠĠĠĠĠĠĠ Ġend : ĠText Buffer Iterator ? ĊĠĠĠ Ġ): ĠBoolean Ġ= Ġgtk _ text _ buffer _ get _ selection _ bounds ( ĊĠĠĠĠĠĠĠ Ġbuffer Ġ= Ġgtk Text Buffer Ptr , ĊĠĠĠĠĠĠĠ Ġstart Ġ= Ġstart ?. gtk Text Iter Ptr , ĊĠĠĠĠĠĠĠ Ġend Ġ= Ġend ?. gtk Text Iter Ptr ĊĠĠĠ Ġ) Ġ== ĠTRUE ĊĊĠĠĠ Ġoverride Ġfun Ġdisconnect Signal ( handler Id : ĠU Long ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . disconnect Signal ( handler Id ) ĊĠĠĠĠĠĠĠ Ġdisconnect G Signal ( gtk Text Buffer Ptr , Ġhandler Id . to UInt ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConnect s Ġthe Ġ* begin - user - action * Ġevent Ġto Ġa Ġ[ handler ] Ġon Ġa Ġ[ Text Buffer ]. ĠThis Ġevent Ġis Ġtriggered Ġwhen Ġthe ĊĠĠĠĠ Ġ* Ġbeginning Ġof Ġa Ġsingle Ġuser - visible Ġoperation Ġhas Ġoccurred Ġon Ġa Ġ[ Text Buffer ]. ĊĠĠĠĠ Ġ* Ġ@ param Ġhandler ĠThe Ġevent Ġhandler Ġfor Ġthe Ġevent . ĊĠĠĠĠ Ġ* Ġ@ param ĠuserData ĠUser Ġdata Ġto Ġpass Ġthrough Ġto Ġthe Ġ[ handler ]. ĊĠĠĠĠ Ġ* Ġ@ see Ġbegin User Action ĊĠĠĠĠ Ġ* Ġ@ see Ġinsert Interactive ĊĠĠĠĠ Ġ* Ġ@ see Ġinsert Range Interactive ĊĠĠĠĠ Ġ* Ġ@ see Ġdelete Interactive ĊĠĠĠĠ Ġ* Ġ@ see Ġback space ĊĠĠĠĠ Ġ* Ġ@ see Ġdelete Selection ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġconnect Begin User ActionEvent ( handler : ĠC Pointer < Begin User Action Handler >, ĠuserData : Ġg pointer ): ĠU Long Ġ= ĊĠĠĠĠĠĠĠ Ġconnect G Signal ( obj Ġ= Ġgtk Text Buffer Ptr , Ġsignal Ġ= ĠText Buffer Event . begin User Action , Ġslot Ġ= Ġhandler , Ġdata Ġ= ĠuserData ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to UL ong () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConnect s Ġthe Ġ* end - user - action * Ġevent Ġto Ġa Ġ[ handler ] Ġon Ġa Ġ[ Text Buffer ]. ĠThis Ġevent Ġis Ġtriggered Ġwhen Ġthe ĊĠĠĠĠ Ġ* Ġend Ġof Ġa Ġsingle Ġuser - visible Ġoperation Ġhas Ġoccurred Ġon Ġa Ġ[ Text Buffer ]. ĊĠĠĠĠ Ġ* Ġ@ param Ġhandler ĠThe Ġevent Ġhandler Ġfor Ġthe Ġevent . ĊĠĠĠĠ Ġ* Ġ@ param ĠuserData ĠUser Ġdata Ġto Ġpass Ġthrough Ġto Ġthe Ġ[ handler ]. ĊĠĠĠĠ Ġ* Ġ@ see Ġend User Action ĊĠĠĠĠ Ġ* Ġ@ see Ġinsert Interactive ĊĠĠĠĠ Ġ* Ġ@ see Ġinsert Range Interactive ĊĠĠĠĠ Ġ* Ġ@ see Ġdelete Interactive ĊĠĠĠĠ Ġ* Ġ@ see Ġback space ĊĠĠĠĠ Ġ* Ġ@ see Ġdelete Selection ĊĠĠĠĠ Ġ* Ġ@ see Ġback space ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġconnect End User ActionEvent ( handler : ĠC Pointer < End User Action Handler >, ĠuserData : Ġg pointer ): ĠU Long Ġ= ĊĠĠĠĠĠĠĠ Ġconnect G Signal ( obj Ġ= Ġgtk Text Buffer Ptr , Ġsignal Ġ= ĠText Buffer Event . end User Action , Ġslot Ġ= Ġhandler , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= ĠuserData ). to UL ong () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConnect s Ġthe Ġ* changed * Ġevent Ġto Ġa Ġ[ handler ] Ġon Ġa Ġ[ Text Buffer ]. ĠThis Ġevent Ġis Ġtriggered Ġwhen Ġthe Ġcontent Ġof Ġa ĊĠĠĠĠ Ġ* Ġ[ Text Buffer ] Ġhas Ġchanged . ĊĠĠĠĠ Ġ* Ġ@ param Ġhandler ĠThe Ġevent Ġhandler Ġfor Ġthe Ġevent . ĊĠĠĠĠ Ġ* Ġ@ param ĠuserData ĠUser Ġdata Ġto Ġpass Ġthrough Ġto Ġthe Ġ[ handler ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġconnect Changed Event ( handler : ĠC Pointer < Changed Handler >, ĠuserData : Ġg pointer ): ĠU Long Ġ= ĊĠĠĠĠĠĠĠ Ġconnect G Signal ( obj Ġ= Ġgtk Text Buffer Ptr , Ġsignal Ġ= ĠText Buffer Event . changed , Ġslot Ġ= Ġhandler , Ġdata Ġ= ĠuserData ). to UL ong () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConnect s Ġthe Ġ* modified - changed * Ġevent Ġto Ġa Ġ[ handler ] Ġon Ġa Ġ[ Text Buffer ]. ĠThis Ġevent Ġis Ġtriggered Ġwhen Ġthe Ġmodified ĊĠĠĠĠ Ġ* Ġbit Ġof Ġa Ġ[ Text Buffer ] Ġf lips . ĊĠĠĠĠ Ġ* Ġ@ param Ġhandler ĠThe Ġevent Ġhandler Ġfor Ġthe Ġevent . ĊĠĠĠĠ Ġ* Ġ@ param ĠuserData ĠUser Ġdata Ġto Ġpass Ġthrough Ġto Ġthe Ġ[ handler ]. ĊĠĠĠĠ Ġ* Ġ@ see Ġmodified ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġconnect Modified Changed Event ( handler : ĠC Pointer < Modified Changed Handler >, ĠuserData : Ġg pointer ): ĠU Long Ġ= ĊĠĠĠĠĠĠĠ Ġconnect G Signal ( obj Ġ= Ġgtk Text Buffer Ptr , Ġsignal Ġ= ĠText Buffer Event . modified Changed , Ġslot Ġ= Ġhandler , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= ĠuserData ). to UL ong () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConnect s Ġthe Ġ* delete - range * Ġevent Ġto Ġa Ġ[ handler ] Ġon Ġa Ġ[ Text Buffer ]. ĠThis Ġevent Ġis Ġtriggered Ġwhen Ġa Ġrange d Ġis ĊĠĠĠĠ Ġ* Ġdeleted Ġfrom Ġa Ġ[ Text Buffer ]. ĠNote Ġthat Ġif Ġyour Ġhandler Ġruns Ġbefore Ġthe Ġdefault Ġhandler Ġit Ġmust Ġ** NOT ** ĊĠĠĠĠ Ġ* Ġinvalidate Ġthe Ġstart Ġand Ġend Ġiterators Ġ( or Ġhas Ġto Ġre validate Ġthem ). ĠThe Ġdefault Ġevent Ġhandler Ġre valid ates Ġthe ĊĠĠĠĠ Ġ* Ġstart , Ġand Ġend Ġiterators Ġto Ġboth Ġpoint Ġto Ġthe Ġlocation Ġwhere Ġtext Ġwas Ġdeleted . ĠHand lers Ġwhich Ġrun Ġafter Ġthe ĊĠĠĠĠ Ġ* Ġdefault Ġhandler Ġ( see Ġ` g _ signal _ connect _ after () `) Ġdo Ġnot Ġhave Ġaccess Ġto Ġthe Ġdeleted Ġtext . ĊĠĠĠĠ Ġ* Ġ@ param Ġhandler ĠThe Ġevent Ġhandler Ġfor Ġthe Ġevent . ĊĠĠĠĠ Ġ* Ġ@ param ĠuserData ĠUser Ġdata Ġto Ġpass Ġthrough Ġto Ġthe Ġ[ handler ]. ĊĠĠĠĠ Ġ* Ġ@ see Ġdelete ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġconnect Delete Range Event ( handler : ĠC Pointer < Delete Range Handler >, ĠuserData : Ġg pointer ): ĠU Long Ġ= ĊĠĠĠĠĠĠĠ Ġconnect G Signal ( obj Ġ= Ġgtk Text Buffer Ptr , Ġsignal Ġ= ĠText Buffer Event . delete Range , Ġslot Ġ= Ġhandler , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= ĠuserData ). to UL ong () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConnect s Ġthe Ġ* insert - text * Ġevent Ġto Ġa Ġ[ handler ] Ġon Ġa Ġ[ Text Buffer ]. ĠThis Ġevent Ġis Ġtriggered Ġwhen Ġinserting Ġtext Ġin ĊĠĠĠĠ Ġ* Ġa Ġ[ Text Buffer ]. ĠInsert ion Ġactually Ġoccurs Ġin Ġthe Ġdefault Ġhandler . ĠNote Ġthat Ġif Ġyour Ġhandler Ġruns Ġbefore Ġthe ĊĠĠĠĠ Ġ* Ġdefault Ġhandler Ġit Ġmust Ġ** NOT ** Ġinvalidate Ġthe Ġlocation Ġiterator Ġ( or Ġhas Ġto Ġre validate Ġit ). ĠThe Ġdefault Ġevent ĊĠĠĠĠ Ġ* Ġhandler Ġre valid ates Ġit Ġto Ġpoint Ġto Ġthe Ġend Ġof Ġthe Ġinserted Ġtext . ĊĠĠĠĠ Ġ* Ġ@ param Ġhandler ĠThe Ġevent Ġhandler Ġfor Ġthe Ġevent . ĊĠĠĠĠ Ġ* Ġ@ param ĠuserData ĠUser Ġdata Ġto Ġpass Ġthrough Ġto Ġthe Ġ[ handler ]. ĊĠĠĠĠ Ġ* Ġ@ see Ġinsert ĊĠĠĠĠ Ġ* Ġ@ see Ġinsert Range ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġconnect Insert Text Event ( handler : ĠC Pointer < Insert Text Handler >, ĠuserData : Ġg pointer ): ĠU Long Ġ= ĊĠĠĠĠĠĠĠ Ġconnect G Signal ( obj Ġ= Ġgtk Text Buffer Ptr , Ġsignal Ġ= ĠText Buffer Event . insert Text , Ġslot Ġ= Ġhandler , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= ĠuserData ). to UL ong () Ċ } Ċ Ċ public Ġfun Ġtext Buffer ( text Buffer Ptr : ĠC Pointer < Gtk Text Buffer >? Ġ= Ġnull , Ġinit : ĠText Buffer . () Ġ-> ĠUnit Ġ= Ġ{} ): ĠText Buffer Ġ{ ĊĠĠĠ Ġval Ġtext Buffer Ġ= ĠText Buffer ( text Buffer Ptr ) ĊĠĠĠ Ġtext Buffer . init () ĊĠĠĠ Ġreturn Ġtext Buffer Ċ } Ċ Ċ /** Ċ Ġ* ĠThe Ġevent Ġhandler Ġfor Ġthe Ġ* begin - user - action * Ġevent . ĠArguments : Ċ Ġ* Ġ 1 . Ġtext Buffer : ĠC Pointer < Gtk Text Buffer > Ċ Ġ* Ġ 2 . ĠuserData : Ġg pointer Ċ Ġ*/ Ċ public Ġtype alias ĠBegin User Action Handler Ġ= ĠC Function <( text Buffer : ĠC Pointer < Gtk Text Buffer >, ĠuserData : Ġg pointer ) Ġ-> ĠUnit > Ċ Ċ /** Ċ Ġ* ĠThe Ġevent Ġhandler Ġfor Ġthe Ġ* end - user - action * Ġevent . ĠArguments : Ċ Ġ* Ġ 1 . Ġtext Buffer : ĠC Pointer < Gtk Text Buffer > Ċ Ġ* Ġ 2 . ĠuserData : Ġg pointer Ċ Ġ*/ Ċ public Ġtype alias ĠEnd User Action Handler Ġ= ĠC Function <( text Buffer : ĠC Pointer < Gtk Text Buffer >, ĠuserData : Ġg pointer ) Ġ-> ĠUnit > Ċ Ċ /** Ċ Ġ* ĠThe Ġevent Ġhandler Ġfor Ġthe Ġ* changed * Ġevent . ĠArguments : Ċ Ġ* Ġ 1 . Ġtext Buffer : ĠC Pointer < Gtk Text Buffer > Ċ Ġ* Ġ 2 . ĠuserData : Ġg pointer Ċ Ġ*/ Ċ public Ġtype alias ĠChanged Handler Ġ= ĠC Function <( text Buffer : ĠC Pointer < Gtk Text Buffer >, ĠuserData : Ġg pointer ) Ġ-> ĠUnit > Ċ Ċ /** Ċ Ġ* ĠThe Ġevent Ġhandler Ġfor Ġthe Ġ* modified - changed * Ġevent . ĠArguments : Ċ Ġ* Ġ 1 . Ġtext Buffer : ĠC Pointer < Gtk Text Buffer > Ċ Ġ* Ġ 2 . ĠuserData : Ġg pointer Ċ Ġ*/ Ċ public Ġtype alias ĠModified Changed Handler Ġ= ĠC Function <( text Buffer : ĠC Pointer < Gtk Text Buffer >, ĠuserData : Ġg pointer ) Ġ-> ĠUnit > Ċ Ċ /** Ċ Ġ* ĠThe Ġevent Ġhandler Ġfor Ġthe Ġ* delete - range * Ġevent . ĠArguments : Ċ Ġ* Ġ 1 . Ġtext Buffer : ĠC Pointer < Gtk Text Buffer > Ċ Ġ* Ġ 2 . Ġstart : ĠC Pointer < Gtk Text Iter > Ċ Ġ* Ġ 3 . Ġend : ĠC Pointer < Gtk Text Iter > Ċ Ġ* Ġ 4 . ĠuserData : Ġg pointer Ċ Ġ*/ Ċ public Ġtype alias ĠDelete Range Handler Ġ= ĠC Function <( ĊĠĠĠ Ġtext Buffer : ĠC Pointer < Gtk Text Buffer >, ĊĠĠĠ Ġstart : ĠC Pointer < Gtk Text Iter >, ĊĠĠĠ Ġend : ĠC Pointer < Gtk Text Iter >, ĊĠĠĠ ĠuserData : Ġg pointer Ċ ) Ġ-> ĠUnit > Ċ Ċ /** Ċ Ġ* ĠThe Ġevent Ġhandler Ġfor Ġthe Ġ* insert - text * Ġevent . ĠArguments : Ċ Ġ* Ġ 1 . Ġtext Buffer : ĠC Pointer < Gtk Text Buffer > Ċ Ġ* Ġ 2 . Ġlocation : ĠC Pointer < Gtk Text Iter > Ċ Ġ* Ġ 2 . Ġtext : Ġgchar Ċ Ġ* Ġ 2 . Ġlen : ĠInt Ċ Ġ* Ġ 2 . ĠuserData : Ġg pointer Ċ Ġ*/ Ċ public Ġtype alias ĠInsert Text Handler Ġ= ĠC Function <( ĊĠĠĠ Ġtext Buffer : ĠC Pointer < Gtk Text Buffer >, ĊĠĠĠ Ġlocation : ĠC Pointer < Gtk Text Iter >, ĊĠĠĠ Ġtext : Ġgchar , ĊĠĠĠ Ġlen : ĠInt , ĊĠĠĠ ĠuserData : Ġg pointer Ċ ) Ġ-> ĠUnit > Ċ