Qt 4.8
Public Functions | Protected Functions | List of all members
QAccessibleMenu Class Reference

#include <qaccessiblemenu.h>

Inheritance diagram for QAccessibleMenu:
QAccessibleWidgetEx QAccessibleObjectEx QAccessibleInterfaceEx QAccessibleInterface QAccessible

Public Functions

QString actionText (int action, QAccessible::Text text, int child) 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...
 
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...
 
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...
 
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...
 
 QAccessibleMenu (QWidget *w)
 
QRect rect (int child) const
 Returns the geometry of the object, or of the object's child if child is not 0. More...
 
Role role (int child) const
 Returns the role of the object, or of the object's child if child is not 0. 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 t, 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...
 
QVariant invokeMethodEx (Method method, int child, const QVariantList &params)
 
 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...
 
- Public Functions inherited from QAccessibleObjectEx
bool isValid () const
 Returns true if all the data necessary to use this interface implementation is valid (e. More...
 
QObjectobject () const
 Returns a pointer to the QObject this interface implementation provides information for. More...
 
 QAccessibleObjectEx (QObject *object)
 
void setText (Text t, 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...
 
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...
 

Protected Functions

QMenumenu () const
 
- 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 ()
 

Additional Inherited Members

- 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...
 
- 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...
 

Detailed Description

Definition at line 57 of file qaccessiblemenu.h.

Constructors and Destructors

◆ QAccessibleMenu()

QAccessibleMenu::QAccessibleMenu ( QWidget w)
explicit

Definition at line 58 of file qaccessiblemenu.cpp.

Referenced by navigate().

60 {
61  Q_ASSERT(menu());
62 }
QMenu * menu() const
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
QAccessibleWidgetEx(QWidget *o, Role r=Client, const QString &name=QString())

Functions

◆ actionText()

QString QAccessibleMenu::actionText ( int  action,
QAccessible::Text  text,
int  child 
) const

Definition at line 149 of file qaccessiblemenu.cpp.

150 {
151  if (action == QAccessible::DefaultAction && child && text == QAccessible::Name) {
152  QAction *a = menu()->actions().value(child-1, 0);
153  if (!a || a->isSeparator())
154  return QString();
155  if (a->menu()) {
156  if (a->menu()->isVisible())
157  return QMenu::tr("Close");
158  return QMenu::tr("Open");
159  }
160  return QMenu::tr("Execute");
161  }
162 
163  return QAccessibleWidgetEx::actionText(action, text, child);
164 }
bool isSeparator() const
Returns true if this action is a separator action; otherwise it returns false.
Definition: qaction.cpp:839
QMenu * menu() const
bool isVisible() const
Definition: qwidget.h:1005
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&#39;s child if...
static QString tr(const char *sourceText, const char *comment=0, int n=-1)
long ASN1_INTEGER_get ASN1_INTEGER * a
The QString class provides a Unicode character string.
Definition: qstring.h:83
T value(int i) const
Returns the value at index position i in the list.
Definition: qlist.h:661
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...
QMenu * menu() const
Returns the menu contained by this action.
Definition: qaction.cpp:793
QList< QAction * > actions() const
Returns the (possibly empty) list of this widget&#39;s actions.
Definition: qwidget.cpp:3407
The QAction class provides an abstract user interface action that can be inserted into widgets...
Definition: qaction.h:64

◆ childAt()

int QAccessibleMenu::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.

Definition at line 85 of file qaccessiblemenu.cpp.

86 {
87  QAction *act = menu()->actionAt(menu()->mapFromGlobal(QPoint(x,y)));
88  if(act && act->isSeparator())
89  act = 0;
90  return menu()->actions().indexOf(act) + 1;
91 }
bool isSeparator() const
Returns true if this action is a separator action; otherwise it returns false.
Definition: qaction.cpp:839
QMenu * menu() const
QAction * actionAt(const QPoint &) const
Returns the item at pt; returns 0 if there is no item there.
Definition: qmenu.cpp:1787
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
The QPoint class defines a point in the plane using integer precision.
Definition: qpoint.h:53
QList< QAction * > actions() const
Returns the (possibly empty) list of this widget&#39;s actions.
Definition: qwidget.cpp:3407
The QAction class provides an abstract user interface action that can be inserted into widgets...
Definition: qaction.h:64

◆ childCount()

int QAccessibleMenu::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.

Definition at line 69 of file qaccessiblemenu.cpp.

Referenced by navigate(), and rect().

70 {
71  return menu()->actions().count();
72 }
QMenu * menu() const
int count(const T &t) const
Returns the number of occurrences of value in the list.
Definition: qlist.h:891
QList< QAction * > actions() const
Returns the (possibly empty) list of this widget&#39;s actions.
Definition: qwidget.cpp:3407

◆ doAction()

bool QAccessibleMenu::doAction ( int  action,
int  child,
const QVariantList params 
)
virtual

Asks the object, or the object's child if child is not 0, to execute action using the parameters, params.

Returns true if the action could be executed; otherwise returns false.

action can be a predefined or a custom action.

See also
userActionCount(), actionText()

Reimplemented from QAccessibleWidgetEx.

Definition at line 166 of file qaccessiblemenu.cpp.

167 {
168  if (!child || act != QAccessible::DefaultAction)
169  return false;
170 
171  QAction *action = menu()->actions().value(child-1, 0);
172  if (!action || !action->isEnabled())
173  return false;
174 
175  if (action->menu() && action->menu()->isVisible())
176  action->menu()->hide();
177  else
178  menu()->setActiveAction(action);
179  return true;
180 }
void setActiveAction(QAction *act)
Sets the currently highlighted action to act.
Definition: qmenu.cpp:1707
bool isEnabled() const
Definition: qaction.cpp:1208
QMenu * menu() const
bool isVisible() const
Definition: qwidget.h:1005
T value(int i) const
Returns the value at index position i in the list.
Definition: qlist.h:661
void hide()
Hides the widget.
Definition: qwidget.h:501
QMenu * menu() const
Returns the menu contained by this action.
Definition: qaction.cpp:793
QList< QAction * > actions() const
Returns the (possibly empty) list of this widget&#39;s actions.
Definition: qwidget.cpp:3407
The QAction class provides an abstract user interface action that can be inserted into widgets...
Definition: qaction.h:64

◆ indexOfChild()

int QAccessibleMenu::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.

Definition at line 230 of file qaccessiblemenu.cpp.

231 {
232  int index = -1;
233  Role r = child->role(0);
234  if ((r == MenuItem || r == Separator) && menu()) {
235  index = menu()->actions().indexOf(qobject_cast<QAction*>(child->object()));
236  if (index != -1)
237  ++index;
238  }
239  return index;
240 }
QMenu * menu() const
Role
This enum defines the role of an accessible object.
Definition: qaccessible.h:188
virtual QObject * object() const =0
Returns a pointer to the QObject this interface implementation provides information for...
virtual Role role(int child) const =0
Returns the role of the object, or of the object&#39;s child if child is not 0.
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
QList< QAction * > actions() const
Returns the (possibly empty) list of this widget&#39;s actions.
Definition: qwidget.cpp:3407
quint16 index

◆ menu()

QMenu * QAccessibleMenu::menu ( ) const
protected

Definition at line 64 of file qaccessiblemenu.cpp.

Referenced by actionText(), childAt(), childCount(), doAction(), indexOfChild(), navigate(), QAccessibleMenu(), rect(), role(), state(), and text().

65 {
66  return qobject_cast<QMenu*>(object());
67 }
T qobject_cast(QObject *object)
Definition: qobject.h:375
QObject * object() const
Returns a pointer to the QObject this interface implementation provides information for...
The QMenu class provides a menu widget for use in menu bars, context menus, and other popup menus...
Definition: qmenu.h:72

◆ navigate()

int QAccessibleMenu::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.

Definition at line 182 of file qaccessiblemenu.cpp.

183 {
184  int ret = -1;
185  if (entry < 0) {
186  *target = 0;
187  return ret;
188  }
189 
190  if (relation == Self || entry == 0) {
191  *target = new QAccessibleMenu(menu());
192  return 0;
193  }
194 
195  switch (relation) {
196  case Child:
197  if (entry <= childCount()) {
198  *target = new QAccessibleMenuItem(menu(), menu()->actions().at( entry - 1 ));
199  ret = 0;
200  }
201  break;
202  case Ancestor: {
203  QAccessibleInterface *iface;
204  QWidget *parent = menu()->parentWidget();
205  if (qobject_cast<QMenu*>(parent) || qobject_cast<QMenuBar*>(parent)) {
206  iface = new QAccessibleMenuItem(parent, menu()->menuAction());
207  if (entry == 1) {
208  *target = iface;
209  ret = 0;
210  } else {
211  ret = iface->navigate(Ancestor, entry - 1, target);
212  delete iface;
213  }
214  } else {
215  return QAccessibleWidgetEx::navigate(relation, entry, target);
216  }
217  break;}
218  default:
219  return QAccessibleWidgetEx::navigate(relation, entry, target);
220  }
221 
222 
223  if (ret == -1)
224  *target = 0;
225 
226  return ret;
227 
228 }
QWidget * parentWidget() const
Returns the parent of this widget, or 0 if it does not have any parent widget.
Definition: qwidget.h:1035
QMenu * menu() const
#define at(className, varName)
The QWidget class is the base class of all user interface objects.
Definition: qwidget.h:150
QAccessibleMenu(QWidget *w)
virtual int navigate(RelationFlag relation, int index, QAccessibleInterface **iface) const =0
Navigates from this object to an object that has a relationship relation to this object, and returns the respective object in target.
int childCount() const
Returns the number of children that belong to this object.
The QAccessibleInterface class defines an interface that exposes information about accessible objects...
Definition: qaccessible.h:370
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.

◆ rect()

QRect QAccessibleMenu::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.

Definition at line 74 of file qaccessiblemenu.cpp.

75 {
76  if (!child || child > childCount())
77  return QAccessibleWidgetEx::rect(child);
78 
79  QRect r = menu()->actionGeometry(menu()->actions()[child - 1]);
80  QPoint tlp = menu()->mapToGlobal(QPoint(0,0));
81 
82  return QRect(tlp.x() + r.x(), tlp.y() + r.y(), r.width(), r.height());
83 }
QRect actionGeometry(QAction *) const
Returns the geometry of action act.
Definition: qmenu.cpp:1797
QMenu * menu() const
int width() const
Returns the width of the rectangle.
Definition: qrect.h:303
int height() const
Returns the height of the rectangle.
Definition: qrect.h:306
QRect rect(int child) const
Returns the geometry of the object, or of the object&#39;s child if child is not 0.
int childCount() const
Returns the number of children that belong to this object.
int y() const
Returns the y-coordinate of the rectangle&#39;s top edge.
Definition: qrect.h:255
int x() const
Returns the x-coordinate of the rectangle&#39;s left edge.
Definition: qrect.h:252
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 y() const
Returns the y coordinate of this point.
Definition: qpoint.h:131
int x() const
Returns the x coordinate of this point.
Definition: qpoint.h:128
QPoint mapToGlobal(const QPoint &) const
Translates the widget coordinate pos to global screen coordinates.

◆ role()

QAccessible::Role QAccessibleMenu::role ( int  child) const
virtual

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

The role of an object is usually static.

All accessible objects have a role.

See also
text(), state()

Reimplemented from QAccessibleWidgetEx.

Definition at line 116 of file qaccessiblemenu.cpp.

117 {
118  if (!child)
119  return PopupMenu;
120 
121  QAction *action = menu()->actions()[child-1];
122  if (action && action->isSeparator())
123  return Separator;
124  return MenuItem;
125 }
bool isSeparator() const
Returns true if this action is a separator action; otherwise it returns false.
Definition: qaction.cpp:839
QMenu * menu() const
QList< QAction * > actions() const
Returns the (possibly empty) list of this widget&#39;s actions.
Definition: qwidget.cpp:3407
The QAction class provides an abstract user interface action that can be inserted into widgets...
Definition: qaction.h:64

◆ state()

QAccessible::State QAccessibleMenu::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.

Definition at line 127 of file qaccessiblemenu.cpp.

128 {
130  if (!child)
131  return s;
132 
133  QAction *action = menu()->actions()[child-1];
134  if (!action)
135  return s;
136 
138  s |= HotTracked;
139  if (action->isSeparator() || !action->isEnabled())
140  s |= Unavailable;
141  if (action->isChecked())
142  s |= Checked;
143  if (menu()->activeAction() == action)
144  s |= Focused;
145 
146  return s;
147 }
bool isSeparator() const
Returns true if this action is a separator action; otherwise it returns false.
Definition: qaction.cpp:839
bool isEnabled() const
Definition: qaction.cpp:1208
QMenu * menu() const
QAction * activeAction() const
Returns the currently highlighted action, or 0 if no action is currently highlighted.
Definition: qmenu.cpp:1720
const char * styleHint(const QFontDef &request)
The State element defines configurations of objects and properties.
QList< QAction * > actions() const
Returns the (possibly empty) list of this widget&#39;s actions.
Definition: qwidget.cpp:3407
bool isChecked() const
Definition: qaction.cpp:1151
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 QAction class provides an abstract user interface action that can be inserted into widgets...
Definition: qaction.h:64

◆ text()

QString QAccessibleMenu::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.

Definition at line 93 of file qaccessiblemenu.cpp.

94 {
95  QString tx = QAccessibleWidgetEx::text(t, child);
96  if (!child && tx.size())
97  return tx;
98 
99  switch (t) {
100  case Name:
101  if (!child)
102  return menu()->windowTitle();
103  return qt_accStripAmp(menu()->actions().at(child-1)->text());
104  case Help:
105  return child ? menu()->actions().at(child-1)->whatsThis() : tx;
106 #ifndef QT_NO_SHORTCUT
107  case Accelerator:
108  return child ? static_cast<QString>(menu()->actions().at(child-1)->shortcut()) : tx;
109 #endif
110  default:
111  break;
112  }
113  return tx;
114 }
QKeySequence shortcut
the action&#39;s primary shortcut key
Definition: qaction.h:83
QMenu * menu() const
#define at(className, varName)
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...
The QString class provides a Unicode character string.
Definition: qstring.h:83
int size() const
Returns the number of characters in this string.
Definition: qstring.h:102
const T & at(int i) const
Returns the item at index position i in the list.
Definition: qlist.h:468
QString windowTitle() 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...
QString whatsThis
the action&#39;s "What&#39;s This?" help text
Definition: qaction.h:80
QList< QAction * > actions() const
Returns the (possibly empty) list of this widget&#39;s actions.
Definition: qwidget.cpp:3407
QString Q_GUI_EXPORT qt_accStripAmp(const QString &text)

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