diff options
Diffstat (limited to 'src/Gtk')
-rw-r--r-- | src/Gtk/Signal.dcl | 2 | ||||
-rw-r--r-- | src/Gtk/Signal.icl | 9 | ||||
-rw-r--r-- | src/Gtk/Widgets.dcl | 4 | ||||
-rw-r--r-- | src/Gtk/Widgets.icl | 14 |
4 files changed, 16 insertions, 13 deletions
diff --git a/src/Gtk/Signal.dcl b/src/Gtk/Signal.dcl index 10e6ef7..2260ebe 100644 --- a/src/Gtk/Signal.dcl +++ b/src/Gtk/Signal.dcl @@ -11,4 +11,4 @@ from Gtk.Widgets import class gtkWidget :: GSignalHandlerInternal = GSHI_Void !GSignalHandlerFunction -installSignalHandler :: !w !GSignalHandler -> State GtkState () | gtkWidget w +installSignalHandler :: !GSignalHandler !w -> State GtkState w | gtkWidget w 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) diff --git a/src/Gtk/Widgets.dcl b/src/Gtk/Widgets.dcl index ab5d5c8..d217730 100644 --- a/src/Gtk/Widgets.dcl +++ b/src/Gtk/Widgets.dcl @@ -80,8 +80,8 @@ instance gtkWidget GtkPaned instance gtkContainer GtkPaned newPaned :: !GtkOrientation !GtkPanedHandleWidth -> GtkM GtkPaned -packPane1 :: !w !GtkPaned !GtkResize !GtkShrink -> GtkM () | gtkWidget w -packPane2 :: !w !GtkPaned !GtkResize !GtkShrink -> GtkM () | gtkWidget w +packPane1 :: !GtkPaned !GtkResize !GtkShrink !w -> GtkM w | gtkWidget w +packPane2 :: !GtkPaned !GtkResize !GtkShrink !w -> GtkM w | gtkWidget w :: GtkScrolledWindow instance gtkWidget GtkScrolledWindow diff --git a/src/Gtk/Widgets.icl b/src/Gtk/Widgets.icl index 1ea63df..2e7c1de 100644 --- a/src/Gtk/Widgets.icl +++ b/src/Gtk/Widgets.icl @@ -149,13 +149,15 @@ newPaned orientation handle_width = toState ('I'.gtk_paned_set_wide_handle paned handle_width=:WideHandle) >>| show paned -packPane1 :: !w !GtkPaned !GtkResize !GtkShrink -> GtkM () | gtkWidget w -packPane1 widget paned resize shrink = - toState ('I'.gtk_paned_pack1 paned (gtkWidget widget) resize=:Resize shrink=:Shrink) +packPane1 :: !GtkPaned !GtkResize !GtkShrink !w -> GtkM w | gtkWidget w +packPane1 paned resize shrink widget = + toState ('I'.gtk_paned_pack1 paned (gtkWidget widget) resize=:Resize shrink=:Shrink) >>| + pure widget -packPane2 :: !w !GtkPaned !GtkResize !GtkShrink -> GtkM () | gtkWidget w -packPane2 widget paned resize shrink = - toState ('I'.gtk_paned_pack2 paned (gtkWidget widget) resize=:Resize shrink=:Shrink) +packPane2 :: !GtkPaned !GtkResize !GtkShrink !w -> GtkM w | gtkWidget w +packPane2 paned resize shrink widget = + toState ('I'.gtk_paned_pack2 paned (gtkWidget widget) resize=:Resize shrink=:Shrink) >>| + pure widget :: GtkScrolledWindow :== Pointer |