diff options
Diffstat (limited to 'src/Gtk/Internal.icl')
-rw-r--r-- | src/Gtk/Internal.icl | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/Gtk/Internal.icl b/src/Gtk/Internal.icl index 8a32b2c..92a9009 100644 --- a/src/Gtk/Internal.icl +++ b/src/Gtk/Internal.icl @@ -6,7 +6,6 @@ import StdDebug import System._Pointer -import code from "clean_gtk_support." import code from library "-lgtk-3" import code from library "-lgdk-3" import code from library "-lpangocairo-1.0" @@ -29,12 +28,17 @@ g_object_unref p env = code { ccall g_object_unref "p:V:A" } -g_signal_connect :: !Int !Pointer !String !Int !.a -> .a -g_signal_connect type widget signal id env = connect type widget (packString signal) id env +g_signal_connect :: !Pointer !String !Pointer !Int !.a -> .a +g_signal_connect widget signal callback data env = + g_signal_connect_data widget signal callback data 0 0 env + +g_signal_connect_data :: !Pointer !String !Pointer !Int !Pointer !Int !.a -> .a +g_signal_connect_data widget signal callback data destroy_data flags env = + connect widget (packString signal) callback data destroy_data flags env where - connect :: !Int !Pointer !String !Int !.a -> .a - connect _ _ _ _ _ = code { - ccall clean_g_signal_connect "IpsI:V:A" + connect :: !Pointer !String !Pointer !Int !Pointer !Int !.a -> .a + connect _ _ _ _ _ _ _ = code { + ccall g_signal_connect_data "pspIpI:V:A" } g_timeout_add :: !Int !Pointer !Int !.a -> .a |