summaryrefslogtreecommitdiff
path: root/src/Gtk/Internal.icl
diff options
context:
space:
mode:
authorCamil Staps2019-10-27 22:45:37 +0100
committerCamil Staps2019-10-27 22:45:37 +0100
commite620065031c106b4098aef3ae0ffb66bf20eb068 (patch)
treea0b74cf823fba07b06277a8b5227843ca837fe23 /src/Gtk/Internal.icl
parentAdd basic support for GtkListStore and GtkTreeView (diff)
Add many functions for action bars, buttons, list stores, tree views, and more
Diffstat (limited to 'src/Gtk/Internal.icl')
-rw-r--r--src/Gtk/Internal.icl112
1 files changed, 107 insertions, 5 deletions
diff --git a/src/Gtk/Internal.icl b/src/Gtk/Internal.icl
index 36ef0c7..f77299e 100644
--- a/src/Gtk/Internal.icl
+++ b/src/Gtk/Internal.icl
@@ -36,6 +36,21 @@ g_timeout_add_seconds interval id env = code {
ccall clean_g_timeout_add_seconds "II:V:A"
}
+gtk_action_bar_new :: !.a -> (!Pointer, !.a)
+gtk_action_bar_new env = code {
+ ccall gtk_action_bar_new ":p:A"
+}
+
+gtk_action_bar_pack_start :: !Pointer !Pointer !.a -> .a
+gtk_action_bar_pack_start bar child env = code {
+ ccall gtk_action_bar_pack_start "pp:V:A"
+}
+
+gtk_action_bar_pack_end :: !Pointer !Pointer !.a -> .a
+gtk_action_bar_pack_end bar child env = code {
+ ccall gtk_action_bar_pack_end "pp:V:A"
+}
+
gtk_box_new :: !Bool !Int !.a -> (!Pointer, !.a)
gtk_box_new vertical spacing env = code {
ccall gtk_box_new "II:p:A"
@@ -51,6 +66,19 @@ gtk_box_pack_end box child expand fill spacing env = code {
ccall gtk_box_pack_end "ppIII:V:A"
}
+gtk_box_set_spacing :: !Pointer !Int !.a -> .a
+gtk_box_set_spacing box spacing env = code {
+ ccall gtk_box_set_spacing "pI:V:A"
+}
+
+gtk_button_new_from_icon_name :: !String !Int !.a -> (!Pointer, !.a)
+gtk_button_new_from_icon_name name size env = new (packString name) size env
+where
+ new :: !String !Int !.a -> (!Pointer, !.a)
+ new _ _ _ = code {
+ ccall gtk_button_new_from_icon_name "sI:p:A"
+ }
+
gtk_cell_renderer_text_new :: !.a -> (!Pointer, !.a)
gtk_cell_renderer_text_new env = code {
ccall gtk_cell_renderer_text_new ":p:A"
@@ -226,6 +254,11 @@ where
ccall gtk_list_store_append "pp:V:A"
}
+gtk_list_store_clear :: !Pointer !.a -> .a
+gtk_list_store_clear store env = code {
+ ccall gtk_list_store_clear "Gp:V:A"
+}
+
gtk_list_store_newv :: !{#Int} !.a -> (!Pointer, !.a)
gtk_list_store_newv types env = newv (size types) (get_array_pointer types) env
where
@@ -240,7 +273,7 @@ gtk_list_store_set_bool store iter col val env =
where
set :: !Pointer !Pointer !Int !Bool !Int !.a -> .a
set _ _ _ _ _ _ = code {
- ccall gtk_list_store_set "ppIII:V:A"
+ ccall gtk_list_store_set "GppIII:V:A"
}
gtk_list_store_set_char :: !Pointer !.{#Int} !Int !Char !.a -> .a
@@ -249,7 +282,7 @@ gtk_list_store_set_char store iter col val env =
where
set :: !Pointer !Pointer !Int !Char !Int !.a -> .a
set _ _ _ _ _ _ = code {
- ccall gtk_list_store_set "ppIII:V:A"
+ ccall gtk_list_store_set "GppIII:V:A"
}
gtk_list_store_set_int :: !Pointer !.{#Int} !Int !Int !.a -> .a
@@ -258,7 +291,7 @@ gtk_list_store_set_int store iter col val env =
where
set :: !Pointer !Pointer !Int !Int !Int !.a -> .a
set _ _ _ _ _ _ = code {
- ccall gtk_list_store_set "ppIII:V:A"
+ ccall gtk_list_store_set "GppIII:V:A"
}
gtk_list_store_set_real :: !Pointer !.{#Int} !Int !Real !.a -> .a
@@ -267,7 +300,7 @@ gtk_list_store_set_real store iter col val env =
where
set :: !Pointer !Pointer !Int !Real !Int !.a -> .a
set _ _ _ _ _ _ = code {
- ccall gtk_list_store_set "ppIRI:V:A"
+ ccall gtk_list_store_set "GppIRI:V:A"
}
gtk_list_store_set_string :: !Pointer !.{#Int} !Int !String !.a -> .a
@@ -276,7 +309,15 @@ gtk_list_store_set_string store iter col val env =
where
set :: !Pointer !Pointer !Int !String !Int !.a -> .a
set _ _ _ _ _ _ = code {
- ccall gtk_list_store_set "ppIsI:V:A"
+ ccall gtk_list_store_set "GppIsI:V:A"
+ }
+
+gtk_list_store_swap :: !Pointer !{#Int} !{#Int} !.a -> .a
+gtk_list_store_swap store a b env = swap store (get_array_pointer a) (get_array_pointer b) env
+where
+ swap :: !Pointer !Pointer !Pointer !.a -> .a
+ swap _ _ _ _ = code {
+ ccall gtk_list_store_swap "Gppp:V:A"
}
gtk_main_iteration :: !.a -> (!Bool, !.a)
@@ -336,6 +377,11 @@ where
ccall gtk_message_dialog_new "pIIIs:p:A"
}
+gtk_orientable_set_orientation :: !Pointer !Bool !.a -> .a
+gtk_orientable_set_orientation orientable orientation env = code {
+ ccall gtk_orientable_set_orientation "pI:V:A"
+}
+
gtk_paned_new :: !Bool !.a -> (!Pointer, !.a)
gtk_paned_new vertical env = code {
ccall gtk_paned_new "I:p:A"
@@ -480,6 +526,47 @@ gtk_text_view_set_wrap_mode text_view mode env = code {
ccall gtk_text_view_set_wrap_mode "pI:V:A"
}
+gtk_tree_model_get_iter_from_string :: !Pointer !String -> (!Bool, !{#Int})
+gtk_tree_model_get_iter_from_string model path
+ # iter = createArray 4 0 // size of GtkTreeIter
+ # ok = get model (get_array_pointer iter) (packString path)
+ = (ok, iter)
+where
+ get :: !Pointer !Pointer !String -> Bool
+ get _ _ _ = code {
+ ccall gtk_tree_model_get_iter_from_string "pps:I"
+ }
+
+gtk_tree_model_get_string_from_iter :: !Pointer !{#Int} -> String
+gtk_tree_model_get_string_from_iter model iter
+ # path = get model (get_array_pointer iter)
+ # (path_string,path) = readP derefString path
+ = g_free path path_string
+where
+ get :: !Pointer !Pointer -> Pointer
+ get _ _ = code {
+ ccall gtk_tree_model_get_string_from_iter "pp:p"
+ }
+
+gtk_tree_selection_get_selected :: !Pointer !.a -> (!(!Bool, !{#Int}), !.a)
+gtk_tree_selection_get_selected sel env
+ # iter = createArray 4 0 // size of GtkTreeIter
+ # (r,env) = get sel 0 (get_array_pointer iter) env
+ = ((r, iter), env)
+where
+ get :: !Pointer !Pointer !Pointer !.a -> (!Bool, !.a)
+ get _ _ _ _ = code {
+ ccall gtk_tree_selection_get_selected "ppp:I:A"
+ }
+
+gtk_tree_selection_select_iter :: !Pointer !{#Int} !.a -> .a
+gtk_tree_selection_select_iter sel iter env = select sel (get_array_pointer iter) env
+where
+ select :: !Pointer !Pointer !.a -> .a
+ select _ _ _ = code {
+ ccall gtk_tree_selection_select_iter "Gpp:V:A"
+ }
+
gtk_tree_view_column_add_attribute :: !Pointer !Pointer !String !Int !.a -> .a
gtk_tree_view_column_add_attribute tree_column renderer attr column env =
add tree_column renderer (packString attr) column env
@@ -512,6 +599,16 @@ gtk_tree_view_append_column tree column env = code {
ccall gtk_tree_view_append_column "pp:V:A"
}
+gtk_tree_view_get_model :: !Pointer -> Pointer
+gtk_tree_view_get_model tree = code {
+ ccall gtk_tree_view_get_model "p:p"
+}
+
+gtk_tree_view_get_selection :: !Pointer -> Pointer
+gtk_tree_view_get_selection tree = code {
+ ccall gtk_tree_view_get_selection "p:p"
+}
+
gtk_tree_view_new_with_model :: !Pointer !.a -> (!Pointer, !.a)
gtk_tree_view_new_with_model model env = code {
ccall gtk_tree_view_new_with_model "p:p:A"
@@ -557,6 +654,11 @@ gtk_widget_set_margin_top widget padding env = code {
ccall gtk_widget_set_margin_top "pI:V:A"
}
+gtk_widget_set_sensitive :: !Pointer !Bool !.a -> .a
+gtk_widget_set_sensitive widget setting env = code {
+ ccall gtk_widget_set_sensitive "pI:V:A"
+}
+
gtk_widget_set_size_request :: !Pointer !Int !Int !.a -> .a
gtk_widget_set_size_request widget hsize vsize env = code {
ccall gtk_widget_set_size_request "pII:V:A"