diff options
Diffstat (limited to 'src/Gtk/Signal.icl')
-rw-r--r-- | src/Gtk/Signal.icl | 7 |
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 = |