diff options
Diffstat (limited to 'tqtinterface/qt4/include/private/qt4_qwidget_p.h')
-rw-r--r-- | tqtinterface/qt4/include/private/qt4_qwidget_p.h | 334 |
1 files changed, 0 insertions, 334 deletions
diff --git a/tqtinterface/qt4/include/private/qt4_qwidget_p.h b/tqtinterface/qt4/include/private/qt4_qwidget_p.h deleted file mode 100644 index d3473c9..0000000 --- a/tqtinterface/qt4/include/private/qt4_qwidget_p.h +++ /dev/null @@ -1,334 +0,0 @@ -// ----------------------------------------------------------------------------------- -// Large chunks of this file are taken straight from the qwidget_p.h file in Qt4 -// -// Specifically, these structures and classes must be kept in sync with Qt4: -// QWidgetBackingStoreTracker -// QTLWExtra -// QWExtra -// The same applies to the implementations defined in tqwidget.cpp -// -// Enjoy! -// ----------------------------------------------------------------------------------- - -#ifndef QWIDGET_P_H -#define QWIDGET_P_H - -#include <Qt/qpointer.h> -#include <Qt/qset.h> - -// Extra QWidget data -// - to minimize memory usage for members that are seldom used. -// - top-level widgets have extra extra data to reduce cost further -#if defined(Q_WS_QWS) -class QWSManager; -#endif -#if defined(Q_WS_MAC) -class QCoreGraphicsPaintEnginePrivate; -#endif -class QPaintEngine; -class QPixmap; -class QWidgetBackingStore; -class QGraphicsProxyWidget; -class QWidgetItemV2; - -class Q_AUTOTEST_EXPORT QWidgetBackingStoreTracker -{ - -public: - QWidgetBackingStoreTracker(); - ~QWidgetBackingStoreTracker(); - - void create(QWidget *tlw); - void destroy(); - - void registerWidget(QWidget *w); - void unregisterWidget(QWidget *w); - - inline QWidgetBackingStore* data() - { - return m_ptr; - } - - inline QWidgetBackingStore* operator->() - { - return m_ptr; - } - - inline QWidgetBackingStore& operator*() - { - return *m_ptr; - } - - inline operator bool() const - { - return (0 != m_ptr); - } - -private: - Q_DISABLE_COPY(QWidgetBackingStoreTracker) - -private: - QWidgetBackingStore* m_ptr; - QSet<QWidget *> m_widgets; -}; - -struct QTLWExtra { - // *************************** Cross-platform variables ***************************** - - // Regular pointers (keep them together to avoid gaps on 64 bits architectures). - QIcon *icon; // widget icon - QPixmap *iconPixmap; - QWidgetBackingStoreTracker backingStore; - QWindowSurface *windowSurface; - QPainter *sharedPainter; - - // Implicit pointers (shared_null). - QString caption; // widget caption - QString iconText; // widget icon text - QString role; // widget role - QString filePath; // widget file path - - // Other variables. - short incw, inch; // size increments - short basew, baseh; // base sizes - // frame strut, don't use these directly, use QWidgetPrivate::frameStrut() instead. - QRect frameStrut; - QRect normalGeometry; // used by showMin/maximized/FullScreen - Qt::WindowFlags savedFlags; // Save widget flags while showing fullscreen - - // *************************** Cross-platform bit fields **************************** - uint opacity : 8; - uint posFromMove : 1; - uint sizeAdjusted : 1; - uint inTopLevelResize : 1; - uint inRepaint : 1; - uint embedded : 1; - - // *************************** Platform specific values (bit fields first) ********** -#if defined(Q_WS_X11) // <----------------------------------------------------------- X11 - uint spont_unmapped: 1; // window was spontaneously unmapped - uint dnd : 1; // DND properties installed - uint validWMState : 1; // is WM_STATE valid? - uint waitingForMapNotify : 1; // show() has been called, haven't got the MapNotify yet - WId parentWinId; // parent window Id (valid after reparenting) - WId userTimeWindow; // window id that contains user-time timestamp when WM supports a _NET_WM_USER_TIME_WINDOW atom - QPoint fullScreenOffset; -#ifndef QT_NO_XSYNC - WId syncUpdateCounter; - ulong syncRequestTimestamp; - qint32 newCounterValueHi; - quint32 newCounterValueLo; -#endif -#elif defined(Q_WS_WIN) // <--------------------------------------------------------- WIN - uint hotkeyRegistered: 1; // Hot key from the STARTUPINFO has been registered. - HICON winIconBig; // internal big Windows icon - HICON winIconSmall; // internal small Windows icon -#elif defined(Q_WS_MAC) // <--------------------------------------------------------- MAC - uint resizer : 4; - uint isSetGeometry : 1; - uint isMove : 1; - quint32 wattr; - quint32 wclass; - WindowGroupRef group; - IconRef windowIcon; // the current window icon, if set with setWindowIcon_sys. - quint32 savedWindowAttributesFromMaximized; // Saved attributes from when the calling updateMaximizeButton_sys() -#ifdef QT_MAC_USE_COCOA - // This value is just to make sure we maximize and restore to the right location, yet we allow apps to be maximized and - // manually resized. - // The name is misleading, since this is set when maximizing the window. It is a hint to saveGeometry(..) to record the - // starting position as 0,0 instead of the normal starting position. - bool wasMaximized; -#endif // QT_MAC_USE_COCOA - -#elif defined(Q_WS_QWS) // <--------------------------------------------------------- QWS -#ifndef QT_NO_QWS_MANAGER - QWSManager *qwsManager; -#endif -#elif defined(Q_OS_SYMBIAN) - uint inExpose : 1; // Prevents drawing recursion -#endif -}; - -struct QWExtra { - // *************************** Cross-platform variables ***************************** - - // Regular pointers (keep them together to avoid gaps on 64 bits architectures). - void *glContext; // if the widget is hijacked by QGLWindowSurface - QTLWExtra *topextra; // only useful for TLWs -#ifndef QT_NO_GRAPHICSVIEW - QGraphicsProxyWidget *proxyWidget; // if the widget is embedded -#endif -#ifndef QT_NO_CURSOR - QCursor *curs; -#endif - QPointer<QStyle> style; - QPointer<QWidget> focus_proxy; - - // Implicit pointers (shared_empty/shared_null). - QRegion mask; // widget mask - QString styleSheet; - - // Other variables. - qint32 minw; - qint32 minh; // minimum size - qint32 maxw; - qint32 maxh; // maximum size - quint16 customDpiX; - quint16 customDpiY; - QSize staticContentsSize; - - // *************************** Cross-platform bit fields **************************** - uint explicitMinSize : 2; - uint explicitMaxSize : 2; - uint autoFillBackground : 1; - uint nativeChildrenForced : 1; - uint inRenderWithPainter : 1; - uint hasMask : 1; - - // *************************** Platform specific values (bit fields first) ********** -#if defined(Q_WS_WIN) // <----------------------------------------------------------- WIN -#ifndef QT_NO_DRAGANDDROP - QOleDropTarget *dropTarget; // drop target - QList<QPointer<QWidget> > oleDropWidgets; -#endif -#elif defined(Q_WS_X11) // <--------------------------------------------------------- X11 - uint compress_events : 1; - WId xDndProxy; // XDND forwarding to embedded windows -#elif defined(Q_WS_MAC) // <------------------------------------------------------ MAC -#ifdef QT_MAC_USE_COCOA - // Cocoa Mask stuff - QImage maskBits; - CGImageRef imageMask; -#endif -#elif defined(Q_OS_SYMBIAN) // <----------------------------------------------------- Symbian - uint activated : 1; // RWindowBase::Activated has been called - - /** - * If this bit is set, each native widget receives the Q_SIGNALS from the - * Symbian control immediately before and immediately after draw ops are - * sent to the window server for this control: - * void beginNativePaintEvent(const QRect &paintRect); - * void endNativePaintEvent(const QRect &paintRect); - */ - uint receiveNativePaintEvents : 1; - - /** - * Defines the behaviour of QSymbianControl::Draw. - */ - enum NativePaintMode { - /** - * Normal drawing mode: blits the required region of the backing store - * via WSERV. - */ - Blit, - - /** - * Disable drawing for this widget. - */ - Disable, - - /** - * Paint zeros into the WSERV framebuffer, using BitGDI APIs. For windows - * with an EColor16MU display mode, zero is written only into the R, G and B - * channels of the pixel. - */ - ZeroFill, - - Default = Blit - }; - - NativePaintMode nativePaintMode; - -#endif -}; - -class Q_GUI_EXPORT QWidgetPrivate -{ -// Q_DECLARE_PUBLIC(QWidget) - -public: - // *************************** Cross-platform *************************************** - enum DrawWidgetFlags { - DrawAsRoot = 0x01, - DrawPaintOnScreen = 0x02, - DrawRecursive = 0x04, - DrawInvisible = 0x08, - DontSubtractOpaqueChildren = 0x10, - DontSetCompositionMode = 0x20, - DontDrawOpaqueChildren = 0x40 - }; - - enum CloseMode { - CloseNoEvent, - CloseWithEvent, - CloseWithSpontaneousEvent - }; - - enum Direction { - DirectionNorth = 0x01, - DirectionEast = 0x10, - DirectionSouth = 0x02, - DirectionWest = 0x20 - }; - - // Functions. - explicit QWidgetPrivate(int version); - ~QWidgetPrivate(); - - QWExtra *extraData() const; - QTLWExtra *topData() const; - QTLWExtra *maybeTopData() const; - QPainter *sharedPainter() const; - void setSharedPainter(QPainter *painter); - QWidgetBackingStore *maybeBackingStore() const; - void init(QWidget *desktopWidget, Qt::WindowFlags f); - void create_sys(WId window, bool initializeWindow, bool destroyOldWindow); - void createRecursively(); - void createWinId(WId id = 0); - - void createTLExtra(); - void createExtra(); - void deleteExtra(); - void createSysExtra(); - void deleteSysExtra(); - void createTLSysExtra(); - void deleteTLSysExtra(); - void updateSystemBackground(); - void propagatePaletteChange(); - - // Variables. - // Regular pointers (keep them together to avoid gaps on 64 bit architectures). - QWExtra *extra; - QWidget *focus_next; - QWidget *focus_prev; - QWidget *focus_child; - QLayout *layout; - QRegion *needsFlush; - QPaintDevice *redirectDev; - QWidgetItemV2 *widgetItem; - QPaintEngine *extraPaintEngine; - mutable const QMetaObject *polished; - QGraphicsEffect *graphicsEffect; - // All widgets are added into the allWidgets set. Once - // they receive a window id they are also added to the mapper. - // This should just ensure that all widgets are deleted by QApplication - static QWidgetMapper *mapper; -}; - -inline QWExtra *QWidgetPrivate::extraData() const -{ - return extra; -} - -inline QTLWExtra *QWidgetPrivate::topData() const -{ - const_cast<QWidgetPrivate *>(this)->createTLExtra(); - return extra->topextra; -} - -inline QTLWExtra *QWidgetPrivate::maybeTopData() const -{ - return extra ? extra->topextra : 0; -} - -#endif // QWIDGET_P_H
\ No newline at end of file |