diff options
Diffstat (limited to 'tests/manual/dwmfeatures/testwidget.cpp')
-rw-r--r-- | tests/manual/dwmfeatures/testwidget.cpp | 181 |
1 files changed, 0 insertions, 181 deletions
diff --git a/tests/manual/dwmfeatures/testwidget.cpp b/tests/manual/dwmfeatures/testwidget.cpp deleted file mode 100644 index 189a44c..0000000 --- a/tests/manual/dwmfeatures/testwidget.cpp +++ /dev/null @@ -1,181 +0,0 @@ -/**************************************************************************** - ** - ** Copyright (C) 2016 Ivan Vizir <define-true-false@yandex.com> - ** Contact: https://www.qt.io/licensing/ - ** - ** This file is part of the test suite of the Qt Toolkit. - ** - ** $QT_BEGIN_LICENSE:GPL-EXCEPT$ - ** Commercial License Usage - ** Licensees holding valid commercial Qt licenses may use this file in - ** accordance with the commercial license agreement provided with the - ** Software or, alternatively, in accordance with the terms contained in - ** a written agreement between you and The Qt Company. For licensing terms - ** and conditions see https://www.qt.io/terms-conditions. For further - ** information use the contact form at https://www.qt.io/contact-us. - ** - ** GNU General Public License Usage - ** Alternatively, this file may be used under the terms of the GNU - ** General Public License version 3 as published by the Free Software - ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT - ** included in the packaging of this file. Please review the following - ** information to ensure the GNU General Public License requirements will - ** be met: https://www.gnu.org/licenses/gpl-3.0.html. - ** - ** $QT_END_LICENSE$ - ** - ****************************************************************************/ - -#include "testwidget.h" -#include "ui_testwidget.h" - -#include <QtWin> -#include <QWinEvent> -#include <QDebug> -#include <qt_windows.h> - -TestWidget::TestWidget(QWidget *parent) : - QWidget(parent), - ui(new Ui::TestWidget) -{ - ui->setupUi(this); - - connect(ui->btnPeekDisallow, &QAbstractButton::clicked, this, &TestWidget::onDisallowPeekClicked); - connect(ui->btnPeekExclude, &QAbstractButton::clicked, this, &TestWidget::onExcludeFromPeekClicked); - connect(ui->radioFlipDefault, &QAbstractButton::clicked, this, &TestWidget::onFlip3DPolicyChanged); - connect(ui->radioFlipAbove, &QAbstractButton::clicked, this, &TestWidget::onFlip3DPolicyChanged); - connect(ui->radioFlipBelow, &QAbstractButton::clicked, this, &TestWidget::onFlip3DPolicyChanged); - connect(ui->radioNcrpUseWindowStyle, &QAbstractButton::clicked, this, &TestWidget::onNonClientAreaRenderingPolicyChanged); - connect(ui->radioNcrpDisable, &QAbstractButton::clicked, this, &TestWidget::onNonClientAreaRenderingPolicyChanged); - connect(ui->radioNcrpEnable, &QAbstractButton::clicked, this, &TestWidget::onNonClientAreaRenderingPolicyChanged); - connect(ui->btnFrameReset, &QAbstractButton::clicked, this, &TestWidget::onResetGlassFrameClicked); - connect(ui->frameTop, QOverload<int>::of(&QSpinBox::valueChanged), - this, &TestWidget::onGlassMarginsChanged); - connect(ui->frameRight, QOverload<int>::of(&QSpinBox::valueChanged), - this, &TestWidget::onGlassMarginsChanged); - connect(ui->frameBottom, QOverload<int>::of(&QSpinBox::valueChanged), - this, &TestWidget::onGlassMarginsChanged); - connect(ui->frameLeft, QOverload<int>::of(&QSpinBox::valueChanged), - this, &TestWidget::onGlassMarginsChanged); -} - -TestWidget::~TestWidget() -{ - delete ui; -} - -void TestWidget::changeEvent(QEvent *e) -{ - QWidget::changeEvent(e); - switch (e->type()) { - case QEvent::LanguageChange: - ui->retranslateUi(this); - break; - default: - break; - } -} - -bool TestWidget::event(QEvent *e) -{ - if (e->type() == QWinEvent::CompositionChange) { - qDebug() << "Composition state change."; - } else if (e->type() == QWinEvent::ThemeChange) { - qDebug() << "Theme change."; - } - return QWidget::event(e); -} - -void TestWidget::onDisallowPeekClicked() -{ - QtWin::setWindowDisallowPeek(this, ui->btnPeekDisallow->isChecked()); -} - -void TestWidget::onExcludeFromPeekClicked() -{ - QtWin::setWindowExcludedFromPeek(this, ui->btnPeekExclude->isChecked()); -} - -void TestWidget::onFlip3DPolicyChanged() -{ - QtWin::WindowFlip3DPolicy policy; - if (ui->radioFlipAbove->isChecked()) - policy = QtWin::FlipExcludeAbove; - else if (ui->radioFlipBelow->isChecked()) - policy = QtWin::FlipExcludeBelow; - else - policy = QtWin::FlipDefault; - QtWin::setWindowFlip3DPolicy(this, policy); -} - -void TestWidget::onNonClientAreaRenderingPolicyChanged() -{ - QtWin::WindowNonClientRenderingPolicy policy; - if (ui->radioNcrpDisable->isChecked()) - policy = QtWin::NonClientRenderingDisabled; - else if (ui->radioNcrpEnable->isChecked()) - policy = QtWin::NonClientRenderingEnabled; - else - policy = QtWin::NonClientRenderingUseWindowStyle; - QtWin::setWindowNonClientAreaRenderingPolicy(this, policy); -} - -void TestWidget::onGlassMarginsChanged() -{ - // what you see here is the only way to force widget to redraw itself - // so it actually redraws itself without caching and without any glitch - // but causes flickering :( - // and yes, update() and redraw() do nothing - - if (!testAttribute(Qt::WA_NoSystemBackground)) { - - QSize original = size(); - QSize modified = original; - modified.setWidth(original.height() + 1); - resize(modified); - - setAttribute(Qt::WA_NoSystemBackground); - QtWin::extendFrameIntoClientArea(this, - ui->frameTop->value(), - ui->frameRight->value(), - ui->frameBottom->value(), - ui->frameLeft->value()); - - resize(original); - - ui->groupBox_2->setAutoFillBackground(true); - ui->groupBox_3->setAutoFillBackground(true); - ui->groupBox_4->setAutoFillBackground(true); - } else { - QtWin::extendFrameIntoClientArea(this, - ui->frameLeft->value(), - ui->frameTop->value(), - ui->frameRight->value(), - ui->frameBottom->value()); - } -} - -void TestWidget::onResetGlassFrameClicked() -{ - if (!testAttribute(Qt::WA_NoSystemBackground)) - return; - - ui->frameTop->setValue(0); - ui->frameRight->setValue(0); - ui->frameBottom->setValue(0); - ui->frameLeft->setValue(0); - - QtWin::resetExtendedFrame(this); - setAttribute(Qt::WA_NoSystemBackground, false); - - QSize original = size(); - QSize modified = original; - modified.setHeight(original.height() + 1); - resize(modified); - - ui->groupBox_2->setAutoFillBackground(false); - ui->groupBox_3->setAutoFillBackground(false); - ui->groupBox_4->setAutoFillBackground(false); - - resize(original); -} |