summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCamil Staps2019-10-27 10:09:43 +0100
committerCamil Staps2019-10-27 10:09:43 +0100
commitac446c2e41d7eceda5dea6596a8b08a2a50a9a85 (patch)
tree1ba8a99d2364f49a172d3a1e0ff43d0045940e97 /src
parentAdd DeactivateHandler for GtkSheet (diff)
Add getCellText for GtkSheet
Diffstat (limited to 'src')
-rw-r--r--src/Gtk/Widgets/Sheet.dcl3
-rw-r--r--src/Gtk/Widgets/Sheet.icl3
-rw-r--r--src/Gtk/Widgets/Sheet/Internal.dcl3
-rw-r--r--src/Gtk/Widgets/Sheet/Internal.icl13
4 files changed, 22 insertions, 0 deletions
diff --git a/src/Gtk/Widgets/Sheet.dcl b/src/Gtk/Widgets/Sheet.dcl
index 3643a7a..9421a85 100644
--- a/src/Gtk/Widgets/Sheet.dcl
+++ b/src/Gtk/Widgets/Sheet.dcl
@@ -6,6 +6,8 @@ definition module Gtk.Widgets.Sheet
* instructions. Use the 'Gtk with GtkSheet' environment.
*/
+from StdMaybe import :: Maybe
+
from Gtk.State import :: GtkM
from Gtk.Tune import class tune
from Gtk.Types import :: GtkCSSClass, :: GtkJustification
@@ -31,6 +33,7 @@ setRowTitle :: !Int !String !GtkSheet -> GtkM GtkSheet
setRowTitles :: ![String] !GtkSheet -> GtkM GtkSheet
setCellText :: !Int !Int !String !GtkSheet -> GtkM GtkSheet
+getCellText :: !Int !Int !GtkSheet -> GtkM (Maybe String)
setColumnJustification :: !GtkJustification !Int !GtkSheet -> GtkM GtkSheet
setCSSClassForRange :: !GtkCSSClass !(!Int,!Int) !(!Int,!Int) !GtkSheet -> GtkM GtkSheet
diff --git a/src/Gtk/Widgets/Sheet.icl b/src/Gtk/Widgets/Sheet.icl
index 5995f3e..f34aa4b 100644
--- a/src/Gtk/Widgets/Sheet.icl
+++ b/src/Gtk/Widgets/Sheet.icl
@@ -63,6 +63,9 @@ setCellText row col text sheet =
toState (gtk_sheet_set_cell_text sheet row col text) >>|
pure sheet
+getCellText :: !Int !Int !GtkSheet -> GtkM (Maybe String)
+getCellText row col sheet = toStateR (gtk_sheet_cell_get_text sheet row col)
+
setColumnJustification :: !GtkJustification !Int !GtkSheet -> GtkM GtkSheet
setColumnJustification justification col sheet =
toState (gtk_sheet_column_set_justification sheet col (toInt justification)) >>|
diff --git a/src/Gtk/Widgets/Sheet/Internal.dcl b/src/Gtk/Widgets/Sheet/Internal.dcl
index aabe093..e4db124 100644
--- a/src/Gtk/Widgets/Sheet/Internal.dcl
+++ b/src/Gtk/Widgets/Sheet/Internal.dcl
@@ -1,5 +1,7 @@
definition module Gtk.Widgets.Sheet.Internal
+from StdMaybe import :: Maybe
+
from System._Pointer import :: Pointer
gtk_sheet_new :: !Int !Int !String !.a -> (!Pointer, !.a)
@@ -26,6 +28,7 @@ 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_cell_get_text :: !Pointer !Int !Int !.a -> (!Maybe String, !.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 e7746a1..b3f9110 100644
--- a/src/Gtk/Widgets/Sheet/Internal.icl
+++ b/src/Gtk/Widgets/Sheet/Internal.icl
@@ -1,6 +1,7 @@
implementation module Gtk.Widgets.Sheet.Internal
import StdEnv
+import StdMaybe
import System._Pointer
@@ -113,6 +114,18 @@ gtk_sheet_cell_delete sheet row col env = code {
ccall gtk_sheet_cell_delete "GpII:V:A"
}
+gtk_sheet_cell_get_text :: !Pointer !Int !Int !.a -> (!Maybe String, !.a)
+gtk_sheet_cell_get_text sheet row col env
+ # (content,env) = get sheet row col env
+ | content == 0 = (Nothing, env)
+ # (content_string,content) = readP derefString content
+ = (Just content_string, env)
+where
+ get :: !Pointer !Int !Int !.a -> (!Pointer, !.a)
+ get _ _ _ _ = code {
+ ccall gtk_sheet_cell_get_text "pII:p: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"