Qt 4.8
Public Types | Public Functions | Private Functions | List of all members
QAccessibleAbstractScrollArea Class Reference

#include <complexwidgets.h>

Inheritance diagram for QAccessibleAbstractScrollArea:
QAccessibleWidgetEx QAccessibleObjectEx QAccessibleInterfaceEx QAccessibleInterface QAccessible QAccessibleItemView QAccessibleScrollArea

Public Types

enum  AbstractScrollAreaElement {
  Self = 0, Viewport, HorizontalContainer, VerticalContainer,
  CornerWidget, Undefined
}
 
- Public Types inherited from QAccessible
enum  Action {
  DefaultAction = 0, Press = -1, FirstStandardAction = Press, SetFocus = -2,
  Increase = -3, Decrease = -4, Accept = -5, Cancel = -6,
  Select = -7, ClearSelection = -8, RemoveSelection = -9, ExtendSelection = -10,
  AddToSelection = -11, LastStandardAction = AddToSelection
}
 This enum describes the possible types of action that can occur. More...
 
enum  Event {
  SoundPlayed = 0x0001, Alert = 0x0002, ForegroundChanged = 0x0003, MenuStart = 0x0004,
  MenuEnd = 0x0005, PopupMenuStart = 0x0006, PopupMenuEnd = 0x0007, ContextHelpStart = 0x000C,
  ContextHelpEnd = 0x000D, DragDropStart = 0x000E, DragDropEnd = 0x000F, DialogStart = 0x0010,
  DialogEnd = 0x0011, ScrollingStart = 0x0012, ScrollingEnd = 0x0013, MenuCommand = 0x0018,
  ActionChanged = 0x0101, ActiveDescendantChanged = 0x0102, AttributeChanged = 0x0103, DocumentContentChanged = 0x0104,
  DocumentLoadComplete = 0x0105, DocumentLoadStopped = 0x0106, DocumentReload = 0x0107, HyperlinkEndIndexChanged = 0x0108,
  HyperlinkNumberOfAnchorsChanged = 0x0109, HyperlinkSelectedLinkChanged = 0x010A, HypertextLinkActivated = 0x010B, HypertextLinkSelected = 0x010C,
  HyperlinkStartIndexChanged = 0x010D, HypertextChanged = 0x010E, HypertextNLinksChanged = 0x010F, ObjectAttributeChanged = 0x0110,
  PageChanged = 0x0111, SectionChanged = 0x0112, TableCaptionChanged = 0x0113, TableColumnDescriptionChanged = 0x0114,
  TableColumnHeaderChanged = 0x0115, TableModelChanged = 0x0116, TableRowDescriptionChanged = 0x0117, TableRowHeaderChanged = 0x0118,
  TableSummaryChanged = 0x0119, TextAttributeChanged = 0x011A, TextCaretMoved = 0x011B, TextColumnChanged = 0x011D,
  TextInserted = 0x011E, TextRemoved = 0x011F, TextUpdated = 0x0120, TextSelectionChanged = 0x0121,
  VisibleDataChanged = 0x0122, ObjectCreated = 0x8000, ObjectDestroyed = 0x8001, ObjectShow = 0x8002,
  ObjectHide = 0x8003, ObjectReorder = 0x8004, Focus = 0x8005, Selection = 0x8006,
  SelectionAdd = 0x8007, SelectionRemove = 0x8008, SelectionWithin = 0x8009, StateChanged = 0x800A,
  LocationChanged = 0x800B, NameChanged = 0x800C, DescriptionChanged = 0x800D, ValueChanged = 0x800E,
  ParentChanged = 0x800F, HelpChanged = 0x80A0, DefaultActionChanged = 0x80B0, AcceleratorChanged = 0x80C0
}
 This enum type defines accessible event types. More...
 
typedef QAccessibleInterface *(* InterfaceFactory) (const QString &key, QObject *)
 This is a typedef for a pointer to a function with the following signature: More...
 
enum  Method {
  ListSupportedMethods = 0, SetCursorPosition = 1, GetCursorPosition = 2, ForegroundColor = 3,
  BackgroundColor = 4
}
 This enum describes the possible types of methods that can be invoked on an accessible object. More...
 
enum  RelationFlag {
  Unrelated = 0x00000000, Self = 0x00000001, Ancestor = 0x00000002, Child = 0x00000004,
  Descendent = 0x00000008, Sibling = 0x00000010, HierarchyMask = 0x000000ff, Up = 0x00000100,
  Down = 0x00000200, Left = 0x00000400, Right = 0x00000800, Covers = 0x00001000,
  Covered = 0x00002000, GeometryMask = 0x0000ff00, FocusChild = 0x00010000, Label = 0x00020000,
  Labelled = 0x00040000, Controller = 0x00080000, Controlled = 0x00100000, LogicalMask = 0x00ff0000
}
 This enum type defines bit flags that can be combined to indicate the relationship between two accessible objects. More...
 
enum  Role {
  NoRole = 0x00000000, TitleBar = 0x00000001, MenuBar = 0x00000002, ScrollBar = 0x00000003,
  Grip = 0x00000004, Sound = 0x00000005, Cursor = 0x00000006, Caret = 0x00000007,
  AlertMessage = 0x00000008, Window = 0x00000009, Client = 0x0000000A, PopupMenu = 0x0000000B,
  MenuItem = 0x0000000C, ToolTip = 0x0000000D, Application = 0x0000000E, Document = 0x0000000F,
  Pane = 0x00000010, Chart = 0x00000011, Dialog = 0x00000012, Border = 0x00000013,
  Grouping = 0x00000014, Separator = 0x00000015, ToolBar = 0x00000016, StatusBar = 0x00000017,
  Table = 0x00000018, ColumnHeader = 0x00000019, RowHeader = 0x0000001A, Column = 0x0000001B,
  Row = 0x0000001C, Cell = 0x0000001D, Link = 0x0000001E, HelpBalloon = 0x0000001F,
  Assistant = 0x00000020, List = 0x00000021, ListItem = 0x00000022, Tree = 0x00000023,
  TreeItem = 0x00000024, PageTab = 0x00000025, PropertyPage = 0x00000026, Indicator = 0x00000027,
  Graphic = 0x00000028, StaticText = 0x00000029, EditableText = 0x0000002A, PushButton = 0x0000002B,
  CheckBox = 0x0000002C, RadioButton = 0x0000002D, ComboBox = 0x0000002E, ProgressBar = 0x00000030,
  Dial = 0x00000031, HotkeyField = 0x00000032, Slider = 0x00000033, SpinBox = 0x00000034,
  Canvas = 0x00000035, Animation = 0x00000036, Equation = 0x00000037, ButtonDropDown = 0x00000038,
  ButtonMenu = 0x00000039, ButtonDropGrid = 0x0000003A, Whitespace = 0x0000003B, PageTabList = 0x0000003C,
  Clock = 0x0000003D, Splitter = 0x0000003E, LayeredPane = 0x0000003F, Terminal = 0x00000040,
  Desktop = 0x00000041, UserRole = 0x0000ffff
}
 This enum defines the role of an accessible object. More...
 
typedef void(* RootObjectHandler) (QObject *)
 A function pointer type. More...
 
enum  StateFlag {
  Normal = 0x00000000, Unavailable = 0x00000001, Selected = 0x00000002, Focused = 0x00000004,
  Pressed = 0x00000008, Checked = 0x00000010, Mixed = 0x00000020, ReadOnly = 0x00000040,
  HotTracked = 0x00000080, DefaultButton = 0x00000100, Expanded = 0x00000200, Collapsed = 0x00000400,
  Busy = 0x00000800, Marqueed = 0x00002000, Animated = 0x00004000, Invisible = 0x00008000,
  Offscreen = 0x00010000, Sizeable = 0x00020000, Movable = 0x00040000, SelfVoicing = 0x00080000,
  Focusable = 0x00100000, Selectable = 0x00200000, Linked = 0x00400000, Traversed = 0x00800000,
  MultiSelectable = 0x01000000, ExtSelectable = 0x02000000, Protected = 0x20000000, HasPopup = 0x40000000,
  Modal = 0x80000000, HasInvokeExtension = 0x10000000
}
 This enum type defines bit flags that can be combined to indicate the state of an accessible object. More...
 
enum  Text {
  Name = 0, Description, Value, Help,
  Accelerator, UserText = 0x0000ffff
}
 This enum specifies string information that an accessible object returns. More...
 
typedef void(* UpdateHandler) (QObject *, int who, Event reason)
 A function pointer type. More...
 

Public Functions

QAbstractScrollAreaabstractScrollArea () const
 
int childAt (int x, int y) const
 Returns the 1-based index of the child that contains the screen coordinates (x, y). More...
 
int childCount () const
 Returns the number of children that belong to this object. More...
 
int indexOfChild (const QAccessibleInterface *child) const
 Returns the 1-based index of the object child in this object's children list, or -1 if child is not a child of this object. More...
 
QVariant invokeMethodEx (QAccessible::Method method, int child, const QVariantList &params)
 
bool isValid () const
 Returns true if all the data necessary to use this interface implementation is valid (e. More...
 
int navigate (RelationFlag relation, int entry, QAccessibleInterface **target) const
 Navigates from this object to an object that has a relationship relation to this object, and returns the respective object in target. More...
 
 QAccessibleAbstractScrollArea (QWidget *widget)
 
QRect rect (int child) const
 Returns the geometry of the object, or of the object's child if child is not 0. More...
 
void setText (Text textType, int child, const QString &text)
 Sets the text property t of the object, or of the object's child if child is not 0, to text. More...
 
State state (int child) const
 Returns the current state of the object, or of the object's child if child is not 0. More...
 
QString text (Text textType, int child) const
 Returns the value of the text property t of the object, or of the object's child if child is not 0. More...
 
- Public Functions inherited from QAccessibleWidgetEx
QString actionText (int action, Text t, int child) const
 Returns the text property t of the action action supported by the object, or of the object's child if child is not 0. More...
 
bool doAction (int action, int child, const QVariantList &params)
 Asks the object, or the object's child if child is not 0, to execute action using the parameters, params. More...
 
 QAccessibleWidgetEx (QWidget *o, Role r=Client, const QString &name=QString())
 
Relation relationTo (int child, const QAccessibleInterface *other, int otherChild) const
 
Returns the relationship between this object's \a child and the \a
other object's \a otherChild.
More...
 
Role role (int child) const
 Returns the role of the object, or of the object's child if child is not 0. More...
 
- Public Functions inherited from QAccessibleObjectEx
QObjectobject () const
 Returns a pointer to the QObject this interface implementation provides information for. More...
 
 QAccessibleObjectEx (QObject *object)
 
int userActionCount (int child) const
 Returns the number of custom actions of the object, or of the object's child if child is not 0. More...
 
- Public Functions inherited from QAccessibleInterfaceEx
virtual QAccessible2Interfaceinterface_cast (QAccessible2::InterfaceType)
 
virtual QVariant virtual_hook (const QVariant &data)
 
- Public Functions inherited from QAccessibleInterface
QAccessibleActionInterfaceactionInterface ()
 
QColor backgroundColor ()
 
QAccessibleEditableTextInterfaceeditableTextInterface ()
 
QColor foregroundColor ()
 
QAccessibleImageInterfaceimageInterface ()
 
QVariant invokeMethod (Method method, int child=0, const QVariantList &params=QVariantList())
 Invokes a method on child with the given parameters params and returns the result of the operation as QVariant. More...
 
QSet< MethodsupportedMethods ()
 Returns a QSet of QAccessible::Method that are supported by this accessible interface. More...
 
QAccessibleTable2Interfacetable2Interface ()
 
QAccessibleTableInterfacetableInterface ()
 
QAccessibleTextInterfacetextInterface ()
 
QAccessibleValueInterfacevalueInterface ()
 
virtual ~QAccessibleInterface ()
 Destroys the object. More...
 

Private Functions

QWidgetList accessibleChildren () const
 
AbstractScrollAreaElement elementType (QWidget *widget) const
 
bool isLeftToRight () const
 

Additional Inherited Members

- Static Public Functions inherited from QAccessible
static void cleanup ()
 
static void initialize ()
 
static void installFactory (InterfaceFactory)
 Installs the InterfaceFactory factory. More...
 
static RootObjectHandler installRootObjectHandler (RootObjectHandler)
 Installs the given handler as the function to be used by setRootObject(), and returns the previously installed handler. More...
 
static UpdateHandler installUpdateHandler (UpdateHandler)
 Installs the given handler as the function to be used by updateAccessibility(), and returns the previously installed handler. More...
 
static bool isActive ()
 Returns true if an accessibility implementation has been requested during the runtime of the application; otherwise returns false. More...
 
static QAccessibleInterfacequeryAccessibleInterface (QObject *)
 If a QAccessibleInterface implementation exists for the given object, this function returns a pointer to the implementation; otherwise it returns 0. More...
 
static void removeFactory (InterfaceFactory)
 Removes factory from the list of installed InterfaceFactories. More...
 
static void setRootObject (QObject *)
 Sets the root accessible object of this application to object. More...
 
static void updateAccessibility (QObject *, int who, Event reason)
 Notifies accessibility clients about a change in object's accessibility information. More...
 
- Protected Functions inherited from QAccessibleWidgetEx
void addControllingSignal (const QString &signal)
 
QObjectparentObject () const
 
void setAccelerator (const QString &accel)
 
void setDescription (const QString &desc)
 
void setHelp (const QString &help)
 
void setValue (const QString &value)
 
QWidgetwidget () const
 
 ~QAccessibleWidgetEx ()
 
- Protected Functions inherited from QAccessibleObjectEx
virtual ~QAccessibleObjectEx ()
 

Detailed Description

Definition at line 63 of file complexwidgets.h.

Enumerations

◆ AbstractScrollAreaElement

Constructors and Destructors

◆ QAccessibleAbstractScrollArea()

QAccessibleAbstractScrollArea::QAccessibleAbstractScrollArea ( QWidget widget)
explicit

Definition at line 1943 of file complexwidgets.cpp.

1944  : QAccessibleWidgetEx(widget, Client)
1945 {
1946  Q_ASSERT(qobject_cast<QAbstractScrollArea *>(widget));
1947 }
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
QAccessibleWidgetEx(QWidget *o, Role r=Client, const QString &name=QString())

Functions

◆ abstractScrollArea()

QAbstractScrollArea * QAccessibleAbstractScrollArea::abstractScrollArea ( ) const

Definition at line 2182 of file complexwidgets.cpp.

Referenced by accessibleChildren(), childAt(), elementType(), isLeftToRight(), isValid(), navigate(), and rect().

2183 {
2184  return static_cast<QAbstractScrollArea *>(object());
2185 }
QObject * object() const
Returns a pointer to the QObject this interface implementation provides information for...
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.

◆ accessibleChildren()

QWidgetList QAccessibleAbstractScrollArea::accessibleChildren ( ) const
private

Definition at line 2187 of file complexwidgets.cpp.

Referenced by childAt(), childCount(), indexOfChild(), navigate(), rect(), setText(), state(), and text().

2188 {
2189  QWidgetList children;
2190 
2191  // Viewport.
2192  QWidget * viewport = abstractScrollArea()->viewport();
2193  if (viewport)
2194  children.append(viewport);
2195 
2196  // Horizontal scrollBar container.
2197  QScrollBar *horizontalScrollBar = abstractScrollArea()->horizontalScrollBar();
2198  if (horizontalScrollBar && horizontalScrollBar->isVisible()) {
2199  children.append(horizontalScrollBar->parentWidget());
2200  }
2201 
2202  // Vertical scrollBar container.
2203  QScrollBar *verticalScrollBar = abstractScrollArea()->verticalScrollBar();
2204  if (verticalScrollBar && verticalScrollBar->isVisible()) {
2205  children.append(verticalScrollBar->parentWidget());
2206  }
2207 
2208  // CornerWidget.
2209  QWidget *cornerWidget = abstractScrollArea()->cornerWidget();
2210  if (cornerWidget && cornerWidget->isVisible())
2211  children.append(cornerWidget);
2212 
2213  return children;
2214 }
QWidget * parentWidget() const
Returns the parent of this widget, or 0 if it does not have any parent widget.
Definition: qwidget.h:1035
bool isVisible() const
Definition: qwidget.h:1005
The QWidget class is the base class of all user interface objects.
Definition: qwidget.h:150
QScrollBar * verticalScrollBar() const
Returns the vertical scroll bar.
QWidget * cornerWidget() const
Returns the widget in the corner between the two scroll bars.
QWidget * viewport() const
Returns the viewport widget.
The QScrollBar widget provides a vertical or horizontal scroll bar.
Definition: qscrollbar.h:59
void append(const T &t)
Inserts value at the end of the list.
Definition: qlist.h:507
QAbstractScrollArea * abstractScrollArea() const
QScrollBar * horizontalScrollBar() const
Returns the horizontal scroll bar.
The QList class is a template class that provides lists.
Definition: qdatastream.h:62

◆ childAt()

int QAccessibleAbstractScrollArea::childAt ( int  x,
int  y 
) const
virtual

Returns the 1-based index of the child that contains the screen coordinates (x, y).

This function returns 0 if the point is positioned on the object itself. If the tested point is outside the boundaries of the object this function returns -1.

This function is only relyable for visible objects (invisible object might not be laid out correctly).

All visual objects provide this information.

See also
rect()

Reimplemented from QAccessibleWidgetEx.

Reimplemented in QAccessibleItemView.

Definition at line 2156 of file complexwidgets.cpp.

Referenced by QAccessibleItemView::childAt().

2157 {
2158  if (!abstractScrollArea()->isVisible())
2159  return -1;
2160 #if 0
2161  const QRect globalSelfGeometry = rect(Self);
2162  if (!globalSelfGeometry.isValid() || !globalSelfGeometry.contains(QPoint(x, y)))
2163  return -1;
2164  const QWidgetList children = accessibleChildren();
2165  for (int i = 0; i < children.count(); ++i) {
2166  const QWidget *child = children.at(i);
2167  const QRect globalChildGeometry = QRect(child->mapToGlobal(QPoint(0, 0)), child->size());
2168  if (globalChildGeometry.contains(QPoint(x, y))) {
2169  return ++i;
2170  }
2171  }
2172  return 0;
2173 #else
2174  for (int i = childCount(); i >= 0; --i) {
2175  if (rect(i).contains(x, y))
2176  return i;
2177  }
2178  return -1;
2179 #endif
2180 }
QWidgetList accessibleChildren() const
The QWidget class is the base class of all user interface objects.
Definition: qwidget.h:150
int count(const T &t) const
Returns the number of occurrences of value in the list.
Definition: qlist.h:891
const T & at(int i) const
Returns the item at index position i in the list.
Definition: qlist.h:468
QSize size
the size of the widget excluding any window frame
Definition: qwidget.h:165
QAbstractScrollArea * abstractScrollArea() const
bool contains(const QPoint &p, bool proper=false) const
Returns true if the given point is inside or on the edge of the rectangle, otherwise returns false...
Definition: qrect.cpp:1101
The QPoint class defines a point in the plane using integer precision.
Definition: qpoint.h:53
The QRect class defines a rectangle in the plane using integer precision.
Definition: qrect.h:58
int childCount() const
Returns the number of children that belong to this object.
bool isValid() const
Returns true if the rectangle is valid, otherwise returns false.
Definition: qrect.h:237
QRect rect(int child) const
Returns the geometry of the object, or of the object&#39;s child if child is not 0.
QPoint mapToGlobal(const QPoint &) const
Translates the widget coordinate pos to global screen coordinates.
The QList class is a template class that provides lists.
Definition: qdatastream.h:62

◆ childCount()

int QAccessibleAbstractScrollArea::childCount ( ) const
virtual

Returns the number of children that belong to this object.

A child can provide accessibility information on its own (e.g. a child widget), or be a sub-element of this accessible object.

All objects provide this information.

See also
indexOfChild()

Reimplemented from QAccessibleWidgetEx.

Reimplemented in QAccessibleItemView.

Definition at line 2002 of file complexwidgets.cpp.

Referenced by childAt(), and QAccessibleItemView::childCount().

2003 {
2004  return accessibleChildren().count();
2005 }
QWidgetList accessibleChildren() const
int count(const T &t) const
Returns the number of occurrences of value in the list.
Definition: qlist.h:891

◆ elementType()

QAccessibleAbstractScrollArea::AbstractScrollAreaElement QAccessibleAbstractScrollArea::elementType ( QWidget widget) const
private

Definition at line 2217 of file complexwidgets.cpp.

Referenced by navigate().

2218 {
2219  if (!widget)
2220  return Undefined;
2221 
2222  if (widget == abstractScrollArea())
2223  return Self;
2224  if (widget == abstractScrollArea()->viewport())
2225  return Viewport;
2226  if (widget->objectName() == QLatin1String("qt_scrollarea_hcontainer"))
2227  return HorizontalContainer;
2228  if (widget->objectName() == QLatin1String("qt_scrollarea_vcontainer"))
2229  return VerticalContainer;
2230  if (widget == abstractScrollArea()->cornerWidget())
2231  return CornerWidget;
2232 
2233  return Undefined;
2234 }
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
QWidget * cornerWidget() const
Returns the widget in the corner between the two scroll bars.
QAbstractScrollArea * abstractScrollArea() const
QString objectName() const

◆ indexOfChild()

int QAccessibleAbstractScrollArea::indexOfChild ( const QAccessibleInterface child) const
virtual

Returns the 1-based index of the object child in this object's children list, or -1 if child is not a child of this object.

0 is not a possible return value.

All objects provide this information about their children.

See also
childCount()

Reimplemented from QAccessibleWidgetEx.

Reimplemented in QAccessibleItemView.

Definition at line 2007 of file complexwidgets.cpp.

Referenced by QAccessibleItemView::indexOfChild().

2008 {
2009  if (!child || !child->object())
2010  return -1;
2011  int index = accessibleChildren().indexOf(qobject_cast<QWidget *>(child->object()));
2012  if (index >= 0)
2013  return ++index;
2014  return -1;
2015 }
QWidgetList accessibleChildren() const
virtual QObject * object() const =0
Returns a pointer to the QObject this interface implementation provides information for...
int indexOf(const T &t, int from=0) const
Returns the index position of the first occurrence of value in the list, searching forward from index...
Definition: qlist.h:847
quint16 index

◆ invokeMethodEx()

QVariant QAccessibleAbstractScrollArea::invokeMethodEx ( QAccessible::Method  method,
int  child,
const QVariantList params 
)
virtual

Reimplemented from QAccessibleWidgetEx.

Definition at line 1997 of file complexwidgets.cpp.

1998 {
1999  return QVariant();
2000 }
The QVariant class acts like a union for the most common Qt data types.
Definition: qvariant.h:92

◆ isLeftToRight()

bool QAccessibleAbstractScrollArea::isLeftToRight ( ) const
private

Definition at line 2236 of file complexwidgets.cpp.

Referenced by navigate().

2237 {
2238  return abstractScrollArea()->isLeftToRight();
2239 }
QAbstractScrollArea * abstractScrollArea() const
bool isLeftToRight() const
Definition: qwidget.h:429

◆ isValid()

bool QAccessibleAbstractScrollArea::isValid ( ) const
virtual

Returns true if all the data necessary to use this interface implementation is valid (e.

g. all pointers are non-null); otherwise returns false.

See also
object()

Reimplemented from QAccessibleObjectEx.

Reimplemented in QAccessibleItemView.

Definition at line 2017 of file complexwidgets.cpp.

Referenced by QAccessibleItemView::isValid().

2018 {
2019  return (QAccessibleWidgetEx::isValid() && abstractScrollArea() && abstractScrollArea()->viewport());
2020 }
QAbstractScrollArea * abstractScrollArea() const
bool isValid() const
Returns true if all the data necessary to use this interface implementation is valid (e...

◆ navigate()

int QAccessibleAbstractScrollArea::navigate ( RelationFlag  relation,
int  index,
QAccessibleInterface **  iface 
) const
virtual

Navigates from this object to an object that has a relationship relation to this object, and returns the respective object in target.

It is the caller's responsibility to delete *target after use.

If an object is found, target is set to point to the object, and the index of the child of target is returned. The return value is 0 if target itself is the requested object. target is set to null if this object is the target object (i.e. the requested object is a handled by this object).

If no object is found target is set to null, and the return value is -1.

The entry parameter has two different meanings:

  • Hierarchical and Logical relationships – if multiple objects with the requested relationship exist entry specifies which one to return. entry is 1-based, e.g. use 1 to get the first (and possibly only) object with the requested relationship.

    The following code demonstrates how to use this function to navigate to the first child of an object:

    int targetChild = object->navigate(Accessible::Child, 1, &child);
    if (child) {
    // ...
    delete child;
    }
  • Geometric relationships – the index of the child from which to start navigating in the specified direction. entry can be 0 to navigate to a sibling of this object, or non-null to navigate within contained children that don't provide their own accessible information.

Note that the Descendent value for relation is not supported.

All objects support navigation.

See also
relationTo(), childCount()

Reimplemented from QAccessibleWidgetEx.

Reimplemented in QAccessibleItemView.

Definition at line 2022 of file complexwidgets.cpp.

Referenced by QAccessibleItemView::navigate().

2023 {
2024  if (!target)
2025  return -1;
2026 
2027  *target = 0;
2028 
2029  QWidget *targetWidget = 0;
2030  QWidget *entryWidget = 0;
2031 
2032  if (relation == Child ||
2033  relation == Left || relation == Up || relation == Right || relation == Down) {
2034  QWidgetList children = accessibleChildren();
2035  if (entry < 0 || entry > children.count())
2036  return -1;
2037 
2038  if (entry == Self)
2039  entryWidget = abstractScrollArea();
2040  else
2041  entryWidget = children.at(entry - 1);
2042  AbstractScrollAreaElement entryElement = elementType(entryWidget);
2043 
2044  // Not one of the most beautiful switches I've ever seen, but I believe it has
2045  // to be like this since each case need special handling.
2046  // It might be possible to make it more general, but I'll leave that as an exercise
2047  // to the reader. :-)
2048  switch (relation) {
2049  case Child:
2050  if (entry > 0)
2051  targetWidget = children.at(entry - 1);
2052  break;
2053  case Left:
2054  if (entry < 1)
2055  break;
2056  switch (entryElement) {
2057  case Viewport:
2058  if (!isLeftToRight())
2059  targetWidget = abstractScrollArea()->verticalScrollBar();
2060  break;
2061  case HorizontalContainer:
2062  if (!isLeftToRight())
2063  targetWidget = abstractScrollArea()->cornerWidget();
2064  break;
2065  case VerticalContainer:
2066  if (isLeftToRight())
2067  targetWidget = abstractScrollArea()->viewport();
2068  break;
2069  case CornerWidget:
2070  if (isLeftToRight())
2071  targetWidget = abstractScrollArea()->horizontalScrollBar();
2072  break;
2073  default:
2074  break;
2075  }
2076  break;
2077  case Right:
2078  if (entry < 1)
2079  break;
2080  switch (entryElement) {
2081  case Viewport:
2082  if (isLeftToRight())
2083  targetWidget = abstractScrollArea()->verticalScrollBar();
2084  break;
2085  case HorizontalContainer:
2086  targetWidget = abstractScrollArea()->cornerWidget();
2087  break;
2088  case VerticalContainer:
2089  if (!isLeftToRight())
2090  targetWidget = abstractScrollArea()->viewport();
2091  break;
2092  case CornerWidget:
2093  if (!isLeftToRight())
2094  targetWidget = abstractScrollArea()->horizontalScrollBar();
2095  break;
2096  default:
2097  break;
2098  }
2099  break;
2100  case Up:
2101  if (entry < 1)
2102  break;
2103  switch (entryElement) {
2104  case HorizontalContainer:
2105  targetWidget = abstractScrollArea()->viewport();
2106  break;
2107  case CornerWidget:
2108  targetWidget = abstractScrollArea()->verticalScrollBar();
2109  break;
2110  default:
2111  break;
2112  }
2113  break;
2114  case Down:
2115  if (entry < 1)
2116  break;
2117  switch (entryElement) {
2118  case Viewport:
2119  targetWidget = abstractScrollArea()->horizontalScrollBar();
2120  break;
2121  case VerticalContainer:
2122  targetWidget = abstractScrollArea()->cornerWidget();
2123  break;
2124  default:
2125  break;
2126  }
2127  break;
2128  default:
2129  break;
2130  }
2131  } else {
2132  return QAccessibleWidgetEx::navigate(relation, entry, target);
2133  }
2134 
2135  if (qobject_cast<const QScrollBar *>(targetWidget))
2136  targetWidget = targetWidget->parentWidget();
2137  *target = QAccessible::queryAccessibleInterface(targetWidget);
2138  return *target ? 0: -1;
2139 }
QWidget * parentWidget() const
Returns the parent of this widget, or 0 if it does not have any parent widget.
Definition: qwidget.h:1035
AbstractScrollAreaElement elementType(QWidget *widget) const
QWidgetList accessibleChildren() const
The QWidget class is the base class of all user interface objects.
Definition: qwidget.h:150
QScrollBar * verticalScrollBar() const
Returns the vertical scroll bar.
int count(const T &t) const
Returns the number of occurrences of value in the list.
Definition: qlist.h:891
QWidget * cornerWidget() const
Returns the widget in the corner between the two scroll bars.
QWidget * viewport() const
Returns the viewport widget.
const T & at(int i) const
Returns the item at index position i in the list.
Definition: qlist.h:468
QAbstractScrollArea * abstractScrollArea() const
static QAccessibleInterface * queryAccessibleInterface(QObject *)
If a QAccessibleInterface implementation exists for the given object, this function returns a pointer...
QScrollBar * horizontalScrollBar() const
Returns the horizontal scroll bar.
int navigate(RelationFlag rel, int entry, QAccessibleInterface **target) const
Navigates from this object to an object that has a relationship relation to this object, and returns the respective object in target.
The QList class is a template class that provides lists.
Definition: qdatastream.h:62

◆ rect()

QRect QAccessibleAbstractScrollArea::rect ( int  child) const
virtual

Returns the geometry of the object, or of the object's child if child is not 0.

The geometry is in screen coordinates.

This function is only reliable for visible objects (invisible objects might not be laid out correctly).

All visual objects provide this information.

See also
childAt()

Reimplemented from QAccessibleWidgetEx.

Reimplemented in QAccessibleItemView.

Definition at line 2141 of file complexwidgets.cpp.

Referenced by childAt(), and QAccessibleItemView::rect().

2142 {
2143  if (!abstractScrollArea()->isVisible())
2144  return QRect();
2145  if (child == Self)
2146  return QAccessibleWidgetEx::rect(child);
2147  QWidgetList children = accessibleChildren();
2148  if (child < 1 || child > children.count())
2149  return QRect();
2150  const QWidget *childWidget = children.at(child - 1);
2151  if (!childWidget->isVisible())
2152  return QRect();
2153  return QRect(childWidget->mapToGlobal(QPoint(0, 0)), childWidget->size());
2154 }
bool isVisible() const
Definition: qwidget.h:1005
QWidgetList accessibleChildren() const
The QWidget class is the base class of all user interface objects.
Definition: qwidget.h:150
int count(const T &t) const
Returns the number of occurrences of value in the list.
Definition: qlist.h:891
QRect rect(int child) const
Returns the geometry of the object, or of the object&#39;s child if child is not 0.
const T & at(int i) const
Returns the item at index position i in the list.
Definition: qlist.h:468
QSize size
the size of the widget excluding any window frame
Definition: qwidget.h:165
QAbstractScrollArea * abstractScrollArea() const
The QPoint class defines a point in the plane using integer precision.
Definition: qpoint.h:53
The QRect class defines a rectangle in the plane using integer precision.
Definition: qrect.h:58
QPoint mapToGlobal(const QPoint &) const
Translates the widget coordinate pos to global screen coordinates.
The QList class is a template class that provides lists.
Definition: qdatastream.h:62

◆ setText()

void QAccessibleAbstractScrollArea::setText ( Text  t,
int  child,
const QString text 
)
virtual

Sets the text property t of the object, or of the object's child if child is not 0, to text.

Note that the text properties of most objects are read-only.

See also
text()

Reimplemented from QAccessibleObjectEx.

Reimplemented in QAccessibleItemView.

Definition at line 1964 of file complexwidgets.cpp.

Referenced by QAccessibleItemView::setText().

1965 {
1966  if (text.isEmpty())
1967  return;
1968  if (child == 0) {
1969  QAccessibleWidgetEx::setText(textType, 0, text);
1970  return;
1971  }
1972  QWidgetList children = accessibleChildren();
1973  if (child < 1 || child > children.count())
1974  return;
1975  QAccessibleInterface *childInterface = queryAccessibleInterface(children.at(child - 1));
1976  if (!childInterface)
1977  return;
1978  childInterface->setText(textType, 0, text);
1979  delete childInterface;
1980 }
QWidgetList accessibleChildren() const
int count(const T &t) const
Returns the number of occurrences of value in the list.
Definition: qlist.h:891
void setText(Text t, int child, const QString &text)
Sets the text property t of the object, or of the object&#39;s child if child is not 0, to text.
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
Definition: qstring.h:704
const T & at(int i) const
Returns the item at index position i in the list.
Definition: qlist.h:468
static QAccessibleInterface * queryAccessibleInterface(QObject *)
If a QAccessibleInterface implementation exists for the given object, this function returns a pointer...
The QAccessibleInterface class defines an interface that exposes information about accessible objects...
Definition: qaccessible.h:370
virtual void setText(Text t, int child, const QString &text)=0
Sets the text property t of the object, or of the object&#39;s child if child is not 0, to text.
The QList class is a template class that provides lists.
Definition: qdatastream.h:62

◆ state()

QAccessible::State QAccessibleAbstractScrollArea::state ( int  child) const
virtual

Returns the current state of the object, or of the object's child if child is not 0.

The returned value is a combination of the flags in the QAccessible::StateFlag enumeration.

All accessible objects have a state.

See also
text(), role()

Reimplemented from QAccessibleWidgetEx.

Reimplemented in QAccessibleItemView.

Definition at line 1982 of file complexwidgets.cpp.

Referenced by QAccessibleItemView::state().

1983 {
1984  if (child == Self)
1985  return QAccessibleWidgetEx::state(child);
1986  QWidgetList children = accessibleChildren();
1987  if (child < 1 || child > children.count())
1989  QAccessibleInterface *childInterface = queryAccessibleInterface(children.at(child - 1));
1990  if (!childInterface)
1992  QAccessible::State returnState = childInterface->state(0);
1993  delete childInterface;
1994  return returnState;
1995 }
virtual State state(int child) const =0
Returns the current state of the object, or of the object&#39;s child if child is not 0...
QWidgetList accessibleChildren() const
int count(const T &t) const
Returns the number of occurrences of value in the list.
Definition: qlist.h:891
const T & at(int i) const
Returns the item at index position i in the list.
Definition: qlist.h:468
static QAccessibleInterface * queryAccessibleInterface(QObject *)
If a QAccessibleInterface implementation exists for the given object, this function returns a pointer...
State
Definition: qaudio.h:59
The QAccessibleInterface class defines an interface that exposes information about accessible objects...
Definition: qaccessible.h:370
State state(int child) const
Returns the current state of the object, or of the object&#39;s child if child is not 0...
The QList class is a template class that provides lists.
Definition: qdatastream.h:62

◆ text()

QString QAccessibleAbstractScrollArea::text ( Text  t,
int  child 
) const
virtual

Returns the value of the text property t of the object, or of the object's child if child is not 0.

The Name is a string used by clients to identify, find, or announce an accessible object for the user. All objects must have a name that is unique within their container. The name can be used differently by clients, so the name should both give a short description of the object and be unique.

An accessible object's Description provides textual information about an object's visual appearance. The description is primarily used to provide greater context for vision-impaired users, but is also used for context searching or other applications. Not all objects have a description. An "OK" button would not need a description, but a tool button that shows a picture of a smiley would.

The Value of an accessible object represents visual information contained by the object, e.g. the text in a line edit. Usually, the value can be modified by the user. Not all objects have a value, e.g. static text labels don't, and some objects have a state that already is the value, e.g. toggle buttons.

The Help text provides information about the function and usage of an accessible object. Not all objects provide this information.

The Accelerator is a keyboard shortcut that activates the object's default action. A keyboard shortcut is the underlined character in the text of a menu, menu item or widget, and is either the character itself, or a combination of this character and a modifier key like Alt, Ctrl or Shift. Command controls like tool buttons also have shortcut keys and usually display them in their tooltip.

All objects provide a string for Name .

See also
role(), state()

Reimplemented from QAccessibleWidgetEx.

Reimplemented in QAccessibleItemView.

Definition at line 1949 of file complexwidgets.cpp.

Referenced by QAccessibleItemView::text().

1950 {
1951  if (child == Self)
1952  return QAccessibleWidgetEx::text(textType, 0);
1953  QWidgetList children = accessibleChildren();
1954  if (child < 1 || child > children.count())
1955  return QString();
1956  QAccessibleInterface *childInterface = queryAccessibleInterface(children.at(child - 1));
1957  if (!childInterface)
1958  return QString();
1959  QString string = childInterface->text(textType, 0);
1960  delete childInterface;
1961  return string;
1962 }
QWidgetList accessibleChildren() const
QString text(Text t, int child) const
Returns the value of the text property t of the object, or of the object&#39;s child if child is not 0...
int count(const T &t) const
Returns the number of occurrences of value in the list.
Definition: qlist.h:891
The QString class provides a Unicode character string.
Definition: qstring.h:83
const T & at(int i) const
Returns the item at index position i in the list.
Definition: qlist.h:468
static QAccessibleInterface * queryAccessibleInterface(QObject *)
If a QAccessibleInterface implementation exists for the given object, this function returns a pointer...
The QAccessibleInterface class defines an interface that exposes information about accessible objects...
Definition: qaccessible.h:370
virtual QString text(Text t, int child) const =0
Returns the value of the text property t of the object, or of the object&#39;s child if child is not 0...
The QList class is a template class that provides lists.
Definition: qdatastream.h:62

The documentation for this class was generated from the following files: