📄 qaccessiblewidgets.cpp
字号:
}QStackedWidget *QAccessibleStackedWidget::stackedWidget() const{ return static_cast<QStackedWidget *>(object());}#endif // QT_NO_STACKEDWIDGET#ifndef QT_NO_TOOLBOX// ======================= QAccessibleToolBox ======================QAccessibleToolBox::QAccessibleToolBox(QWidget *widget) : QAccessibleWidgetEx(widget, LayeredPane){ Q_ASSERT(qobject_cast<QToolBox *>(widget));}QString QAccessibleToolBox::text(Text textType, int child) const{ if (textType != Value || child <= 0 || child > toolBox()->count()) return QAccessibleWidgetEx::text(textType, child); return toolBox()->itemText(child - 1);}void QAccessibleToolBox::setText(Text textType, int child, const QString &text){ if (textType != Value || child <= 0 || child > toolBox()->count()) { QAccessibleWidgetEx::setText(textType, child, text); return; } toolBox()->setItemText(child - 1, text);}QAccessible::State QAccessibleToolBox::state(int child) const{ QWidget *childWidget = toolBox()->widget(child - 1); if (!childWidget) return QAccessibleWidgetEx::state(child); QAccessible::State childState = QAccessible::Normal; if (toolBox()->currentWidget() == childWidget) childState |= QAccessible::Expanded; else childState |= QAccessible::Collapsed; return childState;}QVariant QAccessibleToolBox::invokeMethodEx(QAccessible::Method, int, const QVariantList &){ return QVariant();}int QAccessibleToolBox::childCount() const{ return toolBox()->count();}int QAccessibleToolBox::indexOfChild(const QAccessibleInterface *child) const{ if (!child) return -1; QWidget *childWidget = qobject_cast<QWidget *>(child->object()); if (!childWidget) return -1; int index = toolBox()->indexOf(childWidget); if (index != -1) ++index; return index;}int QAccessibleToolBox::navigate(RelationFlag relation, int entry, QAccessibleInterface **target) const{ *target = 0; if (entry <= 0 || entry > toolBox()->count()) return QAccessibleWidgetEx::navigate(relation, entry, target); int index = -1; if (relation == QAccessible::Up) index = entry - 2; else if (relation == QAccessible::Down) index = entry; *target = QAccessible::queryAccessibleInterface(toolBox()->widget(index)); return *target ? 0: -1;}QToolBox * QAccessibleToolBox::toolBox() const{ return static_cast<QToolBox *>(object());}#endif // QT_NO_TOOLBOX// ======================= QAccessibleMdiArea ======================#ifndef QT_NO_MDIAREAQAccessibleMdiArea::QAccessibleMdiArea(QWidget *widget) : QAccessibleWidgetEx(widget, LayeredPane){ Q_ASSERT(qobject_cast<QMdiArea *>(widget));}QAccessible::State QAccessibleMdiArea::state(int child) const{ if (child < 0) return QAccessibleWidgetEx::state(child); if (child == 0) return QAccessible::Normal; QList<QMdiSubWindow *> subWindows = mdiArea()->subWindowList(); if (subWindows.isEmpty() || child > subWindows.count()) return QAccessibleWidgetEx::state(child); if (subWindows.at(child - 1) == mdiArea()->activeSubWindow()) return QAccessible::Focused; return QAccessible::Normal;}QVariant QAccessibleMdiArea::invokeMethodEx(QAccessible::Method, int, const QVariantList &){ return QVariant();}int QAccessibleMdiArea::childCount() const{ return mdiArea()->subWindowList().count();}int QAccessibleMdiArea::indexOfChild(const QAccessibleInterface *child) const{ if (!child || !child->object() || mdiArea()->subWindowList().isEmpty()) return -1; if (QMdiSubWindow *window = qobject_cast<QMdiSubWindow *>(child->object())) { int index = mdiArea()->subWindowList().indexOf(window); if (index != -1) return ++index; } return -1;}int QAccessibleMdiArea::navigate(RelationFlag relation, int entry, QAccessibleInterface **target) const{ *target = 0; QWidget *targetObject = 0; QList<QMdiSubWindow *> subWindows = mdiArea()->subWindowList(); switch (relation) { case Child: if (entry < 1 || subWindows.isEmpty() || entry > subWindows.count()) return -1; targetObject = subWindows.at(entry - 1); break; case Up: case Down: case Left: case Right: targetObject = mdiAreaNavigate(mdiArea(), relation, entry); break; default: return QAccessibleWidgetEx::navigate(relation, entry, target); } *target = QAccessible::queryAccessibleInterface(targetObject); return *target ? 0: -1;}QMdiArea *QAccessibleMdiArea::mdiArea() const{ return static_cast<QMdiArea *>(object());}// ======================= QAccessibleMdiSubWindow ======================QAccessibleMdiSubWindow::QAccessibleMdiSubWindow(QWidget *widget) : QAccessibleWidgetEx(widget, QAccessible::Window){ Q_ASSERT(qobject_cast<QMdiSubWindow *>(widget));}QString QAccessibleMdiSubWindow::text(Text textType, int child) const{ if (textType == QAccessible::Name && (child == 0 || child == 1)) { QString title = mdiSubWindow()->windowTitle(); title.replace(QLatin1String("[*]"), QLatin1String("")); return title; } return QAccessibleWidgetEx::text(textType, child);}void QAccessibleMdiSubWindow::setText(Text textType, int child, const QString &text){ if (textType == QAccessible::Name && (child == 0 || child == 1)) mdiSubWindow()->setWindowTitle(text); else QAccessibleWidgetEx::setText(textType, child, text);}QAccessible::State QAccessibleMdiSubWindow::state(int child) const{ if (child != 0 || !mdiSubWindow()->parent()) return QAccessibleWidgetEx::state(child); QAccessible::State state = QAccessible::Normal | QAccessible::Focusable; if (!mdiSubWindow()->isMaximized()) state |= (QAccessible::Movable | QAccessible::Sizeable); if (mdiSubWindow()->isAncestorOf(QApplication::focusWidget()) || QApplication::focusWidget() == mdiSubWindow()) state |= QAccessible::Focused; if (!mdiSubWindow()->isVisible()) state |= QAccessible::Invisible; if (!mdiSubWindow()->parentWidget()->contentsRect().contains(mdiSubWindow()->geometry())) state |= QAccessible::Offscreen; if (!mdiSubWindow()->isEnabled()) state |= QAccessible::Unavailable; return state;}QVariant QAccessibleMdiSubWindow::invokeMethodEx(QAccessible::Method, int, const QVariantList &){ return QVariant();}int QAccessibleMdiSubWindow::childCount() const{ if (mdiSubWindow()->widget()) return 1; return 0;}int QAccessibleMdiSubWindow::indexOfChild(const QAccessibleInterface *child) const{ if (child && child->object() && child->object() == mdiSubWindow()->widget()) return 1; return -1;}int QAccessibleMdiSubWindow::navigate(RelationFlag relation, int entry, QAccessibleInterface **target) const{ *target = 0; if (!mdiSubWindow()->parent()) return QAccessibleWidgetEx::navigate(relation, entry, target); QWidget *targetObject = 0; QMdiSubWindow *source = mdiSubWindow(); switch (relation) { case Child: if (entry != 1 || !source->widget()) return -1; targetObject = source->widget(); break; case Up: case Down: case Left: case Right: { if (entry != 0) break; QWidget *parent = source->parentWidget(); while (parent && !parent->inherits("QMdiArea")) parent = parent->parentWidget(); QMdiArea *mdiArea = qobject_cast<QMdiArea *>(parent); if (!mdiArea) break; int index = mdiArea->subWindowList().indexOf(source); if (index == -1) break; if (QWidget *dest = mdiAreaNavigate(mdiArea, relation, index + 1)) { *target = QAccessible::queryAccessibleInterface(dest); return *target ? 0 : -1; } break; } default: return QAccessibleWidgetEx::navigate(relation, entry, target); } *target = QAccessible::queryAccessibleInterface(targetObject); return *target ? 0: -1;}QRect QAccessibleMdiSubWindow::rect(int child) const{ if (mdiSubWindow()->isHidden()) return QRect(); if (!mdiSubWindow()->parent()) return QAccessibleWidgetEx::rect(child); const QPoint pos = mdiSubWindow()->mapToGlobal(QPoint(0, 0)); if (child == 0) return QRect(pos, mdiSubWindow()->size()); if (child == 1 && mdiSubWindow()->widget()) { if (mdiSubWindow()->widget()->isHidden()) return QRect(); const QRect contentsRect = mdiSubWindow()->contentsRect(); return QRect(pos.x() + contentsRect.x(), pos.y() + contentsRect.y(), contentsRect.width(), contentsRect.height()); } return QRect();}int QAccessibleMdiSubWindow::childAt(int x, int y) const{ if (!mdiSubWindow()->isVisible()) return -1; if (!mdiSubWindow()->parent()) return QAccessibleWidgetEx::childAt(x, y); const QRect globalGeometry = rect(0); if (!globalGeometry.isValid()) return -1; const QRect globalChildGeometry = rect(1); if (globalChildGeometry.isValid() && globalChildGeometry.contains(QPoint(x, y))) return 1; if (globalGeometry.contains(QPoint(x, y))) return 0; return -1;}QMdiSubWindow *QAccessibleMdiSubWindow::mdiSubWindow() const{ return static_cast<QMdiSubWindow *>(object());}#endif // QT_NO_MDIAREA// ======================= QAccessibleWorkspace ======================#ifndef QT_NO_WORKSPACEQAccessibleWorkspace::QAccessibleWorkspace(QWidget *widget) : QAccessibleWidgetEx(widget, LayeredPane){ Q_ASSERT(qobject_cast<QWorkspace *>(widget));}QAccessible::State QAccessibleWorkspace::state(int child) const{ if (child < 0) return QAccessibleWidgetEx::state(child); if (child == 0) return QAccessible::Normal; QWidgetList subWindows = workspace()->windowList(); if (subWindows.isEmpty() || child > subWindows.count()) return QAccessibleWidgetEx::state(child); if (subWindows.at(child - 1) == workspace()->activeWindow()) return QAccessible::Focused; return QAccessible::Normal;}QVariant QAccessibleWorkspace::invokeMethodEx(QAccessible::Method, int, const QVariantList &){ return QVariant();}int QAccessibleWorkspace::childCount() const{ return workspace()->windowList().count();}int QAccessibleWorkspace::indexOfChild(const QAccessibleInterface *child) const{ if (!child || !child->object() || workspace()->windowList().isEmpty()) return -1; if (QWidget *window = qobject_cast<QWidget *>(child->object())) { int index = workspace()->windowList().indexOf(window); if (index != -1) return ++index; } return -1;}int QAccessibleWorkspace::navigate(RelationFlag relation, int entry, QAccessibleInterface **target) const{ *target = 0; QWidget *targetObject = 0; QWidgetList subWindows = workspace()->windowList(); switch (relation) { case Child: if (entry < 1 || subWindows.isEmpty() || entry > subWindows.count()) return -1; targetObject = subWindows.at(entry - 1); break; case Up: case Down: case Left: case Right: targetObject = mdiAreaNavigate(workspace(), relation, entry); break; default: return QAccessibleWidgetEx::navigate(relation, entry, target); } *target = QAccessible::queryAccessibleInterface(targetObject); return *target ? 0: -1;}QWorkspace *QAccessibleWorkspace::workspace() const{ return static_cast<QWorkspace *>(object());}#endif#ifndef QT_NO_DIALOGBUTTONBOX// ======================= QAccessibleDialogButtonBox ======================QAccessibleDialogButtonBox::QAccessibleDialogButtonBox(QWidget *widget) : QAccessibleWidgetEx(widget, Grouping){ Q_ASSERT(qobject_cast<QDialogButtonBox*>(widget));}QVariant QAccessibleDialogButtonBox::invokeMethodEx(QAccessible::Method, int, const QVariantList &){ return QVariant();}#endif // QT_NO_DIALOGBUTTONBOX#ifndef QT_NO_TEXTBROWSERQAccessibleTextBrowser::QAccessibleTextBrowser(QWidget *widget) : QAccessibleTextEdit(widget){ Q_ASSERT(qobject_cast<QTextBrowser *>(widget));}QAccessible::Role QAccessibleTextBrowser::role(int child) const{ if (child != 0) return QAccessibleTextEdit::role(child);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -