The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#include <qapplication.h>

suicidal virtual class QApplication : virtual QObject {
    enum ColorSpec { NormalColor, CustomColor, ManyColor };

    QApplication(int &{@argc(1)}, char **{argv});
    virtual ~QApplication();
    static QWidget *activeModalWidget();
    static QWidget *activePopupWidget();
    QWidget *activeWindow() const;
    static QWidgetList *allWidgets();
    static void beep();
    static QClipboard *clipboard();
    void closeAllWindows() slot;
    static bool closingDown();
    static int colorSpec();
    virtual void commitData(QSessionManager &);
    static int cursorFlashTime();
;    QTextCodec *defaultCodec() const;
    static QWidget *desktop();
    static bool desktopSettingsAware();
    static int doubleClickInterval();
    int enter_loop();
    int exec();
    static void exit(int = 0);
    void exit_loop();
    static void flushX();
    QWidget *focusWidget() const;
    static QFont font(const QWidget * = 0);
    static QFontMetrics fontMetrics();
    static bool hasGlobalMouseTracking();
;    void installTranslator(QTranslator *);
    bool isSessionRestored() const;
    int loopLevel() const;
    QWidget *mainWidget() const;
    virtual bool notify(QObject *, QEvent *);
    static QCursor *overrideCursor();
    static QPalette palette(const QWidget * = 0);
    virtual void polish(QWidget *);
    static void postEvent(QObject *, QEvent *);
    void processEvents();
    void processEvents(int);
    void processOneEvent();
    void quit() slot;
    static void removePostedEvents(QObject *);
;    void removeTranslator(QTranslator *);
    static void restoreOverrideCursor();
    virtual void saveState(QSessionManager &);
    static bool sendEvent(QObject *, QEvent *);
    static void sendPostedEvents();
    static void sendPostedEvents(QObject *, int);
    QString sessionId() const;
    static void setColorSpec(int);
    static void setCursorFlashTime(int);
;    void setDefaultCodec(QTextCodec *);
    static void setDesktopSettingsAware(bool);
    static void setDoubleClickInterval(int);
    static void setFont(const QFont &, bool = FALSE, const char * = 0);
    static void setGlobalMouseTracking(bool);
    virtual void setMainWidget(QWidget *);
    static void setOverrideCursor(const QCursor &, bool = FALSE);
    static void setPalette(const QPalette &, bool = FALSE, const char * = 0);
    static void setStyle(QStyle *);
    static void setWinStyleHighlightColor(const QColor &);
    static bool startingUp();
    static QStyle &style();
    static void syncX();
    static QWidgetList *topLevelWidgets();
;    QString translate(const char *, const char *) const;
    static QWidget *widgetAt(const QPoint &, bool = FALSE);
    static QWidget *widgetAt(int, int, bool = FALSE);
    static const QColor &winStyleHighlightColor();
protected:
    void aboutToQuit() signal;
    void lastWindowClosed() signal;
} Qt::Application;