#ifndef GTOOLKIT_GTKMAIN_H
#define GTOOLKIT_GTKMAIN_H

#include <GToolKit/GTK.h>
#include <gtk/gtkmain.h>

@interface GTKMain : NSObject
- (void) exit:(gint) error_code;
- (NSString *) setLocale;
- (gint) eventsPending;
- (void) main;
- (guint) mainLevel;
- (void) mainQuit;
- (gint) mainIteration;
- (gint) mainIterationDo:(gboolean) blocking;
- (gint) true;
- (gint) false;
- (void) grabAdd:(GTKWidget *) widget;
- (GTKWidget*) grabGetCurrent;
- (void) grabRemove:(GTKWidget *) widget;
- (void) initAdd:(GtkFunction) function data:(gpointer) data;
- (void) quitAddDestroy:(guint) main_level object:(GTKObject *) object;
- (guint) quitAdd:(guint) main_level function:(GtkFunction) function data:(gpointer) data;
- (guint) quitAddFull:(guint) main_level function:(GtkFunction) function marshal:(GtkCallbackMarshal) marshal data:(gpointer) data destroy:(GtkDestroyNotify) destroy;
- (void) quitRemove:(guint) quit_handler_id;
- (void) quitRemoveByData:(gpointer) data;
- (guint) timeoutAddFull:(guint32) interval function:(GtkFunction) function marshal:(GtkCallbackMarshal) marshal data:(gpointer) data destroy:(GtkDestroyNotify) destroy;
- (guint) timeoutAdd:(guint32) interval function:(GtkFunction) function data:(gpointer) data;
- (guint) timeoutAddInterp:(guint32) interval function:(GtkCallbackMarshal) function data:(gpointer) data notify:(GtkDestroyNotify) notify;
- (void) timeoutRemove:(guint) timeout_handler_id;
- (guint) idleAdd:(GtkFunction) function data:(gpointer) data;
- (guint) idleAddPriority:(gint) priority function:(GtkFunction) function data:(gpointer) data;
- (guint) idleAddFull:(gint) priority function:(GtkFunction) function marshal:(GtkCallbackMarshal) marshal data:(gpointer) data destroy:(GtkDestroyNotify) destroy;
- (guint) idleAddInterp:(GtkCallbackMarshal) marshal data:(gpointer) data destroy:(GtkDestroyNotify) destroy;
- (void) idleRemove:(guint) idle_handler_id;
- (void) idleRemoveByData:(gpointer) data;
- (guint) inputAddFull:(gint) source condition:(GdkInputCondition) condition function:(GdkInputFunction) function marshal:(GtkCallbackMarshal) marshal data:(gpointer) data destroy:(GtkDestroyNotify) destroy;
- (void) inputRemove:(guint) input_handler_id;
- (guint) keySnooperInstall:(GtkKeySnoopFunc) snooper funcData:(gpointer) func_data;
- (void) keySnooperRemove:(guint) snooper_handler_id;
- (GdkEvent*) getCurrentEvent;
- (GTKWidget*) getEventWidget:(GdkEvent	*) event;
- (void) rcInit;
- (void) rcParse:(const NSString *) filename;
- (void) rcParseString:(const NSString *) rc_string;
- (GTKStyle*) rcGetStyle:(GTKWidget *) widget;
- (void) rcAddWidgetNameStyle:(GTKStyle *) style pattern:(const NSString *) pattern;
- (void) rcAddWidgetClassStyle:(GTKStyle *) style pattern:(const NSString *) pattern;
@end

#endif
