summaryrefslogtreecommitdiff
path: root/src/Gtk/Internal.icl
diff options
context:
space:
mode:
authorCamil Staps2019-10-24 10:21:16 +0200
committerCamil Staps2019-10-24 10:21:16 +0200
commit5756df53b06d35707d2af742f71cb81a40c4a032 (patch)
tree98208e4bd37d037641bd2b6515341c12cc12bfbd /src/Gtk/Internal.icl
parentAdd GtkJustification for columns of GtkSheet (diff)
Add setMarkup for GtkTextBuffer
Diffstat (limited to 'src/Gtk/Internal.icl')
-rw-r--r--src/Gtk/Internal.icl47
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
+ }