diff options
author | Camil Staps | 2019-10-23 20:21:41 +0200 |
---|---|---|
committer | Camil Staps | 2019-10-23 20:21:41 +0200 |
commit | bec9e255a435b3e687e7e611c2f140dab2f6bfdd (patch) | |
tree | 20f0291f49230a74607ee6383299855a7e8aeb37 /src | |
parent | Use gtk_sheet_cell_clear instead of _delete in setCellText (GtkSheet), to kee... (diff) |
Add setRangeEditable for GtkSheet
Diffstat (limited to 'src')
-rw-r--r-- | src/Gtk/Widgets/Sheet.dcl | 1 | ||||
-rw-r--r-- | src/Gtk/Widgets/Sheet.icl | 5 | ||||
-rw-r--r-- | src/Gtk/Widgets/Sheet/Internal.dcl | 1 | ||||
-rw-r--r-- | src/Gtk/Widgets/Sheet/Internal.icl | 16 |
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 + } |