Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qwindowswindow.cpp File Reference

(31c38d5f766366931cd127f7323f9c26ac5de498)

#include <QtCore/qt_windows.h>
#include <QtGui/qstylehints.h>
#include "qwindowswindow.h"
#include "qwindowscontext.h"
#include "qwindowstheme.h"
#include "qwindowsscreen.h"
#include "qwindowsintegration.h"
#include "qwindowsmenu.h"
#include "qwindowsnativeinterface.h"
#include "qwindowsopenglcontext.h"
#include "qwindowsopengltester.h"
#include <QtGui/qguiapplication.h>
#include <QtGui/qscreen.h>
#include <QtGui/qwindow.h>
#include <QtGui/qregion.h>
#include <QtGui/qopenglcontext.h>
#include <QtGui/qpainterpath.h>
#include <QtGui/private/qwindowsthemecache_p.h>
#include <private/qwindow_p.h>
#include <private/qguiapplication_p.h>
#include <private/qhighdpiscaling_p.h>
#include <qpa/qwindowsysteminterface.h>
#include <private/qsystemlibrary_p.h>
#include <private/qwinregistry_p.h>
#include <QtCore/qdebug.h>
#include <QtCore/qlibraryinfo.h>
#include <QtCore/qoperatingsystemversion.h>
#include <dwmapi.h>
#include <shellscalingapi.h>
#include <private/qdxgivsyncservice_p.h>
Include dependency graph for qwindowswindow.cpp:

Go to the source code of this file.

Classes

class  WindowCreationData
 Window creation code. More...

Macros

#define GWL_HWNDPARENT   (-8)

Typedefs

using QWindowCreationContextPtr = QSharedPointer<QWindowCreationContext>

Enumerations

enum  { defaultWindowWidth = 160 , defaultWindowHeight = 160 , defaultWindowWidth = 160 , defaultWindowHeight = 160 }
enum  : WORD { DwmwaUseImmersiveDarkMode = 20 , DwmwaUseImmersiveDarkModeBefore20h1 = 19 , DwmwaUseImmersiveDarkMode = 20 , DwmwaUseImmersiveDarkModeBefore20h1 = 19 }
enum  { defaultWindowWidth = 160 , defaultWindowHeight = 160 , defaultWindowWidth = 160 , defaultWindowHeight = 160 }
enum  : WORD { DwmwaUseImmersiveDarkMode = 20 , DwmwaUseImmersiveDarkModeBefore20h1 = 19 , DwmwaUseImmersiveDarkMode = 20 , DwmwaUseImmersiveDarkModeBefore20h1 = 19 }

Functions

Q_GUI_EXPORT HICON qt_pixmapToWinHICON (const QPixmap &)
static QByteArray debugWinStyle (DWORD style)
static QByteArray debugWinExStyle (DWORD exStyle)
static QByteArray debugWinSwpPos (UINT flags)
static QByteArray debugWindowPlacementFlags (const UINT flags)
static QByteArray debugShowWindowCmd (const UINT cmd)
static QSize qSizeOfRect (const RECT &rect)
static QRect qrectFromRECT (const RECT &rect)
static RECT RECTfromQRect (const QRect &rect)
QDebug operator<< (QDebug d, const RECT &r)
QDebug operator<< (QDebug d, const POINT &p)
QDebug operator<< (QDebug d, const WINDOWPOS &wp)
QDebug operator<< (QDebug d, const NCCALCSIZE_PARAMS &p)
QDebug operator<< (QDebug d, const MINMAXINFO &i)
QDebug operator<< (QDebug d, const WINDOWPLACEMENT &wp)
QDebug operator<< (QDebug d, const GUID &guid)
static void formatBriefRectangle (QDebug &d, const QRect &r)
static void formatBriefMargins (QDebug &d, const QMargins &m)
static QPoint windowPlacementOffset (HWND hwnd, const QPoint &point)
static QRect frameGeometry (HWND hwnd, bool topLevel)
static QWindow::Visibility windowVisibility_sys (HWND hwnd)
static bool windowIsAccelerated (const QWindow *w)
static bool applyBlurBehindWindow (HWND hwnd)
static bool shouldShowMaximizeButton (const QWindow *w, Qt::WindowFlags flags)
static void setWindowOpacity (HWND hwnd, Qt::WindowFlags flags, bool hasAlpha, bool accelerated, qreal level)
static int getResizeBorderThickness (const UINT dpi)
static QMargins invisibleMargins (QPoint screenPoint)
 Calculates the dimensions of the invisible borders within the window frames which only exist on Windows 10 and onwards.
static QMargins invisibleMargins (const HWND hwnd)
QDebug operator<< (QDebug debug, const WindowCreationData &d)
static void fixTopLevelWindowFlags (Qt::WindowFlags &flags)
static QScreenscreenForDeviceName (const QWindow *w, const QString &name)
static QPoint calcPosition (const QWindow *w, const QWindowCreationContextPtr &context, const QMargins &invMargins)
static bool shouldApplyDarkFrame (const QWindow *w)
static int getTitleBarHeight_sys (const UINT dpi)
static QSize toNativeSizeConstrained (QSize dip, const QScreen *s)
static bool shouldOmitFrameAdjustment (const Qt::WindowFlags flags, DWORD style)
static bool shouldOmitFrameAdjustment (const Qt::WindowFlags flags, HWND hwnd)
static bool testShowWithoutActivating (const QWindow *window)
static void setMinimizedGeometry (HWND hwnd, const QRect &r)
static void setRestoreMaximizedFlag (HWND hwnd, bool set=true)
static QRect normalFrameGeometry (HWND hwnd)
static QString msgUnableToSetGeometry (const QWindowsWindow *platformWindow, const QRect &requestedRect, const QRect &obtainedRect, const QMargins &fullMargins, const QMargins &customMargins)
static bool equalDpi (const QDpi &d1, const QDpi &d2)
static bool isSoftwareGl ()
static bool isResize (const WINDOWPOS *windowPos)
static HRGN createRectRegion (const QRect &r)
static void addRectToWinRegion (const QRect &rect, HRGN *winRegion)
static HRGN qRegionToWinRegion (const QRegion &region)
static DWORD edgesToWinOrientation (Qt::Edges edges)
static CursorHandlePtr defaultCursor (const QWindow *w)
static bool applyNewCursor (const QWindow *w)
static HICON createHIcon (const QIcon &icon, int xSize, int ySize)

Macro Definition Documentation

◆ GWL_HWNDPARENT

#define GWL_HWNDPARENT   (-8)

Definition at line 57 of file qwindowswindow.cpp.

Typedef Documentation

◆ QWindowCreationContextPtr

Enumeration Type Documentation

◆ anonymous enum [1/2]

anonymous enum
Enumerator
defaultWindowWidth 
defaultWindowHeight 
defaultWindowWidth 
defaultWindowHeight 

Definition at line 64 of file qwindowswindow.cpp.

◆ anonymous enum [2/2]

anonymous enum
Enumerator
defaultWindowWidth 
defaultWindowHeight 
defaultWindowWidth 
defaultWindowHeight 

Definition at line 64 of file qwindowswindow.cpp.

◆ anonymous enum [1/2]

anonymous enum : WORD
Enumerator
DwmwaUseImmersiveDarkMode 
DwmwaUseImmersiveDarkModeBefore20h1 
DwmwaUseImmersiveDarkMode 
DwmwaUseImmersiveDarkModeBefore20h1 

Definition at line 3814 of file qwindowswindow.cpp.

◆ anonymous enum [2/2]

anonymous enum : WORD
Enumerator
DwmwaUseImmersiveDarkMode 
DwmwaUseImmersiveDarkModeBefore20h1 
DwmwaUseImmersiveDarkMode 
DwmwaUseImmersiveDarkModeBefore20h1 

Definition at line 3814 of file qwindowswindow.cpp.

Function Documentation

◆ addRectToWinRegion()

void addRectToWinRegion ( const QRect & rect,
HRGN * winRegion )
inlinestatic

Definition at line 3077 of file qwindowswindow.cpp.

◆ applyBlurBehindWindow()

bool applyBlurBehindWindow ( HWND hwnd)
static

Definition at line 453 of file qwindowswindow.cpp.

◆ applyNewCursor()

bool applyNewCursor ( const QWindow * w)
inlinestatic

Definition at line 3659 of file qwindowswindow.cpp.

References QWindowsContext::instance().

Here is the call graph for this function:

◆ calcPosition()

QPoint calcPosition ( const QWindow * w,
const QWindowCreationContextPtr & context,
const QMargins & invMargins )
static

Definition at line 664 of file qwindowswindow.cpp.

◆ createHIcon()

HICON createHIcon ( const QIcon & icon,
int xSize,
int ySize )
static

Definition at line 3780 of file qwindowswindow.cpp.

◆ createRectRegion()

HRGN createRectRegion ( const QRect & r)
inlinestatic

Definition at line 3072 of file qwindowswindow.cpp.

◆ debugShowWindowCmd()

QByteArray debugShowWindowCmd ( const UINT cmd)
inlinestaticnodiscard

Definition at line 233 of file qwindowswindow.cpp.

◆ debugWindowPlacementFlags()

QByteArray debugWindowPlacementFlags ( const UINT flags)
inlinestaticnodiscard

Definition at line 220 of file qwindowswindow.cpp.

◆ debugWinExStyle()

QByteArray debugWinExStyle ( DWORD exStyle)
static

Definition at line 126 of file qwindowswindow.cpp.

◆ debugWinStyle()

QByteArray debugWinStyle ( DWORD style)
static

Definition at line 71 of file qwindowswindow.cpp.

◆ debugWinSwpPos()

QByteArray debugWinSwpPos ( UINT flags)
static

Definition at line 183 of file qwindowswindow.cpp.

◆ defaultCursor()

CursorHandlePtr defaultCursor ( const QWindow * w)
inlinestatic

Definition at line 3647 of file qwindowswindow.cpp.

◆ edgesToWinOrientation()

DWORD edgesToWinOrientation ( Qt::Edges edges)
inlinestatic

Definition at line 3237 of file qwindowswindow.cpp.

◆ equalDpi()

bool equalDpi ( const QDpi & d1,
const QDpi & d2 )
inlinestatic

Definition at line 2349 of file qwindowswindow.cpp.

◆ fixTopLevelWindowFlags()

void fixTopLevelWindowFlags ( Qt::WindowFlags & flags)
inlinestatic

Definition at line 626 of file qwindowswindow.cpp.

◆ formatBriefMargins()

void formatBriefMargins ( QDebug & d,
const QMargins & m )
static

Definition at line 371 of file qwindowswindow.cpp.

◆ formatBriefRectangle()

void formatBriefRectangle ( QDebug & d,
const QRect & r )
static

Definition at line 366 of file qwindowswindow.cpp.

◆ frameGeometry()

QRect frameGeometry ( HWND hwnd,
bool topLevel )
inlinestatic

Definition at line 392 of file qwindowswindow.cpp.

◆ getResizeBorderThickness()

int getResizeBorderThickness ( const UINT dpi)
inlinestaticnodiscard

Definition at line 522 of file qwindowswindow.cpp.

◆ getTitleBarHeight_sys()

int getTitleBarHeight_sys ( const UINT dpi)
inlinestatic

Definition at line 869 of file qwindowswindow.cpp.

◆ invisibleMargins() [1/2]

QMargins invisibleMargins ( const HWND hwnd)
inlinestaticnodiscard

Definition at line 550 of file qwindowswindow.cpp.

◆ invisibleMargins() [2/2]

QMargins invisibleMargins ( QPoint screenPoint)
static

Calculates the dimensions of the invisible borders within the window frames which only exist on Windows 10 and onwards.

Definition at line 536 of file qwindowswindow.cpp.

◆ isResize()

bool isResize ( const WINDOWPOS * windowPos)
static

Definition at line 2922 of file qwindowswindow.cpp.

◆ isSoftwareGl()

bool isSoftwareGl ( )
inlinestatic

Definition at line 2486 of file qwindowswindow.cpp.

Referenced by QWindowsWindow::handleWmPaint().

Here is the caller graph for this function:

◆ msgUnableToSetGeometry()

QString msgUnableToSetGeometry ( const QWindowsWindow * platformWindow,
const QRect & requestedRect,
const QRect & obtainedRect,
const QMargins & fullMargins,
const QMargins & customMargins )
static

Definition at line 2203 of file qwindowswindow.cpp.

◆ normalFrameGeometry()

QRect normalFrameGeometry ( HWND hwnd)
static

Definition at line 2170 of file qwindowswindow.cpp.

◆ operator<<() [1/8]

QDebug operator<< ( QDebug d,
const GUID & guid )

Definition at line 348 of file qwindowswindow.cpp.

◆ operator<<() [2/8]

QDebug operator<< ( QDebug d,
const MINMAXINFO & i )

Definition at line 325 of file qwindowswindow.cpp.

◆ operator<<() [3/8]

QDebug operator<< ( QDebug d,
const NCCALCSIZE_PARAMS & p )

Definition at line 316 of file qwindowswindow.cpp.

◆ operator<<() [4/8]

QDebug operator<< ( QDebug d,
const POINT & p )

Definition at line 297 of file qwindowswindow.cpp.

◆ operator<<() [5/8]

QDebug operator<< ( QDebug d,
const RECT & r )

Definition at line 287 of file qwindowswindow.cpp.

◆ operator<<() [6/8]

QDebug operator<< ( QDebug d,
const WINDOWPLACEMENT & wp )

Definition at line 336 of file qwindowswindow.cpp.

◆ operator<<() [7/8]

QDebug operator<< ( QDebug d,
const WINDOWPOS & wp )

Definition at line 305 of file qwindowswindow.cpp.

◆ operator<<() [8/8]

QDebug operator<< ( QDebug debug,
const WindowCreationData & d )

Definition at line 608 of file qwindowswindow.cpp.

References WindowCreationData::topLevel.

◆ qrectFromRECT()

QRect qrectFromRECT ( const RECT & rect)
inlinestatic

Definition at line 273 of file qwindowswindow.cpp.

◆ qRegionToWinRegion()

HRGN qRegionToWinRegion ( const QRegion & region)
static

Definition at line 3089 of file qwindowswindow.cpp.

◆ qSizeOfRect()

QSize qSizeOfRect ( const RECT & rect)
inlinestatic

Definition at line 268 of file qwindowswindow.cpp.

◆ qt_pixmapToWinHICON()

Q_GUI_EXPORT HICON qt_pixmapToWinHICON ( const QPixmap & p)

Definition at line 539 of file qpixmap_win.cpp.

◆ RECTfromQRect()

RECT RECTfromQRect ( const QRect & rect)
inlinestatic

Definition at line 278 of file qwindowswindow.cpp.

◆ screenForDeviceName()

QScreen * screenForDeviceName ( const QWindow * w,
const QString & name )
static

Definition at line 646 of file qwindowswindow.cpp.

◆ setMinimizedGeometry()

void setMinimizedGeometry ( HWND hwnd,
const QRect & r )
static

Definition at line 1935 of file qwindowswindow.cpp.

◆ setRestoreMaximizedFlag()

void setRestoreMaximizedFlag ( HWND hwnd,
bool set = true )
static

Definition at line 1946 of file qwindowswindow.cpp.

◆ setWindowOpacity()

void setWindowOpacity ( HWND hwnd,
Qt::WindowFlags flags,
bool hasAlpha,
bool accelerated,
qreal level )
static

Definition at line 506 of file qwindowswindow.cpp.

◆ shouldApplyDarkFrame()

bool shouldApplyDarkFrame ( const QWindow * w)
inlinestatic

Definition at line 852 of file qwindowswindow.cpp.

◆ shouldOmitFrameAdjustment() [1/2]

bool shouldOmitFrameAdjustment ( const Qt::WindowFlags flags,
DWORD style )
static

Definition at line 1055 of file qwindowswindow.cpp.

◆ shouldOmitFrameAdjustment() [2/2]

bool shouldOmitFrameAdjustment ( const Qt::WindowFlags flags,
HWND hwnd )
static

Definition at line 1062 of file qwindowswindow.cpp.

◆ shouldShowMaximizeButton()

bool shouldShowMaximizeButton ( const QWindow * w,
Qt::WindowFlags flags )
static

Definition at line 470 of file qwindowswindow.cpp.

◆ testShowWithoutActivating()

bool testShowWithoutActivating ( const QWindow * window)
inlinestatic

Definition at line 1928 of file qwindowswindow.cpp.

◆ toNativeSizeConstrained()

QSize toNativeSizeConstrained ( QSize dip,
const QScreen * s )
static

Definition at line 1039 of file qwindowswindow.cpp.

◆ windowIsAccelerated()

bool windowIsAccelerated ( const QWindow * w)
inlinestatic

Definition at line 441 of file qwindowswindow.cpp.

Referenced by WindowCreationData::initialize().

Here is the caller graph for this function:

◆ windowPlacementOffset()

QPoint windowPlacementOffset ( HWND hwnd,
const QPoint & point )
static

Definition at line 378 of file qwindowswindow.cpp.

References QWindowsContext::instance(), QWindowsScreenManager::screenAtDp(), and QWindowsContext::screenManager().

Here is the call graph for this function:

◆ windowVisibility_sys()

QWindow::Visibility windowVisibility_sys ( HWND hwnd)
static

Definition at line 420 of file qwindowswindow.cpp.