summaryrefslogtreecommitdiff
path: root/src/Gtk
diff options
context:
space:
mode:
authorCamil Staps2019-10-23 20:21:41 +0200
committerCamil Staps2019-10-23 20:21:41 +0200
commitbec9e255a435b3e687e7e611c2f140dab2f6bfdd (patch)
tree20f0291f49230a74607ee6383299855a7e8aeb37 /src/Gtk
parentUse gtk_sheet_cell_clear instead of _delete in setCellText (GtkSheet), to kee... (diff)
Add setRangeEditable for GtkSheet
Diffstat (limited to 'src/Gtk')
-rw-r--r--src/Gtk/Widgets/Sheet.dcl1
-rw-r--r--src/Gtk/Widgets/Sheet.icl5
-rw-r--r--src/Gtk/Widgets/Sheet/Internal.dcl1
-rw-r--r--src/Gtk/Widgets/Sheet/Internal.icl16
4 files changed, 23 insertions, 0 deletions
diff --git a/src/Gtk/Widgets/Sheet.dcl b/src/Gtk/Widgets/Sheet.dcl
index 781cdd9..1b85a26 100644
--- a/src/Gtk/Widgets/Sheet.dcl
+++ b/src/Gtk/Widgets/Sheet.dcl
@@ -29,6 +29,7 @@ setColumnTitle :: !Int !String !GtkSheet -> GtkM GtkSheet
setRowTitle :: !Int !String !GtkSheet -> GtkM GtkSheet
setCellText :: !Int !Int !String !GtkSheet -> GtkM GtkSheet
setCSSClassForRange :: !GtkCSSClass !(!Int,!Int) !(!Int,!Int) !GtkSheet -> GtkM GtkSheet
+setRangeEditable :: !Bool !(!Int,!Int) !(!Int,!Int) !GtkSheet -> GtkM GtkSheet
getActiveCell :: !GtkSheet -> GtkM (Maybe (Int,Int))
setActiveCell :: !Int !Int !GtkSheet -> GtkM GtkSheet
diff --git a/src/Gtk/Widgets/Sheet.icl b/src/Gtk/Widgets/Sheet.icl
index e527137..d4625a3 100644
--- a/src/Gtk/Widgets/Sheet.icl
+++ b/src/Gtk/Widgets/Sheet.icl
@@ -58,6 +58,11 @@ setCSSClassForRange (Class cls) top_left bottom_right sheet =
toState (gtk_sheet_range_set_css_class sheet top_left bottom_right cls) >>|
pure sheet
+setRangeEditable :: !Bool !(!Int,!Int) !(!Int,!Int) !GtkSheet -> GtkM GtkSheet
+setRangeEditable setting top_left bottom_right sheet =
+ toState (gtk_sheet_range_set_editable sheet top_left bottom_right setting) >>|
+ pure sheet
+
getActiveCell :: !GtkSheet -> GtkM (Maybe (Int,Int))
getActiveCell sheet =
toStateR (gtk_sheet_get_active_cell sheet) >>= \cell=:(row,col)
diff --git a/src/Gtk/Widgets/Sheet/Internal.dcl b/src/Gtk/Widgets/Sheet/Internal.dcl
index 27c7945..14499f5 100644
--- a/src/Gtk/Widgets/Sheet/Internal.dcl
+++ b/src/Gtk/Widgets/Sheet/Internal.dcl
@@ -30,3 +30,4 @@ gtk_sheet_set_active_cell :: !Pointer !Int !Int !.a -> .a
gtk_sheet_set_cell_text :: !Pointer !Int !Int !String !.a -> .a
gtk_sheet_range_set_css_class :: !Pointer !(!Int,!Int) !(!Int,!Int) !String !.a -> .a
+gtk_sheet_range_set_editable :: !Pointer !(!Int,!Int) !(!Int,!Int) !Bool !.a -> .a
diff --git a/src/Gtk/Widgets/Sheet/Internal.icl b/src/Gtk/Widgets/Sheet/Internal.icl
index 060d6ab..11f5f5a 100644
--- a/src/Gtk/Widgets/Sheet/Internal.icl
+++ b/src/Gtk/Widgets/Sheet/Internal.icl
@@ -141,3 +141,19 @@ where
push_a_b 0
pop_a 1
}
+
+gtk_sheet_range_set_editable :: !Pointer !(!Int,!Int) !(!Int,!Int) !Bool !.a -> .a
+gtk_sheet_range_set_editable sheet (r1,c1) (r2,c2) setting env
+ # range = IF_INT_64_OR_32 {#c1<<32+r1,c2<<32+r2} {#r1,c1,r2,c2}
+ = set sheet (get_ptr range + IF_INT_64_OR_32 24 16) setting env
+where
+ set :: !Pointer !Pointer !Bool !.a -> .a
+ set _ _ _ _ = code {
+ ccall gtk_sheet_range_set_editable "ppI:V:A"
+ }
+
+ get_ptr :: !{#Int} -> Pointer
+ get_ptr _ = code {
+ push_a_b 0
+ pop_a 1
+ }