/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** 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 #include #include #include #include #include #include #include #include #include #include #include /* A sample control for testing embedding Active X controls with * functionality to dump window parameters. See testcontrol.html * on how to use it with Internet Explorer. */ QT_USE_NAMESPACE class QTestControl : public QMainWindow { Q_OBJECT Q_CLASSINFO("ClassID", "{DF16845C-92CD-4AAB-A982-EB9840E7466A}") Q_CLASSINFO("InterfaceID", "{616F620B-91C5-4410-A74E-6B81C76FFFE1}") Q_CLASSINFO("EventsID", "{E1816BBA-BF5D-4A31-9855-D6BA43205510}") public: explicit QTestControl(QWidget *parent = nullptr); public slots: void appendText(const QString &t) { m_logWindow->appendPlainText(t); } void testMapToGlobal(); void dumpWindowInfo(); void copyAll(); private: QPlainTextEdit *m_logWindow; }; QTestControl::QTestControl(QWidget *parent) : QMainWindow(parent) , m_logWindow(new QPlainTextEdit) { QMenuBar *menubar = menuBar(); QToolBar *toolbar = new QToolBar; addToolBar(Qt::TopToolBarArea, toolbar); QMenu *testMenu = menubar->addMenu(QLatin1String("&Test")); QAction *a = testMenu->addAction(QLatin1String("&Dump Window"), this, &QTestControl::dumpWindowInfo); toolbar->addAction(a); a = testMenu->addAction(QLatin1String("&Map to Global"), this, &QTestControl::testMapToGlobal); toolbar->addAction(a); QMenu *editMenu = menubar->addMenu(QLatin1String("&Edit")); a = editMenu->addAction(QLatin1String("Copy"), this, &QTestControl::dumpWindowInfo); a->setShortcut(QKeySequence::Copy); toolbar->addAction(a); m_logWindow->setReadOnly(true); setCentralWidget(m_logWindow); appendText(QLatin1String(QLibraryInfo::build())); } void QTestControl::testMapToGlobal() { QString text; QPoint global = mapToGlobal(QPoint(0, 0)); QDebug(&text) << "\nmapToGlobal:" << global << ", back:" << mapFromGlobal(global) << '\n'; appendText(text); } void QTestControl::dumpWindowInfo() { QString text; QDebug debug(&text); debug.setVerbosity(3); debug << "\nQWidget: " << this <<"\n\nQWindow: " << windowHandle() << '\n'; appendText(text); } void QTestControl::copyAll() { QGuiApplication::clipboard()->setText(m_logWindow->toPlainText()); } #include "main.moc" QAXFACTORY_BEGIN("{EC08F8FC-2754-47AB-8EFE-56A54057F34F}", "{A095BA0C-224F-4933-A458-2DD7F6B85D90}") QAXCLASS(QTestControl) QAXFACTORY_END()