summaryrefslogtreecommitdiff
path: root/src/Gtk
diff options
context:
space:
mode:
Diffstat (limited to 'src/Gtk')
-rw-r--r--src/Gtk/Signal.dcl1
-rw-r--r--src/Gtk/Signal.icl7
-rw-r--r--src/Gtk/Widgets/Sheet/Signal.dcl3
-rw-r--r--src/Gtk/Widgets/Sheet/Signal.icl2
4 files changed, 10 insertions, 3 deletions
diff --git a/src/Gtk/Signal.dcl b/src/Gtk/Signal.dcl
index 692bf05..b082e02 100644
--- a/src/Gtk/Signal.dcl
+++ b/src/Gtk/Signal.dcl
@@ -23,6 +23,7 @@ instance signalHandler GSignalHandler
:: SignalHandlerInternal
= SHI_Void !(GtkM ())
| SHI_Pointer_Bool !(Pointer -> GtkM Bool)
+ | SHI_Int_Int_Bool !(Int Int -> GtkM Bool)
| SHI_Int_Int_Pointer_Pointer_Bool !(Int Int Pointer Pointer -> GtkM Bool)
installSignalHandler :: !h !w -> GtkM w | signalHandler h & gtkWidget w
diff --git a/src/Gtk/Signal.icl b/src/Gtk/Signal.icl
index 64a244e..56126f8 100644
--- a/src/Gtk/Signal.icl
+++ b/src/Gtk/Signal.icl
@@ -38,8 +38,9 @@ installSignalHandler handler widget =
where
type handler = case handler of
SHI_Void _ -> 1
- SHI_Pointer_Bool _ -> 2
- SHI_Int_Int_Pointer_Pointer_Bool _ -> 3
+ SHI_Int_Int_Bool _ -> 2
+ SHI_Pointer_Bool _ -> 3
+ SHI_Int_Int_Pointer_Pointer_Bool _ -> 4
instance tune w SignalHandler | gtkWidget w
where
@@ -95,6 +96,8 @@ runSignalHandler :: !SignalHandlerInternal !{#Int} -> GtkM Int
runSignalHandler handler args = case handler of
SHI_Void f
-> toInt <$> f
+ SHI_Int_Int_Bool f
+ -> toInt <$> f args.[0] args.[1]
SHI_Pointer_Bool f
-> toInt <$> f args.[0]
SHI_Int_Int_Pointer_Pointer_Bool f
diff --git a/src/Gtk/Widgets/Sheet/Signal.dcl b/src/Gtk/Widgets/Sheet/Signal.dcl
index ad14d5a..39f77b0 100644
--- a/src/Gtk/Widgets/Sheet/Signal.dcl
+++ b/src/Gtk/Widgets/Sheet/Signal.dcl
@@ -6,7 +6,8 @@ from Gtk.Signal import class signalHandler, :: SignalHandlerInternal
from Gtk.State import :: GtkM
:: GtkSheetSignalHandler
- = EnterPressedHandler !(GtkM Bool)
+ = DeactivateHandler !(Int Int -> GtkM Bool)
+ | 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 6db3b6b..8cfa10f 100644
--- a/src/Gtk/Widgets/Sheet/Signal.icl
+++ b/src/Gtk/Widgets/Sheet/Signal.icl
@@ -12,9 +12,11 @@ import Gtk
instance signalHandler GtkSheetSignalHandler
where
signalName handler = case handler of
+ DeactivateHandler _ -> "deactivate"
EnterPressedHandler _ -> "enter-pressed"
TraverseHandler _ -> "traverse"
signalHandler handler = case handler of
+ DeactivateHandler f -> SHI_Int_Int_Bool f
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