blob: e34a304276ce8192f7c1c4ff54f5eb5f4b4ea2a1 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
implementation module Gtk.Widgets.Sheet
import StdEnv
import Control.Monad
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
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
setRowTitle :: !Int !String !GtkSheet -> GtkM GtkSheet
setRowTitle row title sheet =
toState (gtk_sheet_row_button_add_label sheet row 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 =
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
|