diff options
Diffstat (limited to 'src/Gtk/Internal.icl')
-rw-r--r-- | src/Gtk/Internal.icl | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/Gtk/Internal.icl b/src/Gtk/Internal.icl index a4a503f..dab7f62 100644 --- a/src/Gtk/Internal.icl +++ b/src/Gtk/Internal.icl @@ -292,11 +292,49 @@ where ccall gtk_style_context_remove_class "ps:V:A" } +gtk_text_buffer_delete :: !Pointer !{#Int} !{#Int} !.a -> .a +gtk_text_buffer_delete buffer start end env = + delete buffer (get_array_pointer start) (get_array_pointer end) env +where + delete :: !Pointer !Pointer !Pointer !.a -> .a + delete _ _ _ _ = code { + ccall gtk_text_buffer_delete "ppp:V:A" + } + +gtk_text_buffer_get_start_iter :: !Pointer !.a -> (!{#Int}, !.a) +gtk_text_buffer_get_start_iter buffer env + # iter = createArray (IF_INT_64_OR_32 10 14) 0 /* large enough to hold GtkTextIter */ + = (iter, get buffer (get_array_pointer iter) env) +where + get :: !Pointer !Pointer !.a -> .a + get _ _ _ = code { + ccall gtk_text_buffer_get_start_iter "pp:V:A" + } + +gtk_text_buffer_get_end_iter :: !Pointer !.a -> (!{#Int}, !.a) +gtk_text_buffer_get_end_iter buffer env + # iter = createArray (IF_INT_64_OR_32 10 14) 0 /* large enough to hold GtkTextIter */ + = (iter, get buffer (get_array_pointer iter) env) +where + get :: !Pointer !Pointer !.a -> .a + get _ _ _ = code { + ccall gtk_text_buffer_get_end_iter "pp:V:A" + } + gtk_text_buffer_insert_at_cursor :: !Pointer !String !Int !.a -> .a gtk_text_buffer_insert_at_cursor buffer string len env = code { ccall gtk_text_buffer_insert_at_cursor "psI:V:A" } +gtk_text_buffer_insert_markup :: !Pointer !{#Int} !String !.a -> .a +gtk_text_buffer_insert_markup buffer iter string env = + insert buffer (get_array_pointer iter) (packString string) (size string) env +where + insert :: !Pointer !Int !String !Int !.a -> .a + insert _ _ _ _ _ = code { + ccall gtk_text_buffer_insert_markup "pIsI:V:A" + } + gtk_text_buffer_set_text :: !Pointer !String !Int !.a -> .a gtk_text_buffer_set_text buffer string len env = code { ccall gtk_text_buffer_set_text "psI:V:A" @@ -384,3 +422,12 @@ gtk_window_set_transient_for :: !Pointer !Pointer !.a -> .a gtk_window_set_transient_for window parent env = code { ccall gtk_window_set_transient_for "pp:V:A" } + +get_array_pointer :: !{#Int} -> Pointer +get_array_pointer arr = get arr + IF_INT_64_OR_32 24 12 +where + get :: !{#Int} -> Pointer + get _ = code { + push_a_b 0 + pop_a 1 + } |