32 #import "CGTKBaseBuilder.h"
34 static BOOL CGTKBuilderDebugMode = NO;
36 static void gtkbuilder_connect_signals_handler(GtkBuilder *builder, GObject *
object,
const gchar *signal_name,
const gchar *handler_name, GObject *connect_object, GConnectFlags flags, gpointer user_data)
38 if(CGTKBuilderDebugMode)
40 NSLog(
@"Signal_name = %@", [NSString stringWithUTF8String:signal_name]);
41 NSLog(
@"Handlers_name = %@", [NSString stringWithUTF8String:handler_name]);
44 NSDictionary *objectSignalDictionary = (NSDictionary *)user_data;
46 id callbackData = [objectSignalDictionary objectForKey:[NSString stringWithUTF8String:handler_name]];
48 id obj = [callbackData object];
49 SEL sel = [callbackData sel];
51 if(obj == nil &&
object != NULL)
53 if(CGTKBuilderDebugMode)
55 NSLog(
@"Connecting to plain C function");
58 g_signal_connect(
object, signal_name, G_CALLBACK(handler_name), NULL);
62 if(CGTKBuilderDebugMode)
64 NSLog(
@"Found object %@", obj);
74 +(void)setDebug:(BOOL)debugEnabled
76 CGTKBuilderDebugMode = debugEnabled;
79 +(void)connectSignalsToObjectsWithBuilder:(
CGTKBuilder *)builder andSignalDictionary:(NSDictionary *)objectSignalDictionary;
81 gtk_builder_connect_signals_full([builder BUILDER], >kbuilder_connect_signals_handler, objectSignalDictionary);
86 GObject *obj = gtk_builder_get_object([builder BUILDER], [name UTF8String]);
88 if(GTK_IS_WIDGET(obj))
90 return [[[
CGTKWidget alloc] initWithGObject:obj] autorelease];
void connectGpointer:withSignal:toTarget:withSelector:andData:(gpointer object,[withSignal] NSString *name,[toTarget] id target,[withSelector] SEL selector,[andData] gpointer data)