qwidget.h

Go to the documentation of this file.
00001 /****************************************************************************
00002 **
00003 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
00004 ** All rights reserved.
00005 ** Contact: Nokia Corporation (qt-info@nokia.com)
00006 **
00007 ** This file is part of the QtGui module of the Qt Toolkit.
00008 **
00009 ** $QT_BEGIN_LICENSE:LGPL$
00010 ** Commercial Usage
00011 ** Licensees holding valid Qt Commercial licenses may use this file in
00012 ** accordance with the Qt Commercial License Agreement provided with the
00013 ** Software or, alternatively, in accordance with the terms contained in
00014 ** a written agreement between you and Nokia.
00015 **
00016 ** GNU Lesser General Public License Usage
00017 ** Alternatively, this file may be used under the terms of the GNU Lesser
00018 ** General Public License version 2.1 as published by the Free Software
00019 ** Foundation and appearing in the file LICENSE.LGPL included in the
00020 ** packaging of this file.  Please review the following information to
00021 ** ensure the GNU Lesser General Public License version 2.1 requirements
00022 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
00023 **
00024 ** In addition, as a special exception, Nokia gives you certain additional
00025 ** rights.  These rights are described in the Nokia Qt LGPL Exception
00026 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this module.
00027 **
00028 ** GNU General Public License Usage
00029 ** Alternatively, this file may be used under the terms of the GNU
00030 ** General Public License version 3.0 as published by the Free Software
00031 ** Foundation and appearing in the file LICENSE.GPL included in the
00032 ** packaging of this file.  Please review the following information to
00033 ** ensure the GNU General Public License version 3.0 requirements will be
00034 ** met: http://www.gnu.org/copyleft/gpl.html.
00035 **
00036 ** If you have questions regarding the use of this file, please contact
00037 ** Nokia at qt-info@nokia.com.
00038 ** $QT_END_LICENSE$
00039 **
00040 ****************************************************************************/
00041 
00042 #ifndef QWIDGET_H
00043 #define QWIDGET_H
00044 
00045 #include <QtGui/qwindowdefs.h>
00046 #include <QtCore/qobject.h>
00047 #include <QtCore/qmargins.h>
00048 #include <QtGui/qpaintdevice.h>
00049 #include <QtGui/qpalette.h>
00050 #include <QtGui/qfont.h>
00051 #include <QtGui/qfontmetrics.h>
00052 #include <QtGui/qfontinfo.h>
00053 #include <QtGui/qsizepolicy.h>
00054 #include <QtGui/qregion.h>
00055 #include <QtGui/qbrush.h>
00056 #include <QtGui/qcursor.h>
00057 #include <QtGui/qkeysequence.h>
00058 
00059 #ifdef QT_INCLUDE_COMPAT
00060 #include <QtGui/qevent.h>
00061 #endif
00062 
00063 QT_BEGIN_HEADER
00064 
00065 QT_BEGIN_NAMESPACE
00066 
00067 QT_MODULE(Gui)
00068 
00069 class QLayout;
00070 class QWSRegionManager;
00071 class QStyle;
00072 class QAction;
00073 class QVariant;
00074 
00075 class QActionEvent;
00076 class QMouseEvent;
00077 class QWheelEvent;
00078 class QHoverEvent;
00079 class QKeyEvent;
00080 class QFocusEvent;
00081 class QPaintEvent;
00082 class QMoveEvent;
00083 class QResizeEvent;
00084 class QCloseEvent;
00085 class QContextMenuEvent;
00086 class QInputMethodEvent;
00087 class QTabletEvent;
00088 class QDragEnterEvent;
00089 class QDragMoveEvent;
00090 class QDragLeaveEvent;
00091 class QDropEvent;
00092 class QShowEvent;
00093 class QHideEvent;
00094 class QInputContext;
00095 class QIcon;
00096 class QWindowSurface;
00097 class QLocale;
00098 class QGraphicsProxyWidget;
00099 class QGraphicsEffect;
00100 #if defined(Q_WS_X11)
00101 class QX11Info;
00102 #endif
00103 
00104 class QWidgetData
00105 {
00106 public:
00107     WId winid;
00108     uint widget_attributes;
00109     Qt::WindowFlags window_flags;
00110     uint window_state : 4;
00111     uint focus_policy : 4;
00112     uint sizehint_forced :1;
00113     uint is_closing :1;
00114     uint in_show : 1;
00115     uint in_set_window_state : 1;
00116     mutable uint fstrut_dirty : 1;
00117     uint context_menu_policy : 3;
00118     uint window_modality : 2;
00119     uint in_destructor : 1;
00120     uint unused : 13;
00121     QRect crect;
00122     mutable QPalette pal;
00123     QFont fnt;
00124 #if defined(Q_WS_QWS)
00125 //    QRegion req_region;                 // Requested region
00126 //     mutable QRegion paintable_region;   // Paintable region
00127 //     mutable bool paintable_region_dirty;// needs to be recalculated
00128 //     mutable QRegion alloc_region;       // Allocated region
00129 //     mutable bool alloc_region_dirty;    // needs to be recalculated
00130 //     mutable int overlapping_children;   // Handle overlapping children
00131 
00132     int alloc_region_index;
00133 //    int alloc_region_revision;
00134 #endif
00135     QRect wrect;
00136 };
00137 
00138 class QWidgetPrivate;
00139 
00140 class Q_GUI_EXPORT QWidget : public QObject, public QPaintDevice
00141 {
00142     Q_OBJECT
00143     Q_DECLARE_PRIVATE(QWidget)
00144 
00145     Q_PROPERTY(bool modal READ isModal)
00146     Q_PROPERTY(Qt::WindowModality windowModality READ windowModality WRITE setWindowModality)
00147     Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled)
00148     Q_PROPERTY(QRect geometry READ geometry WRITE setGeometry)
00149     Q_PROPERTY(QRect frameGeometry READ frameGeometry)
00150     Q_PROPERTY(QRect normalGeometry READ normalGeometry)
00151     Q_PROPERTY(int x READ x)
00152     Q_PROPERTY(int y READ y)
00153     Q_PROPERTY(QPoint pos READ pos WRITE move DESIGNABLE false STORED false)
00154     Q_PROPERTY(QSize frameSize READ frameSize)
00155     Q_PROPERTY(QSize size READ size WRITE resize DESIGNABLE false STORED false)
00156     Q_PROPERTY(int width READ width)
00157     Q_PROPERTY(int height READ height)
00158     Q_PROPERTY(QRect rect READ rect)
00159     Q_PROPERTY(QRect childrenRect READ childrenRect)
00160     Q_PROPERTY(QRegion childrenRegion READ childrenRegion)
00161     Q_PROPERTY(QSizePolicy sizePolicy READ sizePolicy WRITE setSizePolicy)
00162     Q_PROPERTY(QSize minimumSize READ minimumSize WRITE setMinimumSize)
00163     Q_PROPERTY(QSize maximumSize READ maximumSize WRITE setMaximumSize)
00164     Q_PROPERTY(int minimumWidth READ minimumWidth WRITE setMinimumWidth STORED false DESIGNABLE false)
00165     Q_PROPERTY(int minimumHeight READ minimumHeight WRITE setMinimumHeight STORED false DESIGNABLE false)
00166     Q_PROPERTY(int maximumWidth READ maximumWidth WRITE setMaximumWidth STORED false DESIGNABLE false)
00167     Q_PROPERTY(int maximumHeight READ maximumHeight WRITE setMaximumHeight STORED false DESIGNABLE false)
00168     Q_PROPERTY(QSize sizeIncrement READ sizeIncrement WRITE setSizeIncrement)
00169     Q_PROPERTY(QSize baseSize READ baseSize WRITE setBaseSize)
00170     Q_PROPERTY(QPalette palette READ palette WRITE setPalette)
00171     Q_PROPERTY(QFont font READ font WRITE setFont)
00172 #ifndef QT_NO_CURSOR
00173     Q_PROPERTY(QCursor cursor READ cursor WRITE setCursor RESET unsetCursor)
00174 #endif
00175     Q_PROPERTY(bool mouseTracking READ hasMouseTracking WRITE setMouseTracking)
00176     Q_PROPERTY(bool isActiveWindow READ isActiveWindow)
00177     Q_PROPERTY(Qt::FocusPolicy focusPolicy READ focusPolicy WRITE setFocusPolicy)
00178     Q_PROPERTY(bool focus READ hasFocus)
00179     Q_PROPERTY(Qt::ContextMenuPolicy contextMenuPolicy READ contextMenuPolicy WRITE setContextMenuPolicy)
00180     Q_PROPERTY(bool updatesEnabled READ updatesEnabled WRITE setUpdatesEnabled DESIGNABLE false)
00181     Q_PROPERTY(bool visible READ isVisible WRITE setVisible DESIGNABLE false)
00182     Q_PROPERTY(bool minimized READ isMinimized)
00183     Q_PROPERTY(bool maximized READ isMaximized)
00184     Q_PROPERTY(bool fullScreen READ isFullScreen)
00185     Q_PROPERTY(QSize sizeHint READ sizeHint)
00186     Q_PROPERTY(QSize minimumSizeHint READ minimumSizeHint)
00187     Q_PROPERTY(bool acceptDrops READ acceptDrops WRITE setAcceptDrops)
00188     Q_PROPERTY(QString windowTitle READ windowTitle WRITE setWindowTitle DESIGNABLE isWindow)
00189     Q_PROPERTY(QIcon windowIcon READ windowIcon WRITE setWindowIcon DESIGNABLE isWindow)
00190     Q_PROPERTY(QString windowIconText READ windowIconText WRITE setWindowIconText DESIGNABLE isWindow)
00191     Q_PROPERTY(double windowOpacity READ windowOpacity WRITE setWindowOpacity DESIGNABLE isWindow)
00192     Q_PROPERTY(bool windowModified READ isWindowModified WRITE setWindowModified DESIGNABLE isWindow)
00193 #ifndef QT_NO_TOOLTIP
00194     Q_PROPERTY(QString toolTip READ toolTip WRITE setToolTip)
00195 #endif
00196 #ifndef QT_NO_STATUSTIP
00197     Q_PROPERTY(QString statusTip READ statusTip WRITE setStatusTip)
00198 #endif
00199 #ifndef QT_NO_WHATSTHIS
00200     Q_PROPERTY(QString whatsThis READ whatsThis WRITE setWhatsThis)
00201 #endif
00202 #ifndef QT_NO_ACCESSIBILITY
00203     Q_PROPERTY(QString accessibleName READ accessibleName WRITE setAccessibleName)
00204     Q_PROPERTY(QString accessibleDescription READ accessibleDescription WRITE setAccessibleDescription)
00205 #endif
00206     Q_PROPERTY(Qt::LayoutDirection layoutDirection READ layoutDirection WRITE setLayoutDirection RESET unsetLayoutDirection)
00207     QDOC_PROPERTY(Qt::WindowFlags windowFlags READ windowFlags WRITE setWindowFlags)
00208     Q_PROPERTY(bool autoFillBackground READ autoFillBackground WRITE setAutoFillBackground)
00209 #ifndef QT_NO_STYLE_STYLESHEET
00210     Q_PROPERTY(QString styleSheet READ styleSheet WRITE setStyleSheet)
00211 #endif
00212     Q_PROPERTY(QLocale locale READ locale WRITE setLocale RESET unsetLocale)
00213     Q_PROPERTY(QString windowFilePath READ windowFilePath WRITE setWindowFilePath DESIGNABLE isWindow)
00214     Q_PROPERTY(Qt::InputMethodHints inputMethodHints READ inputMethodHints WRITE setInputMethodHints)
00215 
00216 public:
00217     enum RenderFlag {
00218         DrawWindowBackground = 0x1,
00219         DrawChildren = 0x2,
00220         IgnoreMask = 0x4
00221     };
00222     Q_DECLARE_FLAGS(RenderFlags, RenderFlag)
00223 
00224     explicit QWidget(QWidget* parent = 0, Qt::WindowFlags f = 0);
00225 #ifdef QT3_SUPPORT
00226     QT3_SUPPORT_CONSTRUCTOR QWidget(QWidget* parent, const char *name, Qt::WindowFlags f = 0);
00227 #endif
00228     ~QWidget();
00229 
00230     int devType() const;
00231 
00232     WId winId() const;
00233     void createWinId(); // internal, going away
00234     inline WId internalWinId() const { return data->winid; }
00235     WId effectiveWinId() const;
00236 
00237     // GUI style setting
00238     QStyle *style() const;
00239     void setStyle(QStyle *);
00240     // Widget types and states
00241 
00242     bool isTopLevel() const;
00243     bool isWindow() const;
00244 
00245     bool isModal() const;
00246     Qt::WindowModality windowModality() const;
00247     void setWindowModality(Qt::WindowModality windowModality);
00248 
00249     bool isEnabled() const;
00250     bool isEnabledTo(QWidget*) const;
00251     bool isEnabledToTLW() const;
00252 
00253 public Q_SLOTS:
00254     void setEnabled(bool);
00255     void setDisabled(bool);
00256     void setWindowModified(bool);
00257 
00258     // Widget coordinates
00259 
00260 public:
00261     QRect frameGeometry() const;
00262     const QRect &geometry() const;
00263     QRect normalGeometry() const;
00264 
00265     int x() const;
00266     int y() const;
00267     QPoint pos() const;
00268     QSize frameSize() const;
00269     QSize size() const;
00270     inline int width() const;
00271     inline int height() const;
00272     inline QRect rect() const;
00273     QRect childrenRect() const;
00274     QRegion childrenRegion() const;
00275 
00276     QSize minimumSize() const;
00277     QSize maximumSize() const;
00278     int minimumWidth() const;
00279     int minimumHeight() const;
00280     int maximumWidth() const;
00281     int maximumHeight() const;
00282     void setMinimumSize(const QSize &);
00283     void setMinimumSize(int minw, int minh);
00284     void setMaximumSize(const QSize &);
00285     void setMaximumSize(int maxw, int maxh);
00286     void setMinimumWidth(int minw);
00287     void setMinimumHeight(int minh);
00288     void setMaximumWidth(int maxw);
00289     void setMaximumHeight(int maxh);
00290 
00291 #ifdef Q_QDOC
00292     void setupUi(QWidget *widget);
00293 #endif
00294 
00295     QSize sizeIncrement() const;
00296     void setSizeIncrement(const QSize &);
00297     void setSizeIncrement(int w, int h);
00298     QSize baseSize() const;
00299     void setBaseSize(const QSize &);
00300     void setBaseSize(int basew, int baseh);
00301 
00302     void setFixedSize(const QSize &);
00303     void setFixedSize(int w, int h);
00304     void setFixedWidth(int w);
00305     void setFixedHeight(int h);
00306 
00307     // Widget coordinate mapping
00308 
00309     QPoint mapToGlobal(const QPoint &) const;
00310     QPoint mapFromGlobal(const QPoint &) const;
00311     QPoint mapToParent(const QPoint &) const;
00312     QPoint mapFromParent(const QPoint &) const;
00313     QPoint mapTo(QWidget *, const QPoint &) const;
00314     QPoint mapFrom(QWidget *, const QPoint &) const;
00315 
00316     QWidget *window() const;
00317     QWidget *nativeParentWidget() const;
00318     inline QWidget *topLevelWidget() const { return window(); }
00319 
00320     // Widget appearance functions
00321     const QPalette &palette() const;
00322     void setPalette(const QPalette &);
00323 
00324     void setBackgroundRole(QPalette::ColorRole);
00325     QPalette::ColorRole backgroundRole() const;
00326 
00327     void setForegroundRole(QPalette::ColorRole);
00328     QPalette::ColorRole foregroundRole() const;
00329 
00330     const QFont &font() const;
00331     void setFont(const QFont &);
00332     QFontMetrics fontMetrics() const;
00333     QFontInfo fontInfo() const;
00334 
00335 #ifndef QT_NO_CURSOR
00336     QCursor cursor() const;
00337     void setCursor(const QCursor &);
00338     void unsetCursor();
00339 #endif
00340 
00341     void setMouseTracking(bool enable);
00342     bool hasMouseTracking() const;
00343     bool underMouse() const;
00344 
00345     void setMask(const QBitmap &);
00346     void setMask(const QRegion &);
00347     QRegion mask() const;
00348     void clearMask();
00349 
00350     void render(QPaintDevice *target, const QPoint &targetOffset = QPoint(),
00351                 const QRegion &sourceRegion = QRegion(),
00352                 RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren));
00353 
00354     void render(QPainter *painter, const QPoint &targetOffset = QPoint(),
00355                 const QRegion &sourceRegion = QRegion(),
00356                 RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren));
00357 
00358 #ifndef QT_NO_GRAPHICSEFFECT
00359     QGraphicsEffect *graphicsEffect() const;
00360     void setGraphicsEffect(QGraphicsEffect *effect);
00361 #endif //QT_NO_GRAPHICSEFFECT
00362 
00363 #ifndef QT_NO_GESTURES
00364     void grabGesture(Qt::GestureType type, Qt::GestureFlags flags = Qt::GestureFlags());
00365     void ungrabGesture(Qt::GestureType type);
00366 #endif
00367 
00368 public Q_SLOTS:
00369     void setWindowTitle(const QString &);
00370 #ifndef QT_NO_STYLE_STYLESHEET
00371     void setStyleSheet(const QString& styleSheet);
00372 #endif
00373 public:
00374 #ifndef QT_NO_STYLE_STYLESHEET
00375     QString styleSheet() const;
00376 #endif
00377     QString windowTitle() const;
00378     void setWindowIcon(const QIcon &icon);
00379     QIcon windowIcon() const;
00380     void setWindowIconText(const QString &);
00381     QString windowIconText() const;
00382     void setWindowRole(const QString &);
00383     QString windowRole() const;
00384     void setWindowFilePath(const QString &filePath);
00385     QString windowFilePath() const;
00386 
00387     void setWindowOpacity(qreal level);
00388     qreal windowOpacity() const;
00389 
00390     bool isWindowModified() const;
00391 #ifndef QT_NO_TOOLTIP
00392     void setToolTip(const QString &);
00393     QString toolTip() const;
00394 #endif
00395 #ifndef QT_NO_STATUSTIP
00396     void setStatusTip(const QString &);
00397     QString statusTip() const;
00398 #endif
00399 #ifndef QT_NO_WHATSTHIS
00400     void setWhatsThis(const QString &);
00401     QString whatsThis() const;
00402 #endif
00403 #ifndef QT_NO_ACCESSIBILITY
00404     QString accessibleName() const;
00405     void setAccessibleName(const QString &name);
00406     QString accessibleDescription() const;
00407     void setAccessibleDescription(const QString &description);
00408 #endif
00409 
00410     void setLayoutDirection(Qt::LayoutDirection direction);
00411     Qt::LayoutDirection layoutDirection() const;
00412     void unsetLayoutDirection();
00413 
00414     void setLocale(const QLocale &locale);
00415     QLocale locale() const;
00416     void unsetLocale();
00417 
00418     inline bool isRightToLeft() const { return layoutDirection() == Qt::RightToLeft; }
00419     inline bool isLeftToRight() const { return layoutDirection() == Qt::LeftToRight; }
00420 
00421 public Q_SLOTS:
00422     inline void setFocus() { setFocus(Qt::OtherFocusReason); }
00423 
00424 public:
00425     bool isActiveWindow() const;
00426     void activateWindow();
00427     void clearFocus();
00428 
00429     void setFocus(Qt::FocusReason reason);
00430     Qt::FocusPolicy focusPolicy() const;
00431     void setFocusPolicy(Qt::FocusPolicy policy);
00432     bool hasFocus() const;
00433     static void setTabOrder(QWidget *, QWidget *);
00434     void setFocusProxy(QWidget *);
00435     QWidget *focusProxy() const;
00436     Qt::ContextMenuPolicy contextMenuPolicy() const;
00437     void setContextMenuPolicy(Qt::ContextMenuPolicy policy);
00438 
00439     // Grab functions
00440     void grabMouse();
00441 #ifndef QT_NO_CURSOR
00442     void grabMouse(const QCursor &);
00443 #endif
00444     void releaseMouse();
00445     void grabKeyboard();
00446     void releaseKeyboard();
00447 #ifndef QT_NO_SHORTCUT
00448     int grabShortcut(const QKeySequence &key, Qt::ShortcutContext context = Qt::WindowShortcut);
00449     void releaseShortcut(int id);
00450     void setShortcutEnabled(int id, bool enable = true);
00451     void setShortcutAutoRepeat(int id, bool enable = true);
00452 #endif
00453     static QWidget *mouseGrabber();
00454     static QWidget *keyboardGrabber();
00455 
00456     // Update/refresh functions
00457     inline bool updatesEnabled() const;
00458     void setUpdatesEnabled(bool enable);
00459 
00460 #if 0 //def Q_WS_QWS
00461     void repaintUnclipped(const QRegion &, bool erase = true);
00462 #endif
00463 
00464 #ifndef QT_NO_GRAPHICSVIEW
00465     QGraphicsProxyWidget *graphicsProxyWidget() const;
00466 #endif
00467 
00468 public Q_SLOTS:
00469     void update();
00470     void repaint();
00471 
00472 public:
00473     inline void update(int x, int y, int w, int h);
00474     void update(const QRect&);
00475     void update(const QRegion&);
00476 
00477     void repaint(int x, int y, int w, int h);
00478     void repaint(const QRect &);
00479     void repaint(const QRegion &);
00480 
00481 public Q_SLOTS:
00482     // Widget management functions
00483 
00484     virtual void setVisible(bool visible);
00485     inline void setHidden(bool hidden) { setVisible(!hidden); }
00486 #ifndef Q_WS_WINCE
00487     inline void show() { setVisible(true); }
00488 #else
00489     void show();
00490 #endif
00491     inline void hide() { setVisible(false); }
00492     inline QT_MOC_COMPAT void setShown(bool shown) { setVisible(shown); }
00493 
00494     void showMinimized();
00495     void showMaximized();
00496     void showFullScreen();
00497     void showNormal();
00498 
00499     bool close();
00500     void raise();
00501     void lower();
00502 
00503 public:
00504     void stackUnder(QWidget*);
00505     void move(int x, int y);
00506     void move(const QPoint &);
00507     void resize(int w, int h);
00508     void resize(const QSize &);
00509     inline void setGeometry(int x, int y, int w, int h);
00510     void setGeometry(const QRect &);
00511     QByteArray saveGeometry() const;
00512     bool restoreGeometry(const QByteArray &geometry);
00513     void adjustSize();
00514     bool isVisible() const;
00515     bool isVisibleTo(QWidget*) const;
00516     // ### Qt 5: bool isVisibleTo(_const_ QWidget *) const
00517     inline bool isHidden() const;
00518 
00519     bool isMinimized() const;
00520     bool isMaximized() const;
00521     bool isFullScreen() const;
00522 
00523     Qt::WindowStates windowState() const;
00524     void setWindowState(Qt::WindowStates state);
00525     void overrideWindowState(Qt::WindowStates state);
00526 
00527     virtual QSize sizeHint() const;
00528     virtual QSize minimumSizeHint() const;
00529 
00530     QSizePolicy sizePolicy() const;
00531     void setSizePolicy(QSizePolicy);
00532     inline void setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical);
00533     virtual int heightForWidth(int) const;
00534 
00535     QRegion visibleRegion() const;
00536 
00537     void setContentsMargins(int left, int top, int right, int bottom);
00538     void setContentsMargins(const QMargins &margins);
00539     void getContentsMargins(int *left, int *top, int *right, int *bottom) const;
00540     QMargins contentsMargins() const;
00541 
00542     QRect contentsRect() const;
00543 
00544 public:
00545     QLayout *layout() const;
00546     void setLayout(QLayout *);
00547     void updateGeometry();
00548 
00549     void setParent(QWidget *parent);
00550     void setParent(QWidget *parent, Qt::WindowFlags f);
00551 
00552     void scroll(int dx, int dy);
00553     void scroll(int dx, int dy, const QRect&);
00554 
00555     // Misc. functions
00556 
00557     QWidget *focusWidget() const;
00558     QWidget *nextInFocusChain() const;
00559     QWidget *previousInFocusChain() const;
00560 
00561     // drag and drop
00562     bool acceptDrops() const;
00563     void setAcceptDrops(bool on);
00564 
00565 #ifndef QT_NO_ACTION
00566     //actions
00567     void addAction(QAction *action);
00568     void addActions(QList<QAction*> actions);
00569     void insertAction(QAction *before, QAction *action);
00570     void insertActions(QAction *before, QList<QAction*> actions);
00571     void removeAction(QAction *action);
00572     QList<QAction*> actions() const;
00573 #endif
00574 
00575     QWidget *parentWidget() const;
00576 
00577     void setWindowFlags(Qt::WindowFlags type);
00578     inline Qt::WindowFlags windowFlags() const;
00579     void overrideWindowFlags(Qt::WindowFlags type);
00580 
00581     inline Qt::WindowType windowType() const;
00582 
00583     static QWidget *find(WId);
00584 #ifdef QT3_SUPPORT
00585     static QT3_SUPPORT QWidgetMapper *wmapper();
00586 #endif
00587     inline QWidget *childAt(int x, int y) const;
00588     QWidget *childAt(const QPoint &p) const;
00589 
00590 #if defined(Q_WS_X11)
00591     const QX11Info &x11Info() const;
00592     Qt::HANDLE x11PictureHandle() const;
00593 #endif
00594 
00595 #if defined(Q_WS_MAC)
00596     Qt::HANDLE macQDHandle() const;
00597     Qt::HANDLE macCGHandle() const;
00598 #endif
00599 
00600 #if defined(Q_WS_WIN)
00601     HDC getDC() const;
00602     void releaseDC(HDC) const;
00603 #else
00604     Qt::HANDLE handle() const;
00605 #endif
00606 
00607     void setAttribute(Qt::WidgetAttribute, bool on = true);
00608     inline bool testAttribute(Qt::WidgetAttribute) const;
00609 
00610     QPaintEngine *paintEngine() const;
00611 
00612     void ensurePolished() const;
00613 
00614     QInputContext *inputContext();
00615     void setInputContext(QInputContext *);
00616 
00617     bool isAncestorOf(const QWidget *child) const;
00618 
00619 #ifdef QT_KEYPAD_NAVIGATION
00620     bool hasEditFocus() const;
00621     void setEditFocus(bool on);
00622 #endif
00623 
00624     bool autoFillBackground() const;
00625     void setAutoFillBackground(bool enabled);
00626 
00627     void setWindowSurface(QWindowSurface *surface);
00628     QWindowSurface *windowSurface() const;
00629 
00630 Q_SIGNALS:
00631     void customContextMenuRequested(const QPoint &pos);
00632 
00633 protected:
00634     // Event handlers
00635     bool event(QEvent *);
00636     virtual void mousePressEvent(QMouseEvent *);
00637     virtual void mouseReleaseEvent(QMouseEvent *);
00638     virtual void mouseDoubleClickEvent(QMouseEvent *);
00639     virtual void mouseMoveEvent(QMouseEvent *);
00640 #ifndef QT_NO_WHEELEVENT
00641     virtual void wheelEvent(QWheelEvent *);
00642 #endif
00643     virtual void keyPressEvent(QKeyEvent *);
00644     virtual void keyReleaseEvent(QKeyEvent *);
00645     virtual void focusInEvent(QFocusEvent *);
00646     virtual void focusOutEvent(QFocusEvent *);
00647     virtual void enterEvent(QEvent *);
00648     virtual void leaveEvent(QEvent *);
00649     virtual void paintEvent(QPaintEvent *);
00650     virtual void moveEvent(QMoveEvent *);
00651     virtual void resizeEvent(QResizeEvent *);
00652     virtual void closeEvent(QCloseEvent *);
00653 #ifndef QT_NO_CONTEXTMENU
00654     virtual void contextMenuEvent(QContextMenuEvent *);
00655 #endif
00656 #ifndef QT_NO_TABLETEVENT
00657     virtual void tabletEvent(QTabletEvent *);
00658 #endif
00659 #ifndef QT_NO_ACTION
00660     virtual void actionEvent(QActionEvent *);
00661 #endif
00662 
00663 #ifndef QT_NO_DRAGANDDROP
00664     virtual void dragEnterEvent(QDragEnterEvent *);
00665     virtual void dragMoveEvent(QDragMoveEvent *);
00666     virtual void dragLeaveEvent(QDragLeaveEvent *);
00667     virtual void dropEvent(QDropEvent *);
00668 #endif
00669 
00670     virtual void showEvent(QShowEvent *);
00671     virtual void hideEvent(QHideEvent *);
00672 
00673 #if defined(Q_WS_MAC)
00674     virtual bool macEvent(EventHandlerCallRef, EventRef);
00675 #endif
00676 #if defined(Q_WS_WIN)
00677     virtual bool winEvent(MSG *message, long *result);
00678 #endif
00679 #if defined(Q_WS_X11)
00680     virtual bool x11Event(XEvent *);
00681 #endif
00682 #if defined(Q_WS_QWS)
00683     virtual bool qwsEvent(QWSEvent *);
00684 #endif
00685 
00686     // Misc. protected functions
00687     virtual void changeEvent(QEvent *);
00688 
00689     int metric(PaintDeviceMetric) const;
00690 
00691     virtual void inputMethodEvent(QInputMethodEvent *);
00692 public:
00693     virtual QVariant inputMethodQuery(Qt::InputMethodQuery) const;
00694 
00695     Qt::InputMethodHints inputMethodHints() const;
00696     void setInputMethodHints(Qt::InputMethodHints hints);
00697 
00698 protected:
00699     void resetInputContext();
00700 protected Q_SLOTS:
00701     void updateMicroFocus();
00702 protected:
00703 
00704     void create(WId = 0, bool initializeWindow = true,
00705                          bool destroyOldWindow = true);
00706     void destroy(bool destroyWindow = true,
00707                  bool destroySubWindows = true);
00708 
00709     virtual bool focusNextPrevChild(bool next);
00710     inline bool focusNextChild() { return focusNextPrevChild(true); }
00711     inline bool focusPreviousChild() { return focusNextPrevChild(false); }
00712 
00713 protected:
00714     QWidget(QWidgetPrivate &d, QWidget* parent, Qt::WindowFlags f);
00715 private:
00716 
00717     bool testAttribute_helper(Qt::WidgetAttribute) const;
00718 
00719     QLayout *takeLayout();
00720 
00721     friend class QBackingStoreDevice;
00722     friend class QWidgetBackingStore;
00723     friend class QApplication;
00724     friend class QApplicationPrivate;
00725     friend class QBaseApplication;
00726     friend class QPainter;
00727     friend class QPainterPrivate;
00728     friend class QPixmap; // for QPixmap::fill()
00729     friend class QFontMetrics;
00730     friend class QFontInfo;
00731     friend class QETWidget;
00732     friend class QLayout;
00733     friend class QWidgetItem;
00734     friend class QWidgetItemV2;
00735     friend class QGLContext;
00736     friend class QGLWidget;
00737     friend class QGLWindowSurface;
00738     friend class QX11PaintEngine;
00739     friend class QWin32PaintEngine;
00740     friend class QShortcutPrivate;
00741     friend class QShortcutMap;
00742     friend class QWindowSurface;
00743     friend class QGraphicsProxyWidget;
00744     friend class QGraphicsProxyWidgetPrivate;
00745     friend class QStyleSheetStyle;
00746     friend struct QWidgetExceptionCleaner;
00747 #ifndef QT_NO_GESTURES
00748     friend class QGestureManager;
00749     friend class QWinNativePanGestureRecognizer;
00750 #endif // QT_NO_GESTURES
00751     friend class QWidgetEffectSourcePrivate;
00752 
00753 #ifdef Q_WS_MAC
00754     friend class QCoreGraphicsPaintEnginePrivate;
00755     friend QPoint qt_mac_posInWindow(const QWidget *w);
00756     friend OSWindowRef qt_mac_window_for(const QWidget *w);
00757     friend bool qt_mac_is_metal(const QWidget *w);
00758     friend OSViewRef qt_mac_nativeview_for(const QWidget *w);
00759     friend void qt_event_request_window_change(QWidget *widget);
00760     friend bool qt_mac_sendMacEventToWidget(QWidget *widget, EventRef ref);
00761 #endif
00762 #ifdef Q_WS_QWS
00763     friend class QWSBackingStore;
00764     friend class QWSManager;
00765     friend class QWSManagerPrivate;
00766     friend class QDecoration;
00767     friend class QWSWindowSurface;
00768     friend class QScreen;
00769     friend class QVNCScreen;
00770     friend bool isWidgetOpaque(const QWidget *);
00771     friend class QGLWidgetPrivate;
00772 #endif
00773 #ifdef Q_OS_SYMBIAN
00774     friend class QSymbianControl;
00775     friend class QS60WindowSurface;
00776 #endif
00777 #ifdef Q_WS_X11
00778     friend void qt_net_update_user_time(QWidget *tlw, unsigned long timestamp);
00779     friend void qt_net_remove_user_time(QWidget *tlw);
00780     friend void qt_set_winid_on_widget(QWidget*, Qt::HANDLE);
00781 #endif
00782 
00783     friend Q_GUI_EXPORT QWidgetData *qt_qwidget_data(QWidget *widget);
00784     friend Q_GUI_EXPORT QWidgetPrivate *qt_widget_private(QWidget *widget);
00785 
00786 private:
00787     Q_DISABLE_COPY(QWidget)
00788     Q_PRIVATE_SLOT(d_func(), void _q_showIfNotHidden())
00789 #ifdef Q_OS_SYMBIAN
00790     Q_PRIVATE_SLOT(d_func(), void _q_delayedDestroy(WId winId))
00791 #endif
00792 
00793     QWidgetData *data;
00794 
00795 #ifdef QT3_SUPPORT
00796 public:
00797     inline QT3_SUPPORT bool isUpdatesEnabled() const { return updatesEnabled(); }
00798     QT3_SUPPORT QStyle *setStyle(const QString&);
00799     inline QT3_SUPPORT bool isVisibleToTLW() const;
00800     QT3_SUPPORT QRect visibleRect() const;
00801     inline QT3_SUPPORT void iconify() { showMinimized(); }
00802     inline QT3_SUPPORT void constPolish() const { ensurePolished(); }
00803     inline QT3_SUPPORT void polish() { ensurePolished(); }
00804     inline QT3_SUPPORT void reparent(QWidget *parent, Qt::WindowFlags f, const QPoint &p, bool showIt=false)
00805     { setParent(parent, f); setGeometry(p.x(),p.y(),width(),height()); if (showIt) show(); }
00806     inline QT3_SUPPORT void reparent(QWidget *parent, const QPoint &p, bool showIt=false)
00807     { setParent(parent, windowFlags() & ~Qt::WindowType_Mask); setGeometry(p.x(),p.y(),width(),height()); if (showIt) show(); }
00808     inline QT3_SUPPORT void recreate(QWidget *parent, Qt::WindowFlags f, const QPoint & p, bool showIt=false)
00809     { setParent(parent, f); setGeometry(p.x(),p.y(),width(),height()); if (showIt) show(); }
00810     inline QT3_SUPPORT void setSizePolicy(QSizePolicy::Policy hor, QSizePolicy::Policy ver, bool hfw)
00811     { QSizePolicy sp(hor, ver); sp.setHeightForWidth(hfw); setSizePolicy(sp);}
00812     inline QT3_SUPPORT bool hasMouse() const { return testAttribute(Qt::WA_UnderMouse); }
00813 #ifndef QT_NO_CURSOR
00814     inline QT3_SUPPORT bool ownCursor() const { return testAttribute(Qt::WA_SetCursor); }
00815 #endif
00816     inline QT3_SUPPORT bool ownFont() const { return testAttribute(Qt::WA_SetFont); }
00817     inline QT3_SUPPORT void unsetFont() { setFont(QFont()); }
00818     inline QT3_SUPPORT bool ownPalette() const { return testAttribute(Qt::WA_SetPalette); }
00819     inline QT3_SUPPORT void unsetPalette() { setPalette(QPalette()); }
00820     Qt::BackgroundMode QT3_SUPPORT backgroundMode() const;
00821     void QT3_SUPPORT setBackgroundMode(Qt::BackgroundMode, Qt::BackgroundMode = Qt::PaletteBackground);
00822     const QT3_SUPPORT QColor &eraseColor() const;
00823     void QT3_SUPPORT setEraseColor(const QColor &);
00824     const QT3_SUPPORT QColor &foregroundColor() const;
00825     const QT3_SUPPORT QPixmap *erasePixmap() const;
00826     void QT3_SUPPORT setErasePixmap(const QPixmap &);
00827     const QT3_SUPPORT QColor &paletteForegroundColor() const;
00828     void QT3_SUPPORT setPaletteForegroundColor(const QColor &);
00829     const QT3_SUPPORT QColor &paletteBackgroundColor() const;
00830     void QT3_SUPPORT setPaletteBackgroundColor(const QColor &);
00831     const QT3_SUPPORT QPixmap *paletteBackgroundPixmap() const;
00832     void QT3_SUPPORT setPaletteBackgroundPixmap(const QPixmap &);
00833     const QT3_SUPPORT QBrush& backgroundBrush() const;
00834     const QT3_SUPPORT QColor &backgroundColor() const;
00835     const QT3_SUPPORT QPixmap *backgroundPixmap() const;
00836     void QT3_SUPPORT setBackgroundPixmap(const QPixmap &);
00837     QT3_SUPPORT void setBackgroundColor(const QColor &);
00838     QT3_SUPPORT QColorGroup colorGroup() const;
00839     QT3_SUPPORT QWidget *parentWidget(bool sameWindow) const;
00840     inline QT3_SUPPORT void setKeyCompression(bool b) { setAttribute(Qt::WA_KeyCompression, b); }
00841     inline QT3_SUPPORT void setFont(const QFont &f, bool) { setFont(f); }
00842     inline QT3_SUPPORT void setPalette(const QPalette &p, bool) { setPalette(p); }
00843     enum BackgroundOrigin { WidgetOrigin, ParentOrigin, WindowOrigin, AncestorOrigin };
00844     inline QT3_SUPPORT void setBackgroundOrigin(BackgroundOrigin) {}
00845     inline QT3_SUPPORT BackgroundOrigin backgroundOrigin() const { return WindowOrigin; }
00846     inline QT3_SUPPORT QPoint backgroundOffset() const { return QPoint(); }
00847     inline QT3_SUPPORT void repaint(bool) { repaint(); }
00848     inline QT3_SUPPORT void repaint(int x, int y, int w, int h, bool) { repaint(x,y,w,h); }
00849     inline QT3_SUPPORT void repaint(const QRect &r, bool) { repaint(r); }
00850     inline QT3_SUPPORT void repaint(const QRegion &rgn, bool) { repaint(rgn); }
00851     QT3_SUPPORT void erase();
00852     inline QT3_SUPPORT void erase(int x, int y, int w, int h) { erase_helper(x, y, w, h); }
00853     QT3_SUPPORT void erase(const QRect &);
00854     QT3_SUPPORT void erase(const QRegion &);
00855     QT3_SUPPORT void drawText(const QPoint &p, const QString &s)
00856     { drawText_helper(p.x(), p.y(), s); }
00857     inline QT3_SUPPORT void drawText(int x, int y, const QString &s)
00858     { drawText_helper(x, y, s); }
00859     QT3_SUPPORT bool close(bool);
00860     inline QT3_SUPPORT QWidget *childAt(int x, int y, bool includeThis) const
00861     {
00862         QWidget *w = childAt(x, y);
00863         return w ? w : ((includeThis && rect().contains(x,y))?const_cast<QWidget*>(this):0);
00864     }
00865     inline QT3_SUPPORT QWidget *childAt(const QPoint &p, bool includeThis) const
00866     {
00867         QWidget *w = childAt(p);
00868         return w ? w : ((includeThis && rect().contains(p))?const_cast<QWidget*>(this):0);
00869     }
00870     inline QT3_SUPPORT void setCaption(const QString &c)   { setWindowTitle(c); }
00871     QT3_SUPPORT void setIcon(const QPixmap &i);
00872     inline QT3_SUPPORT void setIconText(const QString &it) { setWindowIconText(it); }
00873     inline QT3_SUPPORT QString caption() const             { return windowTitle(); }
00874     QT3_SUPPORT const QPixmap *icon() const;
00875     inline QT3_SUPPORT QString iconText() const            { return windowIconText(); }
00876     inline QT3_SUPPORT void setInputMethodEnabled(bool b) { setAttribute(Qt::WA_InputMethodEnabled, b); }
00877     inline QT3_SUPPORT bool isInputMethodEnabled() const { return testAttribute(Qt::WA_InputMethodEnabled); }
00878     inline QT3_SUPPORT void setActiveWindow() { activateWindow(); }
00879     inline QT3_SUPPORT bool isShown() const { return !isHidden(); }
00880     inline QT3_SUPPORT bool isDialog() const { return windowType() == Qt::Dialog; }
00881     inline QT3_SUPPORT bool isPopup() const { return windowType() == Qt::Popup; }
00882     inline QT3_SUPPORT bool isDesktop() const { return windowType() == Qt::Desktop; }
00883 
00884 
00885 private:
00886     void drawText_helper(int x, int y, const QString &);
00887     void erase_helper(int x, int y, int w, int h);
00888 #endif // QT3_SUPPORT
00889 
00890 protected:
00891     virtual void styleChange(QStyle&); // compat
00892     virtual void enabledChange(bool);  // compat
00893     virtual void paletteChange(const QPalette &);  // compat
00894     virtual void fontChange(const QFont &); // compat
00895     virtual void windowActivationChange(bool);  // compat
00896     virtual void languageChange();  // compat
00897 };
00898 
00899 Q_DECLARE_OPERATORS_FOR_FLAGS(QWidget::RenderFlags)
00900 
00901 #if defined Q_CC_MSVC && _MSC_VER < 1300
00902 template <> inline QWidget *qobject_cast_helper<QWidget*>(QObject *o, QWidget *)
00903 {
00904     if (!o || !o->isWidgetType()) return 0;
00905     return (QWidget*)(o);
00906 }
00907 #else
00908 template <> inline QWidget *qobject_cast<QWidget*>(QObject *o)
00909 {
00910     if (!o || !o->isWidgetType()) return 0;
00911     return static_cast<QWidget*>(o);
00912 }
00913 template <> inline const QWidget *qobject_cast<const QWidget*>(const QObject *o)
00914 {
00915     if (!o || !o->isWidgetType()) return 0;
00916     return static_cast<const QWidget*>(o);
00917 }
00918 #endif
00919 
00920 inline QWidget *QWidget::childAt(int ax, int ay) const
00921 { return childAt(QPoint(ax, ay)); }
00922 
00923 inline Qt::WindowType QWidget::windowType() const
00924 { return static_cast<Qt::WindowType>(int(data->window_flags & Qt::WindowType_Mask)); }
00925 inline Qt::WindowFlags QWidget::windowFlags() const
00926 { return data->window_flags; }
00927 
00928 inline bool QWidget::isTopLevel() const
00929 { return (windowType() & Qt::Window); }
00930 
00931 inline bool QWidget::isWindow() const
00932 { return (windowType() & Qt::Window); }
00933 
00934 inline bool QWidget::isEnabled() const
00935 { return !testAttribute(Qt::WA_Disabled); }
00936 
00937 inline bool QWidget::isModal() const
00938 { return data->window_modality != Qt::NonModal; }
00939 
00940 inline bool QWidget::isEnabledToTLW() const
00941 { return isEnabled(); }
00942 
00943 inline int QWidget::minimumWidth() const
00944 { return minimumSize().width(); }
00945 
00946 inline int QWidget::minimumHeight() const
00947 { return minimumSize().height(); }
00948 
00949 inline int QWidget::maximumWidth() const
00950 { return maximumSize().width(); }
00951 
00952 inline int QWidget::maximumHeight() const
00953 { return maximumSize().height(); }
00954 
00955 inline void QWidget::setMinimumSize(const QSize &s)
00956 { setMinimumSize(s.width(),s.height()); }
00957 
00958 inline void QWidget::setMaximumSize(const QSize &s)
00959 { setMaximumSize(s.width(),s.height()); }
00960 
00961 inline void QWidget::setSizeIncrement(const QSize &s)
00962 { setSizeIncrement(s.width(),s.height()); }
00963 
00964 inline void QWidget::setBaseSize(const QSize &s)
00965 { setBaseSize(s.width(),s.height()); }
00966 
00967 inline const QFont &QWidget::font() const
00968 { return data->fnt; }
00969 
00970 inline QFontMetrics QWidget::fontMetrics() const
00971 { return QFontMetrics(data->fnt); }
00972 
00973 inline QFontInfo QWidget::fontInfo() const
00974 { return QFontInfo(data->fnt); }
00975 
00976 inline void QWidget::setMouseTracking(bool enable)
00977 { setAttribute(Qt::WA_MouseTracking, enable); }
00978 
00979 inline bool QWidget::hasMouseTracking() const
00980 { return testAttribute(Qt::WA_MouseTracking); }
00981 
00982 inline bool QWidget::underMouse() const
00983 { return testAttribute(Qt::WA_UnderMouse); }
00984 
00985 inline bool QWidget::updatesEnabled() const
00986 { return !testAttribute(Qt::WA_UpdatesDisabled); }
00987 
00988 inline void QWidget::update(int ax, int ay, int aw, int ah)
00989 { update(QRect(ax, ay, aw, ah)); }
00990 
00991 inline bool QWidget::isVisible() const
00992 { return testAttribute(Qt::WA_WState_Visible); }
00993 
00994 inline bool QWidget::isHidden() const
00995 { return testAttribute(Qt::WA_WState_Hidden); }
00996 
00997 inline void QWidget::move(int ax, int ay)
00998 { move(QPoint(ax, ay)); }
00999 
01000 inline void QWidget::resize(int w, int h)
01001 { resize(QSize(w, h)); }
01002 
01003 inline void QWidget::setGeometry(int ax, int ay, int aw, int ah)
01004 { setGeometry(QRect(ax, ay, aw, ah)); }
01005 
01006 inline QRect QWidget::rect() const
01007 { return QRect(0,0,data->crect.width(),data->crect.height()); }
01008 
01009 inline const QRect &QWidget::geometry() const
01010 { return data->crect; }
01011 
01012 inline QSize QWidget::size() const
01013 { return data->crect.size(); }
01014 
01015 inline int QWidget::width() const
01016 { return data->crect.width(); }
01017 
01018 inline int QWidget::height() const
01019 { return data->crect.height(); }
01020 
01021 inline QWidget *QWidget::parentWidget() const
01022 { return static_cast<QWidget *>(QObject::parent()); }
01023 
01024 inline void QWidget::setSizePolicy(QSizePolicy::Policy hor, QSizePolicy::Policy ver)
01025 { setSizePolicy(QSizePolicy(hor, ver)); }
01026 
01027 inline bool QWidget::testAttribute(Qt::WidgetAttribute attribute) const
01028 {
01029     if (attribute < int(8*sizeof(uint)))
01030         return data->widget_attributes & (1<<attribute);
01031     return testAttribute_helper(attribute);
01032 }
01033 
01034 #ifdef QT3_SUPPORT
01035 inline bool QWidget::isVisibleToTLW() const
01036 { return isVisible(); }
01037 inline QWidget *QWidget::parentWidget(bool sameWindow) const
01038 {
01039     if (sameWindow && isWindow())
01040         return 0;
01041     return static_cast<QWidget *>(QObject::parent());
01042 }
01043 inline QColorGroup QWidget::colorGroup() const
01044 { return QColorGroup(palette()); }
01045 inline void QWidget::setPaletteForegroundColor(const QColor &c)
01046 { QPalette p = palette(); p.setColor(foregroundRole(), c); setPalette(p); }
01047 inline const QBrush& QWidget::backgroundBrush() const { return palette().brush(backgroundRole()); }
01048 inline void QWidget::setBackgroundPixmap(const QPixmap &pm)
01049 { QPalette p = palette(); p.setBrush(backgroundRole(), QBrush(pm)); setPalette(p); }
01050 inline const QPixmap *QWidget::backgroundPixmap() const { return 0; }
01051 inline void QWidget::setBackgroundColor(const QColor &c)
01052 { QPalette p = palette(); p.setColor(backgroundRole(), c); setPalette(p); }
01053 inline const QColor & QWidget::backgroundColor() const { return palette().color(backgroundRole()); }
01054 inline const QColor &QWidget::foregroundColor() const { return palette().color(foregroundRole());}
01055 inline const QColor &QWidget::eraseColor() const { return palette().color(backgroundRole()); }
01056 inline void QWidget::setEraseColor(const QColor &c)
01057 { QPalette p = palette(); p.setColor(backgroundRole(), c); setPalette(p); }
01058 inline const QPixmap *QWidget::erasePixmap() const { return 0; }
01059 inline void QWidget::setErasePixmap(const QPixmap &pm)
01060 { QPalette p = palette(); p.setBrush(backgroundRole(), QBrush(pm)); setPalette(p); }
01061 inline const QColor &QWidget::paletteForegroundColor() const { return palette().color(foregroundRole());}
01062 inline const QColor &QWidget::paletteBackgroundColor() const { return palette().color(backgroundRole()); }
01063 inline void QWidget::setPaletteBackgroundColor(const QColor &c)
01064 { QPalette p = palette(); p.setColor(backgroundRole(), c); setPalette(p); }
01065 inline const QPixmap *QWidget::paletteBackgroundPixmap() const
01066 { return 0; }
01067 inline void QWidget::setPaletteBackgroundPixmap(const QPixmap &pm)
01068 { QPalette p = palette(); p.setBrush(backgroundRole(), QBrush(pm)); setPalette(p); }
01069 inline QT3_SUPPORT void QWidget::erase() { erase_helper(0, 0, data->crect.width(), data->crect.height()); }
01070 inline QT3_SUPPORT void QWidget::erase(const QRect &r) { erase_helper(r.x(), r.y(), r.width(), r.height()); }
01071 #endif
01072 
01073 #define QWIDGETSIZE_MAX ((1<<24)-1)
01074 
01075 QT_END_NAMESPACE
01076 
01077 QT_END_HEADER
01078 
01079 #endif // QWIDGET_H