#ifndef QCOREAPPLICATION_H
#define QCOREAPPLICATION_H 
#include <QtCore/qobject.h>
#include <QtCore/qcoreevent.h>
#include <QtCore/qeventloop.h>
typedef enum QtValidLicenseForCoreModule QtCoreModule;
struct QTranslator;
struct QPostEventList;
class QCoreApplication: public 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 QCoreApplicationPrivate* d_func();
   private: inline struct QCoreApplicationPrivate const * d_func() const
   public: QCoreApplication(int& argc, char* * argv);
   public: virtual ~QCoreApplication();
#ifdef QT_DEPRECATED
   public: static int argc();
   public: static char* * argv();
#endif
   public: static struct QStringList arguments();
   public: static void setAttribute(enum Qt::ApplicationAttribute attribute, bool on = 1);
   public: static bool testAttribute(enum Qt::ApplicationAttribute attribute);
   public: static void setOrganizationDomain(class QString const & orgDomain);
   public: static class QString organizationDomain();
   public: static void setOrganizationName(class QString const & orgName);
   public: static class QString organizationName();
   public: static void setApplicationName(class QString const & application);
   public: static class QString applicationName();
   public: static inline class QCoreApplication* instance();
   public: static int exec();
   public: static void processEvents(class QFlags < enum QEventLoop::ProcessEventsFlag > flags = QEventLoop::AllEvents);
   public: static void processEvents(class QFlags < enum QEventLoop::ProcessEventsFlag > flags, int maxtime);
   public: static void exit(int retcode = 0);
   public: static void postEvent(class QObject* receiver, class QEvent* event);
   public: static void sendPostedEvents(class QObject* receiver, int event_type);
   public: static void removePostedEvents(class QObject* receiver);
   public: static bool hasPendingEvents();
   public: virtual bool notify(class QObject*, class QEvent*);
   public: static bool startingUp();
   public: static bool closingDown();
   public: static class QString applicationDirPath();
   public: static class QString applicationFilePath();
#ifndef QT_NO_LIBRARY
   public: static void setLibraryPaths(struct QStringList const &);
   public: static struct QStringList libraryPaths();
   public: static void addLibraryPath(class QString const &);
   public: static void removeLibraryPath(class QString const &);
#endif // QT_NO_LIBRARY
#ifndef QT_NO_TRANSLATION
   public: static void installTranslator(struct QTranslator* messageFile);
   public: static void removeTranslator(struct QTranslator* messageFile);
#endif
   public: enum Encoding{
      CodecForTr = 0,
      UnicodeUTF8 = 1,
      DefaultCodec = 0,
   };
   public: static class QString translate(char const * context, char const * key, char const * comment = 0, enum QCoreApplication::Encoding encoding = QCoreApplication::CodecForTr);
   public: static class QString translate(char const * context, char const * key, char const * comment, enum QCoreApplication::Encoding encoding, int n);
   public: static void flush();
#ifdef Q_OS_UNIX
   public: static void watchUnixSignal(int signal, bool watch);
#endif
   public: typedef bool (* EventFilter)(void*, long int*);
   public: bool (* setEventFilter(bool (* filter)(void*, long int*)) )(void*, long int*);
   public: bool filterEvent(void* message, long int* result);
   public: static void quit();
   protected: void aboutToQuit();
   protected: void unixSignal(int);
   protected: virtual bool event(class QEvent*);
   protected: virtual bool compressEvent(class QEvent*, class QObject* receiver, struct QPostEventList*);
   protected: QCoreApplication(struct QCoreApplicationPrivate& p);
   private: void init();
   private: static class QCoreApplication* self;
   public: static inline bool sendEvent(class QObject* receiver, class QEvent* event);
   private: static inline bool sendSpontaneousEvent(class QObject* receiver, class QEvent* event);
   public: static inline void sendPostedEvents();
   friend struct QCoreApplicationPrivate;
   friend struct QEventDispatcherUNIXPrivate;
   friend struct QApplication;
   friend struct QApplicationPrivate;
   friend struct QETWidget;
   friend struct Q3AccelManager;
   friend struct QShortcutMap;
   friend struct QWidget;
   friend struct QWidgetPrivate;
   friend bool qt_sendSpontaneousEvent(class QObject*, class QEvent*);
   friend class QString qAppName();
};
struct QEventDispatcherUNIXPrivate;
struct QWidgetPrivate;
bool qt_sendSpontaneousEvent(class QObject*, class QEvent*);
#define Q_DECLARE_TR_FUNCTIONS(context) public: static inline QString tr(const char *sourceText, const char *comment = 0) { return QCoreApplication::translate(#context, sourceText, comment); } static inline QString trUtf8(const char *sourceText, const char *comment = 0) { return QCoreApplication::translate(#context, sourceText, comment, QCoreApplication::UnicodeUTF8); } static inline QString tr(const char *sourceText, const char *comment, int n) { return QCoreApplication::translate(#context, sourceText, comment, QCoreApplication::CodecForTr, n); } static inline QString trUtf8(const char *sourceText, const char *comment, int n) { return QCoreApplication::translate(#context, sourceText, comment, QCoreApplication::UnicodeUTF8, n); } private:

typedef void (* QtCleanUpFunction)();
void qAddPostRoutine(QtCleanUpFunction);
void qRemovePostRoutine(QtCleanUpFunction);
class QString qAppName();
#endif // QCOREAPPLICATION_H