From 8425b30fdb9ed78bf1f7f59a2f9b6ace87094010 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Wed, 30 Oct 2019 09:30:19 +0100 Subject: Add SheetActivateHandler for the activate signal on GtkSheet cells --- src/Gtk/Widgets/Sheet/Signal.dcl | 1 + src/Gtk/Widgets/Sheet/Signal.icl | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'src') 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 -- cgit v1.2.3