diff options
author | Camil Staps | 2019-10-21 11:11:35 +0200 |
---|---|---|
committer | Camil Staps | 2019-10-21 11:11:35 +0200 |
commit | ed2f12a5115ff63247025c6f0c10c5285cf337e1 (patch) | |
tree | 15e7a4d9cca0ecff539a7fa359f2b06eb8c75f60 /src/Gtk/Signal.icl | |
parent | Add GtkMenu* functionality and reorder combinator arguments to ease binding (diff) |
Reorder more combinator arguments to ease binding
Diffstat (limited to 'src/Gtk/Signal.icl')
-rw-r--r-- | src/Gtk/Signal.icl | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/Gtk/Signal.icl b/src/Gtk/Signal.icl index 699ee98..2fb8df5 100644 --- a/src/Gtk/Signal.icl +++ b/src/Gtk/Signal.icl @@ -11,16 +11,17 @@ import qualified Gtk.Internal as I import Gtk.State import Gtk.Widgets -installSignalHandler :: !w !GSignalHandler -> State GtkState () | gtkWidget w -installSignalHandler widget handler = +installSignalHandler :: !GSignalHandler !w -> State GtkState w | gtkWidget w +installSignalHandler handler widget = modify (\st -> { st & signal_handlers = 'M'.put (st.signal_counter+1) handler_internal st.signal_handlers , signal_counter = st.signal_counter+1 }) >>| gets (\st -> st.signal_counter) >>= \id -> - toState case handler_internal of - GSHI_Void _ -> 'I'.g_signal_connect_void (toPtr (gtkWidget widget)) signal_name id + (toState case handler_internal of + GSHI_Void _ -> 'I'.g_signal_connect_void (toPtr (gtkWidget widget)) signal_name id) >>| + pure widget where (signal_name,handler_internal) = case handler of DestroyHandler f -> ("destroy",GSHI_Void f) |