/***************************************************************************
                            QObject.h -  description
                             -------------------
    begin                : Wed Nov 21 12:08:37 2001
    copyright            : (C) 2000-2001 Lost Highway Ltd. All rights reserved.
    email                : Lost_Highway@tipitina.demon.co.uk
    generated by         : duke@tipitina on Wed Nov 21 12:08:37 2001, using kalyptus 0.9.
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This library is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU Library General Public License as       *
 *   published by the Free Software Foundation; either version 2 of the    *
 *   License, or (at your option) any later version.                       *
 *                                                                         *
 ***************************************************************************/

#ifndef QOBJECT_H
#define QOBJECT_H

#include <Foundation/NSObject.h>
#include <Foundation/NSString.h>

#include <qtobjc/Qt.h>
#include <qtobjc/QMetaObject.h>
#include <qtobjc/QChildEvent.h>
#include <qtobjc/QCloseEvent.h>
#include <qtobjc/QCustomEvent.h>
#include <qtobjc/QDragEnterEvent.h>
#include <qtobjc/QDragLeaveEvent.h>
#include <qtobjc/QDragMoveEvent.h>
#include <qtobjc/QDragResponseEvent.h>
#include <qtobjc/QDropEvent.h>
#include <qtobjc/QEvent.h>
#include <qtobjc/QFocusEvent.h>
#include <qtobjc/QHideEvent.h>
#include <qtobjc/QKeyEvent.h>
#include <qtobjc/QMouseEvent.h>
#include <qtobjc/QMoveEvent.h>
#include <qtobjc/QPaintEvent.h>
#include <qtobjc/QResizeEvent.h>
#include <qtobjc/QShowEvent.h>
#include <qtobjc/QTimerEvent.h>
#include <qtobjc/QWheelEvent.h>

@class QObject;
@class QSignal;
@class QConnection;
@class QEvent;
@class QVariant;
@class QTimerEvent;
@class QChildEvent;

@interface QObject : Qt 
- initWithObject: (QObject *)parent name: (NSString *)name;
- init;
- (void) dealloc;
- (NSString *) className;
- (NSString *) tr: (NSString *)arg1 string: (NSString *)arg2;
- (NSString *) trUtf8: (NSString *)arg1 string: (NSString *)arg2;
- (QMetaObject*) metaObject;
- (BOOL) event: (QEvent *)arg1;
- (BOOL) eventFilter: (QObject *)arg1 event: (QEvent *)arg2;
- (BOOL) isA: (NSString *)arg1;
- (BOOL) inherits: (NSString *)arg1;
- (NSString *) name;
- (NSString *) name: (NSString *)defaultName;
- setName: (NSString *)name;
- (BOOL) isWidgetType;
- (BOOL) highPriority;
- (BOOL) signalsBlocked;
- blockSignals: (BOOL)b;
- (int) startTimer: (int)interval;
- killTimer: (int)identifier;
- killTimers;
- (QObject*) child: (NSString *)objName inheritsClass: (NSString *)inheritsClass recursiveSearch: (BOOL)recursiveSearch;
- (QObject*) child: (NSString *)objName ;
- (NSArray *) children;
- (NSArray *) queryList: (NSString *)inheritsClass objName: (NSString *)objName regexpMatch: (BOOL)regexpMatch recursiveSearch: (BOOL)recursiveSearch;
- insertChild: (QObject *)arg1;
- removeChild: (QObject *)arg1;
- installEventFilter: (QObject *)arg1;
- removeEventFilter: (QObject *)arg1;
- (BOOL) connect: (QObject *)sender signal: (NSString *)signal slot: (NSString *)member;
- (BOOL) disconnect: (NSString *)signal receiver: (QObject *)receiver slot: (NSString *)member;
- (BOOL) disconnect;
- (BOOL) disconnect: (QObject *)receiver slot: (NSString *)member;
- (BOOL) disconnect: (QObject *)receiver ;
- dumpObjectTree;
- dumpObjectInfo;
- (BOOL) setProperty: (NSString *)name value: (QVariant *)value;
- (QVariant*) property: (NSString *)name;
- (QObject*) parent;
- deleteLater;
+ (NSArray *) objectTrees;
+ (BOOL) connect: (QObject *)sender signal: (NSString *)signal receiver: (QObject *)receiver slot: (NSString *)member;
+ (BOOL) disconnect: (QObject *)sender signal: (NSString *)signal receiver: (QObject *)receiver slot: (NSString *)member;
+ connectInternal: (QObject *)sender signal_index: (int)signal_index receiver: (QObject *)receiver membcode: (int)membcode member_index: (int)member_index;
+ (NSString *) tr: (NSString *)sourceText string: (NSString *)arg1;
+ (NSString *) trUtf8: (NSString *)sourceText string: (NSString *)arg1;
- (BOOL) activate_filters: (QEvent *)arg1;
//- (QConnectionList*) receivers: (NSString *)signal;
//- (QConnectionList*) receivers: (int)signal;
- activate_signal: (int)signal;
- activate_signal: (int)signal int: (int)arg1;
- activate_signal: (int)signal double: (double)arg1;
- activate_signal: (int)signal string: (NSString *)arg1;
- activate_signal_bool: (int)signal bool: (BOOL)arg1;
//- activate_signal: (QConnectionList*)clist o: (QUObject*)o;
- (QObject*) sender;
- connectNotify: (NSString *)signal;
- disconnectNotify: (NSString *)signal;
- (BOOL) checkConnectArgs: (NSString *)signal receiver: (QObject *)receiver slot: (NSString *)member;
//+ (NSString *) normalizeSignalSlot: (NSString *)signalSlot;

/** Emit a signal with no parameter */
- emit: (NSString *) signal;

/** Emit a signal with an int parameter */
- emit: (NSString *) signal intValue: (int) value;

/** Emit a signal with a void * parameter corresponding to an Objective-C instance */
- emit: (NSString *) signal value: value;
@end

/** Override these methods in subclasses of QObject to customise event handling behaviour */
@protocol QObjectEventHandling
- childEvent:(QChildEvent*) arg1;
- customEvent:(QCustomEvent*) arg1;
- timerEvent:(QTimerEvent*) arg1;
@end


#endif
