Added some convenience to QWindow
authorGunnar Sletta <gunnar.sletta@nokia.com>
Thu, 4 Aug 2011 08:46:27 +0000 (10:46 +0200)
committerSamuel Rødal <samuel.rodal@nokia.com>
Fri, 5 Aug 2011 08:42:47 +0000 (10:42 +0200)
Change-Id: I367f5e3f586661322184cfa5f7653814569cb6e3
Reviewed-on: http://codereview.qt.nokia.com/2611
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
src/gui/kernel/qwindow.cpp
src/gui/kernel/qwindow.h

index 84c0217..95331a2 100644 (file)
@@ -80,6 +80,19 @@ QWindow::QWindow(QWindow *parent)
     QGuiApplicationPrivate::window_list.prepend(this);
 }
 
+QWindow::QWindow(QWindowPrivate &dd, QWindow *parent)
+    : QObject(dd, parent)
+    , QSurface(QSurface::Window)
+{
+    Q_D(QWindow);
+    d->parentWindow = parent;
+    if (parent)
+        d->screen = parent->screen();
+    if (!d->screen)
+        d->screen = QGuiApplication::primaryScreen();
+    QGuiApplicationPrivate::window_list.prepend(this);
+}
+
 QWindow::~QWindow()
 {
     if (QGuiApplicationPrivate::active_window == this)
index adf948b..5b9ad4a 100644 (file)
@@ -45,6 +45,7 @@
 #include <QtCore/QObject>
 #include <QtCore/QEvent>
 #include <QtCore/QMargins>
+#include <QtCore/QRect>
 
 #include <QtGui/qsurfaceformat.h>
 #include <QtGui/qwindowdefs.h>
@@ -157,6 +158,16 @@ public:
     void setGeometry(const QRect &rect);
     QRect geometry() const;
 
+    inline int width() const { return geometry().width(); }
+    inline int height() const { return geometry().height(); }
+    inline int x() const { return geometry().x(); }
+    inline int y() const { return geometry().y(); }
+
+    inline QSize size() const { return geometry().size(); }
+    inline QPoint pos() const { return geometry().topLeft(); }
+
+    inline void resize(const QSize &size) { setGeometry(QRect(pos(), size)); }
+
     QMargins frameMargins() const;
 
     void setWindowIcon(const QImage &icon) const;
@@ -208,6 +219,8 @@ protected:
     virtual void wheelEvent(QWheelEvent *);
 #endif
 
+    QWindow(QWindowPrivate &dd, QWindow *parent);
+
 private:
     QPlatformSurface *surfaceHandle() const;