From ac446c2e41d7eceda5dea6596a8b08a2a50a9a85 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Sun, 27 Oct 2019 10:09:43 +0100 Subject: Add getCellText for GtkSheet --- src/Gtk/Widgets/Sheet.dcl | 3 +++ src/Gtk/Widgets/Sheet.icl | 3 +++ src/Gtk/Widgets/Sheet/Internal.dcl | 3 +++ src/Gtk/Widgets/Sheet/Internal.icl | 13 +++++++++++++ 4 files changed, 22 insertions(+) (limited to 'src/Gtk') 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" -- cgit v1.2.3