diff options
author | Camil Staps | 2019-10-22 21:56:43 +0200 |
---|---|---|
committer | Camil Staps | 2019-10-22 21:58:19 +0200 |
commit | 8c626c25138fc65535e9985ecb125e4b69253780 (patch) | |
tree | 3cd08084ab06a10b4c1a8d4802d75bfa46400884 /src/Gtk/Widgets/Sheet.icl | |
parent | Add 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.icl | 30 |
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 = |