summaryrefslogtreecommitdiff
path: root/src/Gtk/Widgets/Sheet.icl
diff options
context:
space:
mode:
authorCamil Staps2019-10-22 21:56:43 +0200
committerCamil Staps2019-10-22 21:58:19 +0200
commit8c626c25138fc65535e9985ecb125e4b69253780 (patch)
tree3cd08084ab06a10b4c1a8d4802d75bfa46400884 /src/Gtk/Widgets/Sheet.icl
parentAdd setText for TextBuffer (diff)
Add whileFrozen, ensureDimensions, setColumnTitle and setCellText to GtkSheet
Diffstat (limited to 'src/Gtk/Widgets/Sheet.icl')
-rw-r--r--src/Gtk/Widgets/Sheet.icl30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/Gtk/Widgets/Sheet.icl b/src/Gtk/Widgets/Sheet.icl
index f27d964..dcafa26 100644
--- a/src/Gtk/Widgets/Sheet.icl
+++ b/src/Gtk/Widgets/Sheet.icl
@@ -17,6 +17,36 @@ newSheet :: !Int !Int !String -> GtkM GtkSheet
newSheet nrows ncols title =
toStateR (gtk_sheet_new nrows ncols title) >>= show
+whileFrozen :: !(GtkM a) !GtkSheet -> GtkM a
+whileFrozen m sheet =
+ toState (gtk_sheet_freeze sheet) >>|
+ m >>= \r ->
+ toState (gtk_sheet_unfreeze sheet) >>|
+ pure r
+
+ensureDimensions :: !Int !Int !GtkSheet -> GtkM GtkSheet
+ensureDimensions nrows ncols sheet =
+ toStateR (gtk_sheet_get_rows_count sheet) >>= \current_nrows ->
+ if (nrows < current_nrows)
+ (toState (gtk_sheet_delete_rows sheet nrows (current_nrows-nrows)))
+ (toState (gtk_sheet_add_rows sheet (nrows-current_nrows))) >>|
+ toStateR (gtk_sheet_get_columns_count sheet) >>= \current_ncols ->
+ if (ncols < current_ncols)
+ (toState (gtk_sheet_delete_columns sheet ncols (current_ncols-ncols)))
+ (toState (gtk_sheet_add_columns sheet (ncols-current_ncols))) >>|
+ pure sheet
+
+setColumnTitle :: !Int !String !GtkSheet -> GtkM GtkSheet
+setColumnTitle col title sheet =
+ toState (gtk_sheet_set_column_title sheet col title) >>|
+ pure sheet
+
+setCellText :: !Int !Int !String !GtkSheet -> GtkM GtkSheet
+setCellText row col text sheet =
+ toState (gtk_sheet_cell_delete sheet row col) >>|
+ toState (gtk_sheet_set_cell_text sheet row col text) >>|
+ pure sheet
+
instance tune GtkSheet GtkSheetColumnResizability
where
tune setting sheet =