qapplication.h
上传用户:detong
上传日期:2022-06-22
资源大小:20675k
文件大小:13k
- /****************************************************************************
- **
- ** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
- ** Contact: Qt Software Information (qt-info@nokia.com)
- **
- ** This file is part of the QtGui module of the Qt Toolkit.
- **
- ** Commercial Usage
- ** Licensees holding valid Qt Commercial licenses may use this file in
- ** accordance with the Qt Commercial License Agreement provided with the
- ** Software or, alternatively, in accordance with the terms contained in
- ** a written agreement between you and Nokia.
- **
- **
- ** GNU General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU
- ** General Public License versions 2.0 or 3.0 as published by the Free
- ** Software Foundation and appearing in the file LICENSE.GPL included in
- ** the packaging of this file. Please review the following information
- ** to ensure GNU General Public Licensing requirements will be met:
- ** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
- ** http://www.gnu.org/copyleft/gpl.html. In addition, as a special
- ** exception, Nokia gives you certain additional rights. These rights
- ** are described in the Nokia Qt GPL Exception version 1.3, included in
- ** the file GPL_EXCEPTION.txt in this package.
- **
- ** Qt for Windows(R) Licensees
- ** As a special exception, Nokia, as the sole copyright holder for Qt
- ** Designer, grants users of the Qt/Eclipse Integration plug-in the
- ** right for the Qt/Eclipse Integration to link to functionality
- ** provided by Qt Designer and its related libraries.
- **
- ** If you are unsure which license is appropriate for your use, please
- ** contact the sales department at qt-sales@nokia.com.
- **
- ****************************************************************************/
- #ifndef QAPPLICATION_H
- #define QAPPLICATION_H
- #include <QtCore/qcoreapplication.h>
- #include <QtGui/qwindowdefs.h>
- #include <QtCore/qpoint.h>
- #include <QtCore/qsize.h>
- #include <QtGui/qcursor.h>
- #ifdef QT_INCLUDE_COMPAT
- # include <QtGui/qdesktopwidget.h>
- #endif
- #ifdef QT3_SUPPORT
- # include <QtGui/qwidget.h>
- # include <QtGui/qpalette.h>
- #endif
- #ifdef Q_WS_QWS
- # include <QtGui/qrgb.h>
- # include <QtGui/qtransportauth_qws.h>
- #endif
- QT_BEGIN_HEADER
- QT_BEGIN_NAMESPACE
- QT_MODULE(Gui)
- class QSessionManager;
- class QDesktopWidget;
- class QStyle;
- class QEventLoop;
- class QIcon;
- class QInputContext;
- template <typename T> class QList;
- class QLocale;
- #if defined(Q_WS_QWS)
- class QDecoration;
- #endif
- class QApplication;
- class QApplicationPrivate;
- #if defined(qApp)
- #undef qApp
- #endif
- #define qApp (static_cast<QApplication *>(QCoreApplication::instance()))
- class Q_GUI_EXPORT QApplication : public QCoreApplication
- {
- Q_OBJECT
- Q_PROPERTY(Qt::LayoutDirection layoutDirection READ layoutDirection WRITE setLayoutDirection)
- Q_PROPERTY(QIcon windowIcon READ windowIcon WRITE setWindowIcon)
- Q_PROPERTY(int cursorFlashTime READ cursorFlashTime WRITE setCursorFlashTime)
- Q_PROPERTY(int doubleClickInterval READ doubleClickInterval WRITE setDoubleClickInterval)
- Q_PROPERTY(int keyboardInputInterval READ keyboardInputInterval WRITE setKeyboardInputInterval)
- #ifndef QT_NO_WHEELEVENT
- Q_PROPERTY(int wheelScrollLines READ wheelScrollLines WRITE setWheelScrollLines)
- #endif
- Q_PROPERTY(QSize globalStrut READ globalStrut WRITE setGlobalStrut)
- Q_PROPERTY(int startDragTime READ startDragTime WRITE setStartDragTime)
- Q_PROPERTY(int startDragDistance READ startDragDistance WRITE setStartDragDistance)
- Q_PROPERTY(bool quitOnLastWindowClosed READ quitOnLastWindowClosed WRITE setQuitOnLastWindowClosed)
- #ifndef QT_NO_STYLE_STYLESHEET
- Q_PROPERTY(QString styleSheet READ styleSheet WRITE setStyleSheet)
- #endif
- #ifdef Q_OS_WINCE
- Q_PROPERTY(int autoMaximizeThreshold READ autoMaximizeThreshold WRITE setAutoMaximizeThreshold)
- #endif
- public:
- enum Type { Tty, GuiClient, GuiServer };
- #ifndef qdoc
- QApplication(int &argc, char **argv, int = QT_VERSION);
- QApplication(int &argc, char **argv, bool GUIenabled, int = QT_VERSION);
- QApplication(int &argc, char **argv, Type, int = QT_VERSION);
- #if defined(Q_WS_X11)
- QApplication(Display* dpy, Qt::HANDLE visual = 0, Qt::HANDLE cmap = 0, int = QT_VERSION);
- QApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE cmap= 0, int = QT_VERSION);
- #endif
- #endif
- virtual ~QApplication();
- static Type type();
- static QStyle *style();
- static void setStyle(QStyle*);
- static QStyle *setStyle(const QString&);
- enum ColorSpec { NormalColor=0, CustomColor=1, ManyColor=2 };
- static int colorSpec();
- static void setColorSpec(int);
- #ifndef QT_NO_CURSOR
- static QCursor *overrideCursor();
- static void setOverrideCursor(const QCursor &);
- static void changeOverrideCursor(const QCursor &);
- static void restoreOverrideCursor();
- #endif
- static QPalette palette();
- static QPalette palette(const QWidget *);
- static QPalette palette(const char *className);
- static void setPalette(const QPalette &, const char* className = 0);
- static QFont font();
- static QFont font(const QWidget*);
- static QFont font(const char *className);
- static void setFont(const QFont &, const char* className = 0);
- static QFontMetrics fontMetrics();
- static void setWindowIcon(const QIcon &icon);
- static QIcon windowIcon();
- #ifdef QT3_SUPPORT
- static QT3_SUPPORT QWidget *mainWidget();
- static QT3_SUPPORT void setMainWidget(QWidget *);
- #endif
- static QWidgetList allWidgets();
- static QWidgetList topLevelWidgets();
- static QDesktopWidget *desktop();
- static QWidget *activePopupWidget();
- static QWidget *activeModalWidget();
- #ifndef QT_NO_CLIPBOARD
- static QClipboard *clipboard();
- #endif
- static QWidget *focusWidget();
- static QWidget *activeWindow();
- static void setActiveWindow(QWidget* act);
- static QWidget *widgetAt(const QPoint &p);
- static inline QWidget *widgetAt(int x, int y) { return widgetAt(QPoint(x, y)); }
- static QWidget *topLevelAt(const QPoint &p);
- static inline QWidget *topLevelAt(int x, int y) { return topLevelAt(QPoint(x, y)); }
- static void syncX();
- static void beep();
- static void alert(QWidget *widget, int duration = 0);
- static Qt::KeyboardModifiers keyboardModifiers();
- static Qt::MouseButtons mouseButtons();
- static void setDesktopSettingsAware(bool);
- static bool desktopSettingsAware();
- static void setCursorFlashTime(int);
- static int cursorFlashTime();
- static void setDoubleClickInterval(int);
- static int doubleClickInterval();
- static void setKeyboardInputInterval(int);
- static int keyboardInputInterval();
- #ifndef QT_NO_WHEELEVENT
- static void setWheelScrollLines(int);
- static int wheelScrollLines();
- #endif
- static void setGlobalStrut(const QSize &);
- static QSize globalStrut();
- static void setStartDragTime(int ms);
- static int startDragTime();
- static void setStartDragDistance(int l);
- static int startDragDistance();
- static void setLayoutDirection(Qt::LayoutDirection direction);
- static Qt::LayoutDirection layoutDirection();
- static inline bool isRightToLeft() { return layoutDirection() == Qt::RightToLeft; }
- static inline bool isLeftToRight() { return layoutDirection() == Qt::LeftToRight; }
- static bool isEffectEnabled(Qt::UIEffect);
- static void setEffectEnabled(Qt::UIEffect, bool enable = true);
- #if defined(Q_WS_MAC)
- virtual bool macEventFilter(EventHandlerCallRef, EventRef);
- #endif
- #if defined(Q_WS_X11)
- virtual bool x11EventFilter(XEvent *);
- virtual int x11ClientMessage(QWidget*, XEvent*, bool passive_only);
- int x11ProcessEvent(XEvent*);
- #endif
- #if defined(Q_WS_QWS)
- virtual bool qwsEventFilter(QWSEvent *);
- int qwsProcessEvent(QWSEvent*);
- void qwsSetCustomColors(QRgb *colortable, int start, int numColors);
- #ifndef QT_NO_QWS_MANAGER
- static QDecoration &qwsDecoration();
- static void qwsSetDecoration(QDecoration *);
- static QDecoration *qwsSetDecoration(const QString &decoration);
- #endif
- #endif
- #if defined(Q_WS_WIN)
- void winFocus(QWidget *, bool);
- static void winMouseButtonUp();
- #endif
- #ifndef QT_NO_SESSIONMANAGER
- // session management
- bool isSessionRestored() const;
- QString sessionId() const;
- QString sessionKey() const;
- virtual void commitData(QSessionManager& sm);
- virtual void saveState(QSessionManager& sm);
- #endif
- void setInputContext(QInputContext *);
- QInputContext *inputContext() const;
- static QLocale keyboardInputLocale();
- static Qt::LayoutDirection keyboardInputDirection();
- static int exec();
- bool notify(QObject *, QEvent *);
- static void setQuitOnLastWindowClosed(bool quit);
- static bool quitOnLastWindowClosed();
- #ifdef QT_KEYPAD_NAVIGATION
- static void setKeypadNavigationEnabled(bool);
- static bool keypadNavigationEnabled();
- #endif
- Q_SIGNALS:
- void lastWindowClosed();
- void focusChanged(QWidget *old, QWidget *now);
- #ifndef QT_NO_SESSIONMANAGER
- void commitDataRequest(QSessionManager &sessionManager);
- void saveStateRequest(QSessionManager &sessionManager);
- #endif
- public:
- QString styleSheet() const;
- public Q_SLOTS:
- #ifndef QT_NO_STYLE_STYLESHEET
- void setStyleSheet(const QString& sheet);
- #endif
- #ifdef Q_OS_WINCE
- void setAutoMaximizeThreshold(const int threshold);
- int autoMaximizeThreshold() const;
- #endif
- static void closeAllWindows();
- static void aboutQt();
- protected:
- #if defined(Q_WS_QWS)
- void setArgs(int, char **);
- #endif
- bool event(QEvent *);
- bool compressEvent(QEvent *, QObject *receiver, QPostEventList *);
- #ifdef QT3_SUPPORT
- public:
- static inline QT3_SUPPORT void setReverseLayout(bool b) { setLayoutDirection(b?Qt::RightToLeft:Qt::LeftToRight); }
- static inline bool QT3_SUPPORT reverseLayout() { return layoutDirection() == Qt::RightToLeft; }
- static QT3_SUPPORT Qt::Alignment horizontalAlignment(Qt::Alignment align);
- typedef int ColorMode;
- enum { NormalColors = NormalColor, CustomColors = CustomColor };
- static inline QT3_SUPPORT ColorMode colorMode() { return static_cast<ColorMode>(colorSpec()); }
- static inline QT3_SUPPORT void setColorMode(ColorMode mode) { setColorSpec(int(mode)); }
- #if defined(Q_OS_WIN32) || defined(Q_OS_CYGWIN)
- static QT3_SUPPORT Qt::WindowsVersion winVersion() { return (Qt::WindowsVersion)QSysInfo::WindowsVersion; }
- #endif
- #if defined(Q_OS_MAC)
- static QT3_SUPPORT Qt::MacintoshVersion macVersion() { return (Qt::MacintoshVersion)QSysInfo::MacintoshVersion; }
- #endif
- # ifndef QT_NO_CURSOR
- inline static QT3_SUPPORT void setOverrideCursor(const QCursor &cursor, bool replace)
- { if (replace) changeOverrideCursor(cursor); else setOverrideCursor(cursor); }
- # endif
- inline static QT3_SUPPORT bool hasGlobalMouseTracking() {return true;}
- inline static QT3_SUPPORT void setGlobalMouseTracking(bool) {};
- inline static QT3_SUPPORT void flushX() { flush(); }
- static inline QT3_SUPPORT void setWinStyleHighlightColor(const QColor &c) {
- QPalette p(palette());
- p.setColor(QPalette::Highlight, c);
- setPalette(p);
- }
- static inline QT3_SUPPORT const QColor &winStyleHighlightColor()
- { return palette().color(QPalette::Active, QPalette::Highlight); }
- static inline QT3_SUPPORT void setPalette(const QPalette &pal, bool, const char* className = 0)
- { setPalette(pal, className); };
- static inline QT3_SUPPORT void setFont(const QFont &font, bool, const char* className = 0)
- { setFont(font, className); }
- static inline QT3_SUPPORT QWidget *widgetAt(int x, int y, bool child)
- { QWidget *w = widgetAt(x, y); return child ? w : (w ? w->window() : 0); }
- static inline QT3_SUPPORT QWidget *widgetAt(const QPoint &p, bool child)
- { QWidget *w = widgetAt(p); return child ? w : (w ? w->window() : 0); }
- #endif // QT3_SUPPORT
- #if defined(Q_INTERNAL_QAPP_SRC) || defined(qdoc)
- QApplication(int &argc, char **argv);
- QApplication(int &argc, char **argv, bool GUIenabled);
- QApplication(int &argc, char **argv, Type);
- #if defined(Q_WS_X11)
- QApplication(Display* dpy, Qt::HANDLE visual = 0, Qt::HANDLE cmap = 0);
- QApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE cmap= 0);
- #endif
- #endif
- private:
- Q_DISABLE_COPY(QApplication)
- Q_DECLARE_PRIVATE(QApplication)
- friend class QWidget;
- friend class QWidgetPrivate;
- friend class QETWidget;
- friend class Q3AccelManager;
- friend class QTranslator;
- friend class QWidgetAnimator;
- #ifndef QT_NO_SHORTCUT
- friend class QShortcut;
- #endif
- friend class QAction;
- #if defined(Q_WS_QWS)
- friend class QInputContext;
- friend class QWSDirectPainterSurface;
- friend class QDirectPainter;
- friend class QDirectPainterPrivate;
- #endif
- #if defined(Q_WS_MAC) || defined(Q_WS_X11)
- Q_PRIVATE_SLOT(d_func(), void _q_alertTimeOut())
- #endif
- };
- QT_END_NAMESPACE
- QT_END_HEADER
- #endif // QAPPLICATION_H