summaryrefslogtreecommitdiff
path: root/src/Gtk/Signal.icl
diff options
context:
space:
mode:
Diffstat (limited to 'src/Gtk/Signal.icl')
-rw-r--r--src/Gtk/Signal.icl7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/Gtk/Signal.icl b/src/Gtk/Signal.icl
index e97f2ab..cb13551 100644
--- a/src/Gtk/Signal.icl
+++ b/src/Gtk/Signal.icl
@@ -8,6 +8,8 @@ import Control.Monad
import Data.Functor
import qualified Data.Map
+import Gdk.Events
+
import Gtk
import Gtk.Internal
@@ -18,6 +20,7 @@ where
ChangedHandler _ -> "changed"
ClickedHandler _ -> "clicked"
DestroyHandler _ -> "destroy"
+ KeyPressHandler _ -> "key-press-event"
NextMatchHandler _ -> "next-match"
PreviousMatchHandler _ -> "previous-match"
SearchChangedHandler _ -> "search-changed"
@@ -27,10 +30,14 @@ where
ChangedHandler f -> SHI_Void f
ClickedHandler f -> SHI_Void f
DestroyHandler f -> SHI_Void f
+ KeyPressHandler f -> SHI_Pointer_Bool \ev -> toBool <$> f (GdkEvent ev)
NextMatchHandler f -> SHI_Void f
PreviousMatchHandler f -> SHI_Void f
SearchChangedHandler f -> SHI_Void f
StopSearchHandler f -> SHI_Void f
+ where
+ toBool :: !GtkPropagate -> Bool
+ toBool p = p=:StopPropagation
installSignalHandler :: !h !w -> GtkM w | signalHandler h & gtkWidget w
installSignalHandler handler widget =