summaryrefslogtreecommitdiff
path: root/src/Gtk/Widgets/Sheet
diff options
context:
space:
mode:
Diffstat (limited to 'src/Gtk/Widgets/Sheet')
-rw-r--r--src/Gtk/Widgets/Sheet/Signal.dcl3
-rw-r--r--src/Gtk/Widgets/Sheet/Signal.icl5
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