#ifndef _QTSHARP_H_
#define _QTSHARP_H_

#include "customslot.h"

extern "C" {

typedef void (*qtsharp_EventDelegate)(void *, char *, void *, char *);
typedef int (*qt_EventDelegate)(void *, char *, void *, char *);

void qt_QObject_registerEventDelegate (qt_EventDelegate delegate);

TQObject *csharp_connect_void (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(void));
TQObject *csharp_connect_item_void (TQMenuData *instance, int id, TQObject *receiver, void (*ptr)(void));

TQObject *csharp_connect_bool (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(bool));

TQObject *csharp_connect_short (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(short));

TQObject *csharp_connect_int (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(int));
TQObject *csharp_connect_item_int (TQMenuData *instance, int id, TQObject *receiver, void (*ptr)(int));

TQObject *csharp_connect_long (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(long));

TQObject *csharp_connect_float (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(float));

TQObject *csharp_connect_double (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(double));

TQObject *csharp_connect_QString (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(const TQString&));

TQObject *csharp_connect_QDockWindow (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(TQDockWindow*));

TQObject *csharp_connect_QDropEvent (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(TQDropEvent*));

TQObject *csharp_connect_QDropEventTQListViewItem (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(TQDropEvent*,TQListViewItem*));

TQObject *csharp_connect_QIconViewItem (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(TQIconViewItem*));

TQObject *csharp_connect_QListBoxItem (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(TQListBoxItem*));

TQObject *csharp_connect_QListViewItem (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(TQListViewItem*));

TQObject *csharp_connect_QListViewItemTQListViewItem (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(TQListViewItem*,TQListViewItem*));

TQObject *csharp_connect_QListViewItemTQListViewItemTQListViewItem (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(TQListViewItem*,TQListViewItem*,TQListViewItem*));

TQObject *csharp_connect_QNetworkOperation (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(TQNetworkOperation*));

TQObject *csharp_connect_QObject (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(TQObject*));

TQObject *csharp_connect_QToolBar (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(TQToolBar*));

TQObject *csharp_connect_QWidget (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(TQWidget*));

TQObject *csharp_connect_intTQIconViewItem (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(int,TQIconViewItem*));

TQObject *csharp_connect_intTQListBoxItem (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(int,TQListBoxItem*));

TQObject *csharp_connect_intbool (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(int,bool));

TQObject *csharp_connect_intint (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(int,int));

TQObject *csharp_connect_intintint (TQObject *sender, const char *signal, TQObject *receiver, void (*ptr)(int,int,int));

} // extern "C"

#endif // _QTSHARP_H_