12#include <QtGui/private/qaccessiblecache_p.h>
13#include <QtGui/private/qaccessiblebridgeutils_p.h>
14#include <QtGui/qaccessible.h>
18#if QT_CONFIG(accessibility)
37 Q_ASSERT(*offset <= text->characterCount());
40 int curStart = 0, curEnd = 0;
44 text->textAtOffset(curStart, QAccessible::LineBoundary, &curStart, &curEnd);
46 if (curStart == -1 || curEnd == -1) {
60 text->textAtOffset(curEnd, QAccessible::LineBoundary, &nextStart, &nextEnd);
61 if (nextEnd == curEnd)
64 }
while ((*
line == -1 || curLine < *
line) && (*
offset == -1 || (curEnd <= *
offset)) && curEnd <= text->characterCount());
66 curEnd =
qMin(curEnd,
text->characterCount());
81@implementation QMacAccessibilityElement {
87 NSMutableArray<QMacAccessibilityElement *> *rows;
88 NSMutableArray<QMacAccessibilityElement *> *columns;
96 NSString *synthesizedRole;
101 return [
self initWithId:anId role:nil];
104- (instancetype)initWithId:(
QAccessible::
Id)anId role:(NSAccessibilityRole)role
114 synthesizedRole = role;
118 if (!synthesizedRole) {
119 if (QAccessibleInterface *iface = QAccessible::accessibleInterface(axid)) {
120 if (
iface->tableInterface()) {
121 [
self updateTableModel];
122 }
else if (
const auto *cell =
iface->tableCellInterface()) {
125 m_rowIndex = cell->rowIndex();
126 m_columnIndex = cell->columnIndex();
127 QAccessibleInterface *
table = cell->table();
129 QAccessibleTableInterface *tableInterface =
table->tableInterface();
130 if (tableInterface) {
131 auto *tableElement = [QMacAccessibilityElement elementWithInterface:table];
133 Q_ASSERT(tableElement->rows &&
int(tableElement->rows.count) > m_rowIndex);
134 auto *rowElement = tableElement->rows[m_rowIndex];
135 if (!rowElement->columns) {
136 rowElement->columns = [rowElement populateTableRow:rowElement->columns
137 count:tableInterface->columnCount()];
139 rowElement->columns[m_columnIndex] =
self;
155 QAccessibleCache *
cache = QAccessibleCache::instance();
157 QMacAccessibilityElement *element =
cache->elementForId(anId);
159 Q_ASSERT(QAccessible::accessibleInterface(anId));
160 element = [[
self alloc] initWithId:anId];
161 cache->insertElement(anId, element);
166+ (instancetype)elementWithInterface:(QAccessibleInterface *)iface
172 const QAccessible::Id anId = QAccessible::uniqueId(iface);
173 return [
self elementWithId:anId];
180 synthesizedRole = nil;
182 NSAccessibilityPostNotification(self, NSAccessibilityUIElementDestroyedNotification);
195 if ([
object isKindOfClass:[QMacAccessibilityElement class]]) {
197 return other->axid == axid &&
other->synthesizedRole == synthesizedRole;
207- (BOOL)isManagedByParent {
208 return synthesizedRole != nil;
211- (NSMutableArray *)populateTableArray:(NSMutableArray *)array role:(NSAccessibilityRole)role count:(
int)count
213 if (QAccessibleInterface *iface =
self.qtInterface) {
215 array = [NSMutableArray<QMacAccessibilityElement *> arrayWithCapacity:count];
218 [array removeAllObjects];
223 QMacAccessibilityElement *element =
224 [[QMacAccessibilityElement alloc] initWithId:axid role:role];
226 if (role == NSAccessibilityRowRole)
227 element->m_rowIndex =
n;
228 else if (role == NSAccessibilityColumnRole)
229 element->m_columnIndex =
n;
230 [array addObject:element];
233 qWarning(
"QCocoaAccessibility: invalid child");
241- (NSMutableArray *)populateTableRow:(NSMutableArray *)array count:(
int)count
243 Q_ASSERT(synthesizedRole == NSAccessibilityRowRole);
245 array = [NSMutableArray<QMacAccessibilityElement *> arrayWithCapacity:count];
257 QMacAccessibilityElement *cell =
258 [[QMacAccessibilityElement alloc] initWithId:axid role:NSAccessibilityCellRole];
260 cell->m_rowIndex = m_rowIndex;
261 cell->m_columnIndex =
n;
262 [array addObject:cell];
270- (
void)updateTableModel
272 if (QAccessibleInterface *iface =
self.qtInterface) {
273 if (QAccessibleTableInterface *
table =
iface->tableInterface()) {
275 rows = [
self populateTableArray:rows role:NSAccessibilityRowRole count:table->rowCount()];
276 columns = [
self populateTableArray:columns role:NSAccessibilityColumnRole count:table->columnCount()];
281- (QAccessibleInterface *)qtInterface
283 QAccessibleInterface *
iface = QAccessible::accessibleInterface(axid);
284 if (!iface || !
iface->isValid())
290 if (synthesizedRole == NSAccessibilityCellRole) {
292 QAccessibleTableInterface *
table =
iface->tableInterface();
294 QAccessibleInterface *cell =
table->cellAt(m_rowIndex, m_columnIndex);
301 axid = QAccessible::uniqueId(cell);
302 synthesizedRole = nil;
304 QAccessibleCache *
cache = QAccessibleCache::instance();
305 if (QMacAccessibilityElement *cellElement =
cache->elementForId(axid)) {
307 Q_ASSERT(cellElement->synthesizedRole == nil);
309 if (cellElement != self) {
311 Q_ASSERT(cellElement->m_rowIndex == m_rowIndex && cellElement->m_columnIndex == m_columnIndex);
312 [cellElement release];
316 cache->insertElement(axid, self);
325- (BOOL)isAccessibilityFocused
328 id focusedElement = NSApp.accessibilityApplicationFocusedUIElement;
329 return [focusedElement isEqual:self];
334+ (
id) lineNumberForIndex: (
int)index forText:(const
QString &)text
341- (BOOL) accessibilityNotifiesWhenDestroyed {
345- (NSString *) accessibilityRole {
348 return synthesizedRole;
349 if (QAccessibleInterface *iface =
self.qtInterface)
350 return QCocoaAccessible::macRole(iface);
351 return NSAccessibilityUnknownRole;
354- (NSString *) accessibilitySubRole {
355 if (QAccessibleInterface *iface =
self.qtInterface)
356 return QCocoaAccessible::macSubrole(iface);
357 return NSAccessibilityUnknownRole;
360- (NSString *) accessibilityRoleDescription {
361 if (QAccessibleInterface *iface =
self.qtInterface)
362 return NSAccessibilityRoleDescription(
self.accessibilityRole,
self.accessibilitySubRole);
363 return NSAccessibilityUnknownRole;
366- (NSArray *) accessibilityChildren {
368 if (synthesizedRole == NSAccessibilityCellRole)
371 QAccessibleInterface *
iface =
self.qtInterface;
374 if (QAccessibleTableInterface *
table =
iface->tableInterface()) {
376 if (!synthesizedRole) {
409 NSArray *rs = [
self accessibilityRows];
410 NSArray *cs = [
self accessibilityColumns];
411 const int rCount = int([rs
count]);
412 const int cCount = int([cs
count]);
413 int childCount = rCount + cCount;
414 NSMutableArray<QMacAccessibilityElement *> *tableChildren =
415 [NSMutableArray<QMacAccessibilityElement *> arrayWithCapacity:childCount];
416 for (
int i = 0;
i < rCount; ++
i) {
417 [tableChildren addObject:[rs objectAtIndex:i]];
419 for (
int i = 0;
i < cCount; ++
i) {
420 [tableChildren addObject:[cs objectAtIndex:i]];
422 return NSAccessibilityUnignoredChildren(tableChildren);
423 }
else if (synthesizedRole == NSAccessibilityColumnRole) {
425 }
else if (synthesizedRole == NSAccessibilityRowRole) {
429 const int numColumns =
table->columnCount();
430 columns = [
self populateTableRow:columns count:numColumns];
431 return NSAccessibilityUnignoredChildren(columns);
434 return QCocoaAccessible::unignoredChildren(iface);
437- (NSArray *) accessibilitySelectedChildren {
438 QAccessibleInterface *
iface = QAccessible::accessibleInterface(axid);
439 if (!iface || !
iface->isValid())
442 QAccessibleSelectionInterface *
selection =
iface->selectionInterface();
448 NSMutableArray<QMacAccessibilityElement *> *selectedChildren =
449 [NSMutableArray<QMacAccessibilityElement *> arrayWithCapacity:numSelected];
450 for (QAccessibleInterface *selectedChild : selectedList) {
451 if (selectedChild && selectedChild->isValid()) {
452 QAccessible::Id
id = QAccessible::uniqueId(selectedChild);
453 QMacAccessibilityElement *element = [QMacAccessibilityElement elementWithId:id];
455 [selectedChildren addObject:element];
458 return NSAccessibilityUnignoredChildren(selectedChildren);
461- (
id) accessibilityWindow {
463 return [
self.accessibilityParent accessibilityWindow];
466- (
id) accessibilityTopLevelUIElementAttribute {
468 return [
self.accessibilityParent accessibilityTopLevelUIElementAttribute];
471- (NSString *) accessibilityTitle {
472 if (QAccessibleInterface *iface =
self.qtInterface) {
473 if (
iface->role() == QAccessible::StaticText)
475 if (
self.isManagedByParent)
477 return iface->text(QAccessible::Name).toNSString();
482- (BOOL) isAccessibilityEnabled {
483 if (QAccessibleInterface *iface =
self.qtInterface)
484 return !
iface->state().disabled;
488- (
id)accessibilityParent {
489 if (synthesizedRole == NSAccessibilityCellRole) {
491 QMacAccessibilityElement *tableElement =
492 [QMacAccessibilityElement elementWithId:axid];
493 Q_ASSERT(tableElement && tableElement->rows &&
int(tableElement->rows.count) > m_rowIndex);
494 QMacAccessibilityElement *rowElement = tableElement->rows[m_rowIndex];
498 QAccessibleInterface *
iface =
self.qtInterface;
502 if (
self.isManagedByParent) {
504 return NSAccessibilityUnignoredAncestor([QMacAccessibilityElement elementWithId:axid]);
512 if (QAccessibleInterface *
parent =
iface->parent()) {
513 if (
parent->tableInterface()) {
514 QMacAccessibilityElement *tableElement =
515 [QMacAccessibilityElement elementWithInterface:parent];
519 if (m_rowIndex >= 0 && m_columnIndex >= 0)
520 rowIndex = m_rowIndex;
521 else if (QAccessibleTableCellInterface *cell =
iface->tableCellInterface())
522 rowIndex = cell->rowIndex();
523 Q_ASSERT(tableElement->rows &&
int([tableElement->rows
count]) > rowIndex);
524 QMacAccessibilityElement *rowElement = tableElement->rows[rowIndex];
525 return NSAccessibilityUnignoredAncestor(rowElement);
527 if (
parent->role() != QAccessible::Application)
528 return NSAccessibilityUnignoredAncestor([QMacAccessibilityElement elementWithInterface:
parent]);
533 if (platformWindow) {
541- (NSRect)accessibilityFrame {
542 QAccessibleInterface *
iface =
self.qtInterface;
547 if (
self.isManagedByParent) {
548 if (QAccessibleTableInterface *
table =
iface->tableInterface()) {
555 const bool isRow = synthesizedRole == NSAccessibilityRowRole;
557 int &
row = isRow ? cellPos.
ry() : cellPos.
rx();
558 int &col = isRow ? cellPos.
rx() : cellPos.
ry();
561 if (trackIndex != NSNotFound) {
562 row = int(trackIndex);
563 if (QAccessibleInterface *firstCell =
table->cellAt(cellPos.
y(), cellPos.
x())) {
564 rect = firstCell->rect();
565 col = isRow ?
table->columnCount() :
table->rowCount();
568 if (QAccessibleInterface *lastCell =
569 table->cellAt(cellPos.
y(), cellPos.
x()))
570 rect =
rect.united(lastCell->rect());
582- (NSString*)accessibilityLabel {
583 if (QAccessibleInterface *iface =
self.qtInterface)
584 return iface->text(QAccessible::Description).toNSString();
585 qWarning() <<
"Called accessibilityLabel on invalid object: " << axid;
589- (
void)setAccessibilityLabel:(NSString*)label{
590 if (QAccessibleInterface *iface =
self.qtInterface)
591 iface->setText(QAccessible::Description, QString::fromNSString(
label));
594- (
id) accessibilityValue {
595 if (QAccessibleInterface *iface =
self.qtInterface) {
598 if (QCocoaAccessible::hasValueAttribute(iface))
599 return QCocoaAccessible::getValueAttribute(iface);
604- (
NSInteger) accessibilityNumberOfCharacters {
605 if (QAccessibleInterface *iface =
self.qtInterface) {
606 if (QAccessibleTextInterface *
text =
iface->textInterface())
607 return text->characterCount();
612- (NSString *) accessibilitySelectedText {
613 if (QAccessibleInterface *iface =
self.qtInterface) {
614 if (QAccessibleTextInterface *
text =
iface->textInterface()) {
624- (NSRange) accessibilitySelectedTextRange {
625 QAccessibleInterface *
iface =
self.qtInterface;
628 if (QAccessibleTextInterface *
text =
iface->textInterface()) {
631 if (
text->selectionCount() > 0) {
639 return NSMakeRange(0, 0);
643 QAccessibleInterface *
iface =
self.qtInterface;
646 if (QAccessibleTextInterface *
text =
iface->textInterface()) {
648 return textToPos.
count(
'\n');
653- (NSRange)accessibilityVisibleCharacterRange {
654 QAccessibleInterface *
iface =
self.qtInterface;
658 if (QAccessibleTextInterface *
text =
iface->textInterface())
659 return NSMakeRange(0,
static_cast<uint>(
text->characterCount()));
660 return NSMakeRange(0,
static_cast<uint>(
iface->text(QAccessible::Name).length()));
663- (
NSInteger) accessibilityInsertionPointLineNumber {
664 QAccessibleInterface *
iface =
self.qtInterface;
667 if (QAccessibleTextInterface *
text =
iface->textInterface()) {
669 return [
self accessibilityLineForIndex:position];
674- (NSArray *)accessibilityParameterizedAttributeNames {
676 QAccessibleInterface *
iface =
self.qtInterface;
678 qWarning() <<
"Called attribute on invalid object: " << axid;
682 if (
iface->textInterface()) {
684 NSAccessibilityStringForRangeParameterizedAttribute,
685 NSAccessibilityLineForIndexParameterizedAttribute,
686 NSAccessibilityRangeForLineParameterizedAttribute,
687 NSAccessibilityRangeForPositionParameterizedAttribute,
689 NSAccessibilityBoundsForRangeParameterizedAttribute,
691 NSAccessibilityStyleRangeForIndexParameterizedAttribute,
692 NSAccessibilityAttributedStringForRangeParameterizedAttribute
699- (
id)accessibilityAttributeValue:(NSString *)attribute forParameter:(
id)parameter {
700 QAccessibleInterface *
iface =
self.qtInterface;
702 qWarning() <<
"Called attribute on invalid object: " << axid;
706 if (!
iface->textInterface())
709 if ([
attribute isEqualToString: NSAccessibilityStringForRangeParameterizedAttribute]) {
710 NSRange
range = [parameter rangeValue];
712 return text.toNSString();
714 if ([
attribute isEqualToString: NSAccessibilityLineForIndexParameterizedAttribute]) {
715 int index = [parameter intValue];
716 if (index < 0 || index >
iface->textInterface()->characterCount())
719 if (
iface->state().multiLine) {
725 if ([
attribute isEqualToString: NSAccessibilityRangeForLineParameterizedAttribute]) {
726 int line = [parameter intValue];
732 convertLineOffset(
iface->textInterface(), &
line, &lineOffset, &startOffset, &endOffset);
733 return [NSValue valueWithRange:NSMakeRange(startOffset, endOffset - startOffset)];
735 if ([
attribute isEqualToString: NSAccessibilityBoundsForRangeParameterizedAttribute]) {
736 NSRange
range = [parameter rangeValue];
737 QRect firstRect =
iface->textInterface()->characterRect(
range.location);
739 if (
range.length > 0) {
749 return [NSValue valueWithRect:QCocoaScreen::mapToNative(rect)];
751 if ([
attribute isEqualToString: NSAccessibilityAttributedStringForRangeParameterizedAttribute]) {
752 NSRange
range = [parameter rangeValue];
754 return [[NSAttributedString alloc] initWithString:text.toNSString()];
755 }
else if ([
attribute isEqualToString: NSAccessibilityRangeForPositionParameterizedAttribute]) {
757 int offset =
iface->textInterface()->offsetAtPoint(point);
758 return [NSValue valueWithRange:NSMakeRange(static_cast<NSUInteger>(offset), 1)];
759 }
else if ([
attribute isEqualToString: NSAccessibilityStyleRangeForIndexParameterizedAttribute]) {
762 iface->textInterface()->attributes([parameter intValue], &
start, &
end);
763 return [NSValue valueWithRange:NSMakeRange(static_cast<NSUInteger>(start), static_cast<NSUInteger>(end - start))];
768- (BOOL)accessibilityIsAttributeSettable:(NSString *)attribute {
769 QAccessibleInterface *
iface =
self.qtInterface;
773 if ([
attribute isEqualToString:NSAccessibilityFocusedAttribute]) {
774 return iface->state().focusable ? YES : NO;
775 }
else if ([
attribute isEqualToString:NSAccessibilityValueAttribute]) {
776 if (
iface->textInterface() &&
iface->state().editable)
778 if (
iface->valueInterface())
781 }
else if ([
attribute isEqualToString:NSAccessibilitySelectedTextRangeAttribute]) {
782 return iface->textInterface() ? YES : NO;
787- (
void)accessibilitySetValue:(
id)value forAttribute:(NSString *)attribute {
788 QAccessibleInterface *
iface =
self.qtInterface;
791 if ([
attribute isEqualToString:NSAccessibilityFocusedAttribute]) {
792 if (QAccessibleActionInterface *action =
iface->actionInterface())
793 action->doAction(QAccessibleActionInterface::setFocusAction());
794 }
else if ([
attribute isEqualToString:NSAccessibilityValueAttribute]) {
795 if (
iface->textInterface()) {
797 iface->setText(QAccessible::Value,
text);
798 }
else if (QAccessibleValueInterface *valueIface =
iface->valueInterface()) {
799 double val = [value doubleValue];
800 valueIface->setCurrentValue(
val);
802 }
else if ([
attribute isEqualToString:NSAccessibilitySelectedTextRangeAttribute]) {
803 if (QAccessibleTextInterface *
text =
iface->textInterface()) {
804 NSRange
range = [value rangeValue];
805 if (
range.length > 0)
815- (NSArray *)accessibilityActionNames {
816 NSMutableArray *nsActions = [[NSMutableArray new] autorelease];
817 QAccessibleInterface *
iface =
self.qtInterface;
822 for (
const QString &qtAction : supportedActionNames) {
823 NSString *nsAction = QCocoaAccessible::getTranslatedAction(qtAction);
825 [nsActions addObject : nsAction];
831- (NSString *)accessibilityActionDescription:(NSString *)action {
832 QAccessibleInterface *
iface =
self.qtInterface;
835 QString qtAction = QCocoaAccessible::translateAction(action, iface);
839 if (QAccessibleActionInterface *actionInterface =
iface->actionInterface()) {
840 qtAction = QString::fromNSString((NSString *)action);
841 description = actionInterface->localizedActionDescription(qtAction);
844 description = qAccessibleLocalizedActionDescription(qtAction);
846 return description.toNSString();
849- (
void)accessibilityPerformAction:(NSString *)action {
850 if (QAccessibleInterface *iface =
self.qtInterface) {
851 const QString qtAction = QCocoaAccessible::translateAction(action, iface);
858- (BOOL)accessibilityIsIgnored {
862 if (
self.isManagedByParent)
865 if (QAccessibleInterface *iface =
self.qtInterface)
866 return QCocoaAccessible::shouldBeIgnored(iface);
870- (
id)accessibilityHitTest:(NSPoint)point {
871 QAccessibleInterface *
iface =
self.qtInterface;
874 return NSAccessibilityUnignoredAncestor(self);
878 QAccessibleInterface *childInterface =
iface->childAt(screenPoint.
x(), screenPoint.
y());
880 if (!childInterface || !childInterface->isValid())
881 return NSAccessibilityUnignoredAncestor(self);
884 QAccessibleInterface *childOfChildInterface =
nullptr;
886 childOfChildInterface = childInterface->childAt(screenPoint.
x(), screenPoint.
y());
887 if (childOfChildInterface && childOfChildInterface->isValid())
888 childInterface = childOfChildInterface;
889 }
while (childOfChildInterface && childOfChildInterface->isValid());
892 QMacAccessibilityElement *accessibleElement = [QMacAccessibilityElement elementWithInterface:childInterface];
893 if (accessibleElement)
894 return NSAccessibilityUnignoredAncestor(accessibleElement);
895 return NSAccessibilityUnignoredAncestor(self);
898- (
id)accessibilityFocusedUIElement {
899 QAccessibleInterface *
iface =
self.qtInterface;
901 qWarning(
"FocusedUIElement for INVALID");
905 QAccessibleInterface *childInterface =
iface->focusChild();
906 if (childInterface && childInterface->isValid()) {
907 QMacAccessibilityElement *accessibleElement = [QMacAccessibilityElement elementWithInterface:childInterface];
908 return NSAccessibilityUnignoredAncestor(accessibleElement);
911 return NSAccessibilityUnignoredAncestor(self);
914- (NSString *) accessibilityHelp {
915 if (QAccessibleInterface *iface =
self.qtInterface) {
928 if (synthesizedRole == NSAccessibilityCellRole)
929 return m_columnIndex;
930 if (QAccessibleInterface *iface =
self.qtInterface) {
931 if (
self.isManagedByParent) {
934 if (QAccessibleTableInterface *
table =
iface->tableInterface()) {
937 else if (m_columnIndex >= 0)
945- (NSArray *) accessibilityRows {
946 if (!synthesizedRole && rows) {
947 QAccessibleInterface *
iface =
self.qtInterface;
948 if (iface &&
iface->tableInterface())
949 return NSAccessibilityUnignoredChildren(rows);
954- (NSArray *) accessibilityColumns {
955 if (!synthesizedRole && columns) {
956 QAccessibleInterface *
iface =
self.qtInterface;
957 if (iface &&
iface->tableInterface())
958 return NSAccessibilityUnignoredChildren(columns);
static bool isEqual(const aiUVTransform &a, const aiUVTransform &b)
The QAccessible class provides enums and static functions related to accessibility.
static CGPoint mapToNative(const QPointF &pos, QCocoaScreen *screen=QCocoaScreen::primaryScreen())
static QPointF mapFromNative(CGPoint pos, QCocoaScreen *screen=QCocoaScreen::primaryScreen())
qsizetype size() const noexcept
\inmodule QtCore\reentrant
constexpr qreal x() const noexcept
Returns the x coordinate of this point.
constexpr qreal y() const noexcept
Returns the y coordinate of this point.
constexpr QPoint toPoint() const
Rounds the coordinates of this point to the nearest integer, and returns a QPoint object with the rou...
\inmodule QtCore\reentrant
constexpr int & ry() noexcept
Returns a reference to the y coordinate of this point.
constexpr int & rx() noexcept
Returns a reference to the x coordinate of this point.
constexpr int x() const noexcept
Returns the x coordinate of this point.
constexpr int y() const noexcept
Returns the y coordinate of this point.
\inmodule QtCore\reentrant
\inmodule QtCore\reentrant
QRect united(const QRect &other) const noexcept
qsizetype count(QChar c, Qt::CaseSensitivity cs=Qt::CaseSensitive) const noexcept
constexpr QStringView left(qsizetype n) const noexcept
\macro QT_RESTRICTED_CAST_FROM_ASCII
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
qsizetype count(QChar c, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
QHash< int, QWidget * > hash
[35multi]
QCache< int, Employee > cache
[0]
QStringList effectiveActionNames(QAccessibleInterface *iface)
bool performEffectiveAction(QAccessibleInterface *iface, const QString &actionName)
constexpr QBindableInterface iface
QNSView * qnsview_cast(NSView *view)
Returns the view cast to a QNSview if possible.
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
EGLOutputLayerEXT EGLint attribute
constexpr const T & qMin(const T &a, const T &b)
GLenum GLuint GLenum GLsizei length
GLenum GLenum GLsizei count
GLuint GLsizei const GLchar * label
[43]
GLenum GLuint GLintptr offset
GLenum GLenum GLsizei void * row
GLenum GLenum GLsizei void * table
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
#define QStringLiteral(str)
static QString helpText(const QCommandLineParser &p)
QItemSelection * selection
[0]
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent