diff options
Diffstat (limited to 'src/Gtk/Widgets')
-rw-r--r-- | src/Gtk/Widgets/Sheet.dcl | 3 | ||||
-rw-r--r-- | src/Gtk/Widgets/Sheet.icl | 13 | ||||
-rw-r--r-- | src/Gtk/Widgets/Sheet/Internal.dcl | 2 | ||||
-rw-r--r-- | src/Gtk/Widgets/Sheet/Internal.icl | 10 |
4 files changed, 28 insertions, 0 deletions
diff --git a/src/Gtk/Widgets/Sheet.dcl b/src/Gtk/Widgets/Sheet.dcl index f7298a9..c5e1f58 100644 --- a/src/Gtk/Widgets/Sheet.dcl +++ b/src/Gtk/Widgets/Sheet.dcl @@ -28,6 +28,9 @@ setColumnTitle :: !Int !String !GtkSheet -> GtkM GtkSheet setRowTitle :: !Int !String !GtkSheet -> GtkM GtkSheet setCellText :: !Int !Int !String !GtkSheet -> GtkM GtkSheet +getActiveCell :: !GtkSheet -> GtkM (Maybe (Int,Int)) +setActiveCell :: !Int !Int !GtkSheet -> GtkM GtkSheet + :: GtkSheetColumnResizability = ColumnsResizable | ColumnsFixedSize diff --git a/src/Gtk/Widgets/Sheet.icl b/src/Gtk/Widgets/Sheet.icl index e34a304..07789df 100644 --- a/src/Gtk/Widgets/Sheet.icl +++ b/src/Gtk/Widgets/Sheet.icl @@ -1,6 +1,7 @@ implementation module Gtk.Widgets.Sheet import StdEnv +import StdMaybe import Control.Monad import System._Pointer @@ -52,6 +53,18 @@ setCellText row col text sheet = toState (gtk_sheet_set_cell_text sheet row col text) >>| pure sheet +getActiveCell :: !GtkSheet -> GtkM (Maybe (Int,Int)) +getActiveCell sheet = + toStateR (gtk_sheet_get_active_cell sheet) >>= \cell=:(row,col) + | row < 0 || col < 0 + -> pure Nothing + -> pure (Just cell) + +setActiveCell :: !Int !Int !GtkSheet -> GtkM GtkSheet +setActiveCell row col sheet = + toState (gtk_sheet_set_active_cell sheet row col) >>| + pure sheet + instance tune GtkSheet GtkSheetColumnResizability where tune setting sheet = diff --git a/src/Gtk/Widgets/Sheet/Internal.dcl b/src/Gtk/Widgets/Sheet/Internal.dcl index 4f1eec3..b372c54 100644 --- a/src/Gtk/Widgets/Sheet/Internal.dcl +++ b/src/Gtk/Widgets/Sheet/Internal.dcl @@ -25,4 +25,6 @@ gtk_sheet_columns_set_sensitivity :: !Pointer !Bool !.a -> .a gtk_sheet_cell_clear :: !Pointer !Int !Int !.a -> .a gtk_sheet_cell_delete :: !Pointer !Int !Int !.a -> .a +gtk_sheet_get_active_cell :: !Pointer !.a -> (!(!Int, !Int), !.a) +gtk_sheet_set_active_cell :: !Pointer !Int !Int !.a -> .a gtk_sheet_set_cell_text :: !Pointer !Int !Int !String !.a -> .a diff --git a/src/Gtk/Widgets/Sheet/Internal.icl b/src/Gtk/Widgets/Sheet/Internal.icl index 5f45cfc..69459b6 100644 --- a/src/Gtk/Widgets/Sheet/Internal.icl +++ b/src/Gtk/Widgets/Sheet/Internal.icl @@ -106,6 +106,16 @@ gtk_sheet_cell_delete sheet row col env = code { ccall gtk_sheet_cell_delete "pII:V:A" } +gtk_sheet_get_active_cell :: !Pointer !.a -> (!(!Int, !Int), !.a) +gtk_sheet_get_active_cell sheet env = code { + ccall gtk_sheet_get_active_cell "p:VII:A" +} + +gtk_sheet_set_active_cell :: !Pointer !Int !Int !.a -> .a +gtk_sheet_set_active_cell sheet row col env = code { + ccall gtk_sheet_set_active_cell "pII:V:A" +} + gtk_sheet_set_cell_text :: !Pointer !Int !Int !String !.a -> .a gtk_sheet_set_cell_text sheet row col text env = set sheet row col (packString text) env where |