From c10b18ff0bfe37c419a70558501da48c5c3c76b5 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Fri, 1 Nov 2019 12:26:48 +0100 Subject: Remove dependency on supporting C code --- src/Gtk/Internal.icl | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src/Gtk/Internal.icl') 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 -- cgit v1.2.3