summaryrefslogtreecommitdiff
path: root/src/Gtk/Widgets/Sheet
diff options
context:
space:
mode:
authorCamil Staps2019-10-30 09:30:19 +0100
committerCamil Staps2019-10-30 09:30:19 +0100
commit8425b30fdb9ed78bf1f7f59a2f9b6ace87094010 (patch)
tree679d088f748563f25acd699822c1eeb3a74a9ff8 /src/Gtk/Widgets/Sheet
parentExport Shared type to allow to share it itself (diff)
Add SheetActivateHandler for the activate signal on GtkSheet cells
Diffstat (limited to 'src/Gtk/Widgets/Sheet')
-rw-r--r--src/Gtk/Widgets/Sheet/Signal.dcl1
-rw-r--r--src/Gtk/Widgets/Sheet/Signal.icl8
2 files changed, 6 insertions, 3 deletions
diff --git a/src/Gtk/Widgets/Sheet/Signal.dcl b/src/Gtk/Widgets/Sheet/Signal.dcl
index 39f77b0..5708651 100644
--- a/src/Gtk/Widgets/Sheet/Signal.dcl
+++ b/src/Gtk/Widgets/Sheet/Signal.dcl
@@ -8,6 +8,7 @@ from Gtk.State import :: GtkM
:: GtkSheetSignalHandler
= DeactivateHandler !(Int Int -> GtkM Bool)
| EnterPressedHandler !(GtkM Bool)
+ | SheetActivateHandler !(Int Int -> GtkM ())
| TraverseHandler !((Maybe (Int,Int)) (Int,Int) -> GtkM (Maybe (Int, Int)))
instance signalHandler GtkSheetSignalHandler
diff --git a/src/Gtk/Widgets/Sheet/Signal.icl b/src/Gtk/Widgets/Sheet/Signal.icl
index 8cfa10f..6de4209 100644
--- a/src/Gtk/Widgets/Sheet/Signal.icl
+++ b/src/Gtk/Widgets/Sheet/Signal.icl
@@ -12,12 +12,14 @@ import Gtk
instance signalHandler GtkSheetSignalHandler
where
signalName handler = case handler of
- DeactivateHandler _ -> "deactivate"
- EnterPressedHandler _ -> "enter-pressed"
- TraverseHandler _ -> "traverse"
+ DeactivateHandler _ -> "deactivate"
+ EnterPressedHandler _ -> "enter-pressed"
+ SheetActivateHandler _ -> "activate"
+ TraverseHandler _ -> "traverse"
signalHandler handler = case handler of
DeactivateHandler f -> SHI_Int_Int_Bool f
EnterPressedHandler f -> SHI_Pointer_Bool \_ -> not <$> f
+ SheetActivateHandler f -> SHI_Int_Int_Bool \r c -> f r c >>| pure True
TraverseHandler f -> SHI_Int_Int_Pointer_Pointer_Bool \oldrow oldcol newrowp newcolp ->
let newrow = readInt4S newrowp 0; newcol = readInt4S newcolp 0 in
// NB, possible bug in GtkSheet: when a cell is selected and the