implementation module Gtk.Widgets.Sheet /** * This module provides support for GtkSheet; a spreadsheet widget. See * https://fpaquet.github.io/gtksheet/ for more details and installation * instructions. Use the 'Gtk with GtkSheet' environment. */ import Control.Monad import Control.Monad.Identity import Control.Monad.State import System._Pointer import Gtk import Gtk.Widgets.Sheet.Internal :: GtkSheet :== Pointer instance gtkWidget GtkSheet where gtkWidget s = fromPtr s instance gtkContainer GtkSheet where gtkContainer s = fromPtr s newSheet :: !Int !Int !String -> GtkM GtkSheet newSheet nrows ncols title = toStateR (gtk_sheet_new nrows ncols title) >>= show instance tune GtkSheet GtkSheetColumnResizability where tune setting sheet = toState (gtk_sheet_columns_set_resizable sheet setting=:ColumnsResizable) >>| pure sheet instance tune GtkSheet GtkSheetColumnSensitity where tune setting sheet = toState (gtk_sheet_columns_set_sensitivity sheet setting=:ColumnsSensitive) >>| pure sheet instance tune GtkSheet GtkSheetRowResizability where tune setting sheet = toState (gtk_sheet_rows_set_resizable sheet setting=:RowsResizable) >>| pure sheet instance tune GtkSheet GtkSheetRowSensitity where tune setting sheet = toState (gtk_sheet_rows_set_sensitivity sheet setting=:RowsSensitive) >>| pure sheet