diff options
author | Camil Staps | 2019-10-23 16:22:51 +0200 |
---|---|---|
committer | Camil Staps | 2019-10-23 16:22:51 +0200 |
commit | 0c122b22f003ee3681341573e0b8f366b9f9dec9 (patch) | |
tree | 40d8b02e116998b9fe96cfd1a25440f5fe57b8fc /src/Gtk/Widgets/Sheet | |
parent | Add setRowTitle for GtkSheet (diff) |
Add EnterPressedHandler for GtkSheet
Diffstat (limited to 'src/Gtk/Widgets/Sheet')
-rw-r--r-- | src/Gtk/Widgets/Sheet/Signal.dcl | 3 | ||||
-rw-r--r-- | src/Gtk/Widgets/Sheet/Signal.icl | 5 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/Gtk/Widgets/Sheet/Signal.dcl b/src/Gtk/Widgets/Sheet/Signal.dcl index 32f5383..ad14d5a 100644 --- a/src/Gtk/Widgets/Sheet/Signal.dcl +++ b/src/Gtk/Widgets/Sheet/Signal.dcl @@ -6,6 +6,7 @@ from Gtk.Signal import class signalHandler, :: SignalHandlerInternal from Gtk.State import :: GtkM :: GtkSheetSignalHandler - = TraverseHandler !((Maybe (Int,Int)) (Int,Int) -> GtkM (Maybe (Int, Int))) + = EnterPressedHandler !(GtkM Bool) + | 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 562f806..adc6054 100644 --- a/src/Gtk/Widgets/Sheet/Signal.icl +++ b/src/Gtk/Widgets/Sheet/Signal.icl @@ -4,6 +4,7 @@ import StdEnv import StdMaybe import Control.Monad +import Data.Functor import System._Pointer import Gtk @@ -11,8 +12,10 @@ import Gtk instance signalHandler GtkSheetSignalHandler where signalName handler = case handler of - TraverseHandler _ -> "traverse" + EnterPressedHandler _ -> "enter-pressed" + TraverseHandler _ -> "traverse" signalHandler handler = case handler of + EnterPressedHandler f -> SHI_Pointer_Bool \_ -> not <$> f TraverseHandler f -> SHI_Int_Int_Pointer_Pointer_Bool \oldrow oldcol newrowp newcolp -> let newrow = readInt4S newrowp 0; newcol = readInt4S newcolp 0 in f (if (oldrow<0) Nothing (Just (oldrow,oldcol))) (newrow,newcol) >>= \r -> case r of |