📄 qtestaccessible.h
字号:
/******************************************************************************** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved.**** This file is part of the tools applications of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file. Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#ifndef QTESTACCESSIBLE_H#define QTESTACCESSIBLE_H#if 0// inform syncqt#pragma qt_no_master_include#endif#ifndef QT_NO_ACCESSIBILITY#define QTEST_ACCESSIBILITY#define QVERIFY_EVENT(object, child, event) \ QVERIFY(QTestAccessibility::verifyEvent(object, child, (int)event))#include <QtCore/qlist.h>#include <QtGui/qaccessible.h>#include <QtGui/qapplication.h>QT_BEGIN_HEADERclass QObject;struct QTestAccessibilityEvent{ QTestAccessibilityEvent(QObject* o = 0, int c = 0, int e = 0) : object(o), child(c), event(e) {} bool operator==(const QTestAccessibilityEvent &o) const { return o.object == object && o.child == child && o.event == event; } QObject* object; int child; int event;};typedef QList<QTestAccessibilityEvent> EventList;class QTestAccessibility{public: static void initialize() { if (!instance()) { instance() = new QTestAccessibility; qAddPostRoutine(cleanup); } } static void cleanup() { delete instance(); instance() = 0; } static void clearEvents() { eventList().clear(); } static EventList events() { return eventList(); } static bool verifyEvent(const QTestAccessibilityEvent& ev) { if (eventList().isEmpty()) return FALSE; return eventList().takeFirst() == ev; } static bool verifyEvent(QObject *o, int c, int e) { return verifyEvent(QTestAccessibilityEvent(o, c, e)); }private: QTestAccessibility() { QAccessible::installUpdateHandler(updateHandler); QAccessible::installRootObjectHandler(rootObjectHandler); } ~QTestAccessibility() { QAccessible::installUpdateHandler(0); QAccessible::installRootObjectHandler(0); } static void rootObjectHandler(QObject *object) { // qDebug("rootObjectHandler called %p", object); if (object) { QApplication* app = qobject_cast<QApplication*>(object); if ( !app ) qWarning("QTEST_ACCESSIBILITY: root Object is not a QApplication!"); } else { qWarning("QTEST_ACCESSIBILITY: root Object called with 0 pointer"); } } static void updateHandler(QObject *o, int c, QAccessible::Event e) { // qDebug("updateHandler called: %p %d %d", o, c, (int)e); eventList().append(QTestAccessibilityEvent(o, c, (int)e)); } static EventList &eventList() { static EventList list; return list; } static QTestAccessibility *&instance() { static QTestAccessibility *ta = 0; return ta; }};#endifQT_END_HEADER#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -