#ifndef QOBJECT_H
#define QOBJECT_H 
#ifndef QT_NO_QOBJECT
#include <QtCore/qobjectdefs.h>
#include <QtCore/qstring.h>
#include <QtCore/qbytearray.h>
#include <QtCore/qlist.h>
typedef enum QtValidLicenseForCoreModule QtCoreModule;
struct QEvent;
struct QTimerEvent;
struct QChildEvent;
struct QVariant;
struct QObjectPrivate;
struct QThread;
struct QWidget;
typedef class QList < class QObject* > QObjectList;
class QObjectData{
   public: virtual ~QObjectData() = 0;
   public: class QObject* q_ptr;
   public: class QObject* parent;
   public: QObjectList children;
   public: unsigned int isWidget:1;
   public: unsigned int pendTimer:1;
   public: unsigned int blockSig:1;
   public: unsigned int wasDeleted:1;
   public: unsigned int ownObjectName:1;
   public: unsigned int sendChildEvents:1;
   public: unsigned int receiveChildEvents:1;
   public: unsigned int unused:25;
   public: int postedEvents;
#ifdef QT3_SUPPORT
#else
   public: int reserved;
#endif
};
class QObject{
   public: virtual struct QMetaObject const * metaObject() const
   public: static struct QMetaObject const staticMetaObject;
   public: virtual void* qt_metacast(char const *);
   public: static inline class QString tr(char const * s, char const * c = 0);
   public: static inline class QString trUtf8(char const * s, char const * c = 0);
   public: static inline class QString tr(char const * s, char const * c, int n);
   public: static inline class QString trUtf8(char const * s, char const * c, int n);
   public: virtual int qt_metacall(enum QMetaObject::Call, int, void* *);
   private: inline struct QObjectPrivate* d_func();
   private: inline struct QObjectPrivate const * d_func() const
   public: explicit QObject(class QObject* parent = 0);
   public: virtual ~QObject();
   public: virtual bool event(struct QEvent*);
   public: virtual bool eventFilter(class QObject*, struct QEvent*);
   public: class QString objectName() const
   public: void setObjectName(class QString const & name);
   public: inline bool isWidgetType() const
   public: inline bool signalsBlocked() const
   public: bool blockSignals(bool b);
   public: struct QThread* thread() const
   public: void moveToThread(struct QThread* thread);
   public: int startTimer(int interval);
   public: void killTimer(int id);
#ifndef QT_NO_MEMBER_TEMPLATES
   public: template < typename T > inline T findChild(class QString const & name) const
   public: template < typename T > inline class QList < T > findChildren(class QString const & name) const
#ifndef QT_NO_REGEXP
   public: template < typename T > inline class QList < T > findChildren(struct QRegExp const & re) const
#endif
#endif
   public: inline QObjectList const & children() const
   public: void setParent(class QObject*);
   public: void installEventFilter(class QObject*);
   public: void removeEventFilter(class QObject*);
   public: static bool connect(class QObject const * sender, char const * signal, class QObject const * receiver, char const * member, enum Qt::ConnectionType = Qt::AutoConnection);
   public: static bool disconnect(class QObject const * sender, char const * signal, class QObject const * receiver, char const * member);
   public: inline bool disconnect(char const * signal = 0, class QObject const * receiver = 0, char const * member = 0);
   public: inline bool disconnect(class QObject const * receiver, char const * member = 0);
   public: void dumpObjectTree();
   public: void dumpObjectInfo();
#ifndef QT_NO_PROPERTIES
   public: bool setProperty(char const * name, struct QVariant const & value);
   public: struct QVariant property(char const * name) const
   public: class QList < class QByteArray > dynamicPropertyNames() const
#endif // QT_NO_PROPERTIES
#ifndef QT_NO_USERDATA
   public: static uint registerUserData();
   public: void setUserData(uint id, class QObjectUserData* data);
   public: class QObjectUserData* userData(uint id) const
#endif // QT_NO_USERDATA
   protected: void destroyed(class QObject* = 0);
   public: inline class QObject* parent() const
   public: inline bool inherits(char const * classname) const
   public: void deleteLater();
   protected: class QObject* sender() const
   protected: int receivers(char const * signal) const
   protected: virtual void timerEvent(struct QTimerEvent*);
   protected: virtual void childEvent(struct QChildEvent*);
   protected: virtual void customEvent(struct QEvent*);
   protected: virtual void connectNotify(char const * signal);
   protected: virtual void disconnectNotify(char const * signal);
   protected: QObject(struct QObjectPrivate& dd, class QObject* parent = 0);
   protected: class QObjectData* d_ptr;
   protected: static struct QMetaObject const staticQtMetaObject;
   private: QObject(QObject&);
   private: class QObject& operator =(QObject&);
   public: inline bool connect(class QObject const * asender, char const * asignal, char const * amember, enum Qt::ConnectionType atype = Qt::AutoConnection) const
   friend struct QObjectPrivate;
   friend struct QMetaObject;
   friend struct QApplication;
   friend struct QApplicationPrivate;
   friend struct QCoreApplication;
   friend struct QCoreApplicationPrivate;
   friend struct QWidget;
   friend struct QThreadData;
};
struct QApplication;
struct QApplicationPrivate;
struct QCoreApplication;
struct QCoreApplicationPrivate;
struct QThreadData;
#ifndef QT_NO_USERDATA
class QObjectUserData{
   public: virtual ~QObjectUserData();
};
#endif
void qt_qFindChildren_helper(class QObject const * parent, class QString const & name, struct QRegExp const * re, struct QMetaObject const & mo, class QList < void* >* list);
class QObject* qt_qFindChild_helper(class QObject const * parent, class QString const & name, struct QMetaObject const & mo);
#if defined Q_CC_MSVC && _MSC_VER < 1300
#else
template < typename T > inline T qFindChild(class QObject const * o, class QString const & name);
template < typename T > inline class QList < T > qFindChildren(class QObject const * o, class QString const & name);
#ifndef QT_NO_REGEXP
template < typename T > inline class QList < T > qFindChildren(class QObject const * o, struct QRegExp const & re);
#endif
template < typename T > inline T qobject_cast(class QObject* object);
template < typename T > inline T qobject_cast(class QObject const * object);
#ifndef Q_MOC_RUN
#define Q_DECLARE_INTERFACE(IFace,IId) template <> inline IFace *qobject_cast<IFace *>(QObject *object) { return reinterpret_cast<IFace *>((object ? object->qt_metacast(IId) : 0)); } template <> inline IFace *qobject_cast<IFace *>(const QObject *object) { return reinterpret_cast<IFace *>((object ? const_cast<QObject *>(object)->qt_metacast(IId) : 0)); }

#endif // Q_MOC_RUN
#endif
#ifndef QT_NO_DEBUG_STREAM
struct QDebug operator <<(struct QDebug, class QObject const *);
#endif
#endif
#endif // QOBJECT_H