From 79915057437b92095ed44667c269c8650a77a298 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Wed, 30 Oct 2019 13:21:06 +0100 Subject: Add GdkEvent and KeyPressHandler --- src/Gtk/Signal.icl | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/Gtk/Signal.icl') 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 = -- cgit v1.2.3