📄 qaccessiblewidget.cpp
字号:
} return -1;}/*! \reimp */int QAccessibleSlider::childCount() const{ return 3;}/*! \reimp */QRESULT QAccessibleSlider::queryChild( int /*control*/, QAccessibleInterface **iface ) const{ *iface = 0; return QS_FALSE; }/*! \reimp */QString QAccessibleSlider::text( Text t, int control ) const{ switch ( t ) { case Value: if ( control && control != 2 ) return QString::null; break; case Name: switch ( control ) { case 1: return QSlider::tr("Page up"); case 2: return QSlider::tr("Position"); case 3: return QSlider::tr("Page down"); } break; case DefaultAction: if ( control != 2 ) return QSlider::tr("Press"); break; default: break; } return QAccessibleRangeControl::text( t, control );}/*! \reimp */QAccessible::Role QAccessibleSlider::role( int control ) const{ switch ( control ) { case 1: return PushButton; case 2: return Indicator; case 3: return PushButton; default: return Slider; }}/*! \reimp */bool QAccessibleSlider::doDefaultAction( int control ){ switch ( control ) { case 1: slider()->subtractLine(); return TRUE; case 3: slider()->addLine(); return TRUE; default: return FALSE; }}/*! \class QAccessibleText qaccessiblewidget.h \brief The QAccessibleText class implements the QAccessibleInterface for widgets with editable text.*//*! Constructs a QAccessibleText object for \a o. \a role, \a name, \a description, \a help, \a defAction and \a accelerator are propagated to the QAccessibleWidget constructor.*/QAccessibleText::QAccessibleText( QObject *o, Role role, QString name, QString description, QString help, QString defAction, QString accelerator ): QAccessibleWidget( o, role, name, description, QString::null, help, defAction, accelerator ){}/*! \reimp */QString QAccessibleText::text( Text t, int control ) const{ QString str = QAccessibleWidget::text( t, control ); if ( !!str ) return str; switch ( t ) { case Name: return stripAmp( buddyString( widget() ) ); case Accelerator: str = hotKey( buddyString( widget() ) ); if ( !!str ) return "Alt + "+str; break; case Value: if ( widget()->inherits( "QLineEdit" ) ) return ((QLineEdit*)widget())->text(); break; default: break; } return str;}/*! \reimp */QAccessible::State QAccessibleText::state( int control ) const{ int state = QAccessibleWidget::state( control ); if ( widget()->inherits( "QLineEdit" ) ) { QLineEdit *l = (QLineEdit*)widget(); if ( l->isReadOnly() ) state |= ReadOnly; if ( l->echoMode() == QLineEdit::Password ) state |= Protected; state |= Selectable; if ( l->hasSelectedText() ) state |= Selected; } return (State)state;}/*! \class QAccessibleDisplay qaccessiblewidget.h \brief The QAccessibleDisplay class implements the QAccessibleInterface for widgets that display static information.*//*! Constructs a QAccessibleDisplay object for \a o. \a role, \a description, \a value, \a help, \a defAction and \a accelerator are propagated to the QAccessibleWidget constructor.*/QAccessibleDisplay::QAccessibleDisplay( QObject *o, Role role, QString description, QString value, QString help, QString defAction, QString accelerator ): QAccessibleWidget( o, role, QString::null, description, value, help, defAction, accelerator ){}/*! \reimp */QAccessible::Role QAccessibleDisplay::role( int control ) const{ if ( widget()->inherits( "QLabel" ) ) { QLabel *l = (QLabel*)widget(); if ( l->pixmap() || l->picture() ) return Graphic;#ifndef QT_NO_PICTURE if ( l->picture() ) return Graphic;#endif#ifndef QT_NO_MOVIE if ( l->movie() ) return Animation;#endif } return QAccessibleWidget::role( control );}/*! \reimp */QString QAccessibleDisplay::text( Text t, int control ) const{ QString str = QAccessibleWidget::text( t, control ); if ( !!str ) return str; switch ( t ) { case Name: if ( widget()->inherits( "QLabel" ) ) { return stripAmp( ((QLabel*)widget())->text() ); } else if ( widget()->inherits( "QLCDNumber" ) ) { QLCDNumber *l = (QLCDNumber*)widget(); if ( l->numDigits() ) return QString::number( l->value() ); return QString::number( l->intValue() ); } else if ( widget()->inherits( "QGroupBox" ) ) { return stripAmp( ((QGroupBox*)widget())->title() ); } break; default: break; } return str;}/*! \class QAccessibleHeader qaccessiblewidget.h \brief The QAccessibleHeader class implements the QAccessibleInterface for header widgets.*//*! Constructs a QAccessibleHeader object for \a o. \a role, \a description, \a value, \a help, \a defAction and \a accelerator are propagated to the QAccessibleWidget constructor.*/QAccessibleHeader::QAccessibleHeader( QObject *o, QString description, QString value, QString help, QString defAction, QString accelerator ) : QAccessibleWidget( o, NoRole, description, value, help, defAction, accelerator ){ Q_ASSERT(widget()->inherits("QHeader"));}/*! Returns the QHeader. */QHeader *QAccessibleHeader::header() const{ return (QHeader *)widget();}/*! \reimp */int QAccessibleHeader::controlAt( int x, int y ) const{ QPoint point = header()->mapFromGlobal( QPoint( x, y ) ); for ( int i = 0; i < header()->count(); i++ ) { if ( header()->sectionRect( i ).contains( point ) ) return i+1; } return -1;}/*! \reimp */QRect QAccessibleHeader::rect( int control ) const{ QPoint zero = header()->mapToGlobal( QPoint ( 0,0 ) ); QRect sect = header()->sectionRect( control - 1 ); return QRect( sect.x() + zero.x(), sect.y() + zero.y(), sect.width(), sect.height() );}/*! \reimp */int QAccessibleHeader::navigate( NavDirection direction, int startControl ) const{ if ( direction != NavFirstChild && direction != NavLastChild && direction != NavFocusChild && !startControl ) return QAccessibleWidget::navigate( direction, startControl ); int count = header()->count(); switch ( direction ) { case NavFirstChild: return 1; case NavLastChild: return count; case NavNext: return startControl + 1 > count ? -1 : startControl + 1; case NavPrevious: return startControl - 1 < 1 ? -1 : startControl - 1; case NavUp: if ( header()->orientation() == Vertical ) return startControl - 1 < 1 ? -1 : startControl - 1; return -1; case NavDown: if ( header()->orientation() == Vertical ) return startControl + 1 > count ? -1 : startControl + 1; break; case NavLeft: if ( header()->orientation() == Horizontal ) return startControl - 1 < 1 ? -1 : startControl - 1; break; case NavRight: if ( header()->orientation() == Horizontal ) return startControl + 1 > count ? -1 : startControl + 1; break; default: break; } return -1;}/*! \reimp */int QAccessibleHeader::childCount() const{ return header()->count();}/*! \reimp */QRESULT QAccessibleHeader::queryChild( int /*control*/, QAccessibleInterface **iface ) const{ *iface = 0; return QS_FALSE;}/*! \reimp */QString QAccessibleHeader::text( Text t, int control ) const{ QString str = QAccessibleWidget::text( t, control ); if ( !!str ) return str; switch ( t ) { case Name: return header()->label( control - 1 ); default: break; } return str;}/*! \reimp */QAccessible::Role QAccessibleHeader::role( int /*control*/ ) const{ if ( header()->orientation() == Qt::Horizontal ) return ColumnHeader; else return RowHeader;}/*! \reimp */QAccessible::State QAccessibleHeader::state( int control ) const{ return QAccessibleWidget::state( control );}/*! \class QAccessibleTabBar qaccessiblewidget.h \brief The QAccessibleTabBar class implements the QAccessibleInterface for tab bars.*//*! Constructs a QAccessibleTabBar object for \a o. \a role, \a description, \a value, \a help, \a defAction and \a accelerator are propagated to the QAccessibleWidget constructor.*/QAccessibleTabBar::QAccessibleTabBar( QObject *o, QString description, QString value, QString help, QString defAction, QString accelerator ) : QAccessibleWidget( o, NoRole, description, value, help, defAction, accelerator ){ Q_ASSERT(widget()->inherits("QTabBar"));}/*! Returns the QHeader. */QTabBar *QAccessibleTabBar::tabBar() const{ return (QTabBar*)widget();}/*! \reimp */int QAccessibleTabBar::controlAt( int x, int y ) const{ int wc = QAccessibleWidget::controlAt( x, y ); if ( wc ) return wc + tabBar()->count(); QPoint tp = tabBar()->mapFromGlobal( QPoint( x,y ) ); QTab *tab = tabBar()->selectTab( tp ); return tabBar()->indexOf( tab->identifier() ) + 1;}/*! \reimp */QRect QAccessibleTabBar::rect( int control ) const{ if ( !control ) return QAccessibleWidget::rect( 0 ); if ( control > tabBar()->count() ) { QAccessibleInterface *iface; QAccessibleWidget::queryChild( control - tabBar()->count(), &iface ); if ( !iface ) return QRect(); return iface->rect( 0 ); } QTab *tab = tabBar()->tabAt( control - 1 ); QPoint tp = tabBar()->mapToGlobal( QPoint( 0,0 ) ); QRect rec = tab->rect(); return QRect( tp.x() + rec.x(), tp.y() + rec.y(), rec.width(), rec.height() );}/*! \reimp */QRESULT QAccessibleTabBar::queryChild( int /*control*/, QAccessibleInterface **iface ) const{ *iface = 0; return QS_FALSE;}/*! \reimp */int QAccessibleTabBar::navigate( NavDirection direction, int startControl ) const{ if ( direction != NavFirstChild && direction != NavLastChild && direction != NavFocusChild && !startControl ) return QAccessibleWidget::navigate( direction, startControl ); switch ( direction ) { case NavFirstChild: return 1; break; case NavLastChild: return childCount(); break; case NavNext: case NavRight: return startControl + 1 > childCount() ? -1 : startControl + 1; case NavPrevious: case NavLeft: return startControl -1 < 1 ? -1 : startControl - 1; default: break; } return -1;}/*! \reimp */int QAccessibleTabBar::childCount() const{ int wc = QAccessibleWidget::childCount(); wc += tabBar()->count(); return wc;}/*! \reimp */QString QAccessibleTabBar::text( Text t, int control ) const{ QString str = QAccessibleWidget::text( t, control ); if ( !!str ) return str; if ( !control ) return QAccessibleWidget::text( t, control ); if ( control > tabBar()->count() ) { QAccessibleInterface *iface; QAccessibleWidget::queryChild( control - tabBar()->count(), &iface ); if ( !iface ) return QAccessibleWidget::text( t, 0 ); return iface->text( t, 0 ); } QTab *tab = tabBar()->tabAt( control - 1 ); if ( !tab ) return QAccessibleWidget::text( t, 0 ); switch ( t ) { case Name: return stripAmp( tab->text() ); case DefaultAction: return QTabBar::tr( "Switch" ); default: break; } return str;}/*! \reimp */QAccessible::Role QAccessibleTabBar::role( int control ) const{ if ( !control ) return PageTabList; if ( control > tabBar()->count() ) { QAccessibleInterface *iface; QAccessibleWidget::queryChild( control - tabBar()->count(), &iface ); if ( !iface ) return QAccessibleWidget::role( 0 ); return iface->role( 0 ); } return PageTab;}/*! \reimp */QAccessible::State QAccessibleTabBar::state( int control ) const{ int st = QAccessibleWidget::state( 0 ); if ( !control ) return (State)st; if ( control > tabBar()->count() ) { QAccessibleInterface *iface; QAccessibleWidget::queryChild( control - tabBar()->count(), &iface ); if ( !iface ) return (State)st; return iface->state( 0 ); } QTab *tab = tabBar()->tabAt( control - 1 ); if ( !tab ) return (State)st; if ( !tab->isEnabled() ) st |= Unavailable; else st |= Selectable; if ( tabBar()->currentTab() == tab->identifier() ) st |= Selected; return (State)st;}/*! \reimp */bool QAccessibleTabBar::doDefaultAction( int control ){ if ( !control ) return FALSE; if ( control > tabBar()->count() ) { QAccessibleInterface *iface; QAccessibleWidget::queryChild( control - tabBar()->count(), &iface ); if ( !iface ) return FALSE; return iface->doDefaultAction( 0 ); } QTab *tab = tabBar()->tabAt( control - 1 ); if ( !tab || !tab->isEnabled() ) return FALSE; tabBar()->setCurrentTab( tab ); return TRUE;}/*! \reimp */bool QAccessibleTabBar::setSelected( int control, bool on, bool extend ){ if ( !control || !on || extend || control > tabBar()->count() ) return FALSE; QTab *tab = tabBar()->tabAt( control - 1 ); if ( !tab || !tab->isEnabled() ) return FALSE; tabBar()->setCurrentTab( tab ); return TRUE;}/*! \reimp */void QAccessibleTabBar::clearSelection(){}/*! \reimp */QMemArray<int> QAccessibleTabBar::selection() const{ QMemArray<int> array( 1 ); array.at(0) = tabBar()->indexOf( tabBar()->currentTab() ) + 1; return array;}/*! \class QAccessibleComboBox qaccessiblewidget.h \brief The QAccessibleComboBox class implements the QAccessibleInterface for editable and read-only combo boxes.*//*! Constructs a QAccessibleComboBox object for \a o.*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -