| /**************************************************************************** |
| ** |
| ** 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 <ActiveQt/QAxFactory> |
| #include <QtWidgets/QAction> |
| #include <QtWidgets/QApplication> |
| #include <QtWidgets/QMainWindow> |
| #include <QtWidgets/QMenu> |
| #include <QtWidgets/QMenuBar> |
| #include <QtWidgets/QPlainTextEdit> |
| #include <QtWidgets/QToolBar> |
| |
| #include <QtGui/QClipboard> |
| #include <QtGui/QWindow> |
| |
| #include <QtCore/QDebug> |
| #include <QtCore/QLibraryInfo> |
| |
| /* 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() |