michael@0: /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ michael@0: /* vim: set ts=4 et sw=4 tw=80: */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #ifndef MOZQWIDGET_H michael@0: #define MOZQWIDGET_H michael@0: michael@0: #include "nsIWidget.h" michael@0: michael@0: #include michael@0: michael@0: QT_BEGIN_NAMESPACE michael@0: class QPainter; michael@0: class QExposeEvent; michael@0: class QResizeEvent; michael@0: QT_END_NAMESPACE michael@0: michael@0: namespace mozilla { michael@0: namespace widget { michael@0: michael@0: class nsWindow; michael@0: michael@0: class MozQWidget : public QWindow michael@0: { michael@0: Q_OBJECT michael@0: public: michael@0: explicit MozQWidget(nsWindow* aReceiver, QWindow* aParent = 0); michael@0: ~MozQWidget(); michael@0: michael@0: virtual void render(QPainter* painter); michael@0: michael@0: virtual nsWindow* getReceiver() { return mReceiver; }; michael@0: virtual void dropReceiver() { mReceiver = nullptr; }; michael@0: virtual void SetCursor(nsCursor aCursor); michael@0: michael@0: public Q_SLOTS: michael@0: void renderLater(); michael@0: void renderNow(); michael@0: michael@0: protected: michael@0: virtual bool event(QEvent* event); michael@0: virtual void exposeEvent(QExposeEvent* event); michael@0: virtual void focusInEvent(QFocusEvent* event); michael@0: virtual void focusOutEvent(QFocusEvent* event); michael@0: virtual void hideEvent(QHideEvent* event); michael@0: virtual void keyPressEvent(QKeyEvent* event); michael@0: virtual void keyReleaseEvent(QKeyEvent* event); michael@0: virtual void mouseDoubleClickEvent(QMouseEvent* event); michael@0: virtual void mouseMoveEvent(QMouseEvent* event); michael@0: virtual void mousePressEvent(QMouseEvent* event); michael@0: virtual void mouseReleaseEvent(QMouseEvent* event); michael@0: virtual void moveEvent(QMoveEvent* event); michael@0: virtual void resizeEvent(QResizeEvent* event); michael@0: virtual void showEvent(QShowEvent* event); michael@0: virtual void tabletEvent(QTabletEvent* event); michael@0: virtual void touchEvent(QTouchEvent* event); michael@0: virtual void wheelEvent(QWheelEvent* event); michael@0: michael@0: private: michael@0: nsWindow* mReceiver; michael@0: bool mUpdatePending; michael@0: nsWindowType mWindowType; michael@0: }; michael@0: michael@0: } // namespace widget michael@0: } // namespace mozilla michael@0: michael@0: #endif // MOZQWIDGET_H michael@0: