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

#include <qaccessiblemenu.h>

Inheritance diagram for QAccessibleMenuItem:
QAccessibleActionInterface QAccessibleInterfaceEx QAccessible2Interface QAccessibleInterface QAccessible

Public Functions

virtual int actionCount ()
 
virtual 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...
 
virtual int childAt (int x, int y) const
 Returns the 1-based index of the child that contains the screen coordinates (x, y). More...
 
virtual int childCount () const
 Returns the number of children that belong to this object. More...
 
virtual QString description (int)
 
virtual bool doAction (int action, int child, const QVariantList &params=QVariantList())
 Asks the object, or the object's child if child is not 0, to execute action using the parameters, params. More...
 
virtual void doAction (int actionIndex)
 
virtual 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...
 
virtual QVariant invokeMethodEx (Method, int, const QVariantList &)
 
virtual bool isValid () const
 Returns true if all the data necessary to use this interface implementation is valid (e. More...
 
virtual QStringList keyBindings (int)
 
virtual QString localizedName (int)
 
virtual QString name (int)
 
virtual 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...
 
virtual QObjectobject () const
 Returns a pointer to the QObject this interface implementation provides information for. More...
 
QWidgetowner () const
 
 QAccessibleMenuItem (QWidget *owner, QAction *w)
 
virtual QRect rect (int child) const
 Returns the geometry of the object, or of the object's child if child is not 0. More...
 
virtual 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...
 
virtual Role role (int child) const
 Returns the role of the object, or of the object's child if child is not 0. More...
 
virtual 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...
 
virtual State state (int child) const
 Returns the current state of the object, or of the object's child if child is not 0. More...
 
virtual 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...
 
virtual 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...
 
virtual ~QAccessibleMenuItem ()
 
- Public Functions inherited from QAccessibleActionInterface
QAccessible2InterfaceqAccessibleActionCastHelper ()
 
- Public Functions inherited from QAccessible2Interface
virtual ~QAccessible2Interface ()
 
- 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

QActionaction () const
 

Properties

QActionm_action
 
QWidgetm_owner
 

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 105 of file qaccessiblemenu.h.

Constructors and Destructors

◆ QAccessibleMenuItem()

QAccessibleMenuItem::QAccessibleMenuItem ( QWidget owner,
QAction w 
)
explicit

Definition at line 408 of file qaccessiblemenu.cpp.

Referenced by navigate().

408  : m_action(action), m_owner(owner)
409 {
410 }
QAction * action() const

◆ ~QAccessibleMenuItem()

QAccessibleMenuItem::~QAccessibleMenuItem ( )
virtual

Definition at line 413 of file qaccessiblemenu.cpp.

414 {}

Functions

◆ action()

QAction * QAccessibleMenuItem::action ( ) const
protected

Definition at line 695 of file qaccessiblemenu.cpp.

Referenced by navigate().

696 {
697  return m_action;
698 }

◆ actionCount()

int QAccessibleMenuItem::actionCount ( )
virtual

Implements QAccessibleActionInterface.

Definition at line 473 of file qaccessiblemenu.cpp.

474 {
475  return 1;
476 }

◆ actionText()

QString QAccessibleMenuItem::actionText ( int  action,
Text  t,
int  child 
) const
virtual

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

See also
text(), userActionCount()

Implements QAccessibleInterface.

Definition at line 430 of file qaccessiblemenu.cpp.

Referenced by name().

431 {
432  if (text == Name && child == 0) {
433  switch (action) {
434  case Press:
435  case DefaultAction:
436  if (m_action->menu())
437  return QMenu::tr("Open");
438  return QMenu::tr("Execute");
439  break;
440  default:
441  break;
442  }
443  }
444  return QString();
445 }
static QString tr(const char *sourceText, const char *comment=0, int n=-1)
virtual 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
QAction * action() const
QMenu * menu() const
Returns the menu contained by this action.
Definition: qaction.cpp:793

◆ childAt()

int QAccessibleMenuItem::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()

Implements QAccessibleInterface.

Definition at line 416 of file qaccessiblemenu.cpp.

417 {
418  for (int i = childCount(); i >= 0; --i) {
419  if (rect(i).contains(x,y))
420  return i;
421  }
422  return -1;
423 }
virtual QRect rect(int child) const
Returns the geometry of the object, or of the object&#39;s child if child is not 0.
virtual int childCount() const
Returns the number of children that belong to this object.

◆ childCount()

int QAccessibleMenuItem::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()

Implements QAccessibleInterface.

Definition at line 425 of file qaccessiblemenu.cpp.

Referenced by childAt(), and navigate().

426 {
427  return m_action->menu() ? 1 : 0;
428 }
QMenu * menu() const
Returns the menu contained by this action.
Definition: qaction.cpp:793

◆ description()

QString QAccessibleMenuItem::description ( int  )
virtual

Implements QAccessibleActionInterface.

Definition at line 700 of file qaccessiblemenu.cpp.

701 {
702  return text(QAccessible::Description, 0);
703 }
virtual 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...

◆ doAction() [1/2]

bool QAccessibleMenuItem::doAction ( int  action,
int  child,
const QVariantList params = QVariantList() 
)
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()

Implements QAccessibleInterface.

Definition at line 447 of file qaccessiblemenu.cpp.

Referenced by doAction().

448 {
449  if ((child) || ((action != DefaultAction) && (action != Press)))
450  return false;
451 
452  // if the action has a menu, expand/hide it
453  if (m_action->menu()) {
454  if (m_action->menu()->isVisible()) {
455  m_action->menu()->hide();
456  return true;
457  } else {
458  if (QMenuBar *bar = qobject_cast<QMenuBar*>(owner())) {
459  bar->setActiveAction(m_action);
460  return true;
461  } else if (QMenu *menu = qobject_cast<QMenu*>(owner())){
462  menu->setActiveAction(m_action);
463  return true;
464  }
465  }
466  }
467  // no menu
468  m_action->trigger();
469  return true;
470 }
bool isVisible() const
Definition: qwidget.h:1005
QWidget * owner() const
void trigger()
This is a convenience slot that calls activate(Trigger).
Definition: qaction.h:218
void hide()
Hides the widget.
Definition: qwidget.h:501
QAction * action() const
QMenu * menu() const
Returns the menu contained by this action.
Definition: qaction.cpp:793
The QMenuBar class provides a horizontal menu bar.
Definition: qmenubar.h:62
The QMenu class provides a menu widget for use in menu bars, context menus, and other popup menus...
Definition: qmenu.h:72

◆ doAction() [2/2]

void QAccessibleMenuItem::doAction ( int  actionIndex)
virtual

Implements QAccessibleActionInterface.

Definition at line 478 of file qaccessiblemenu.cpp.

479 {
480  if (actionIndex)
481  return;
482 
484 }
virtual bool doAction(int action, int child, const QVariantList &params=QVariantList())
Asks the object, or the object&#39;s child if child is not 0, to execute action using the parameters...

◆ indexOfChild()

int QAccessibleMenuItem::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()

Implements QAccessibleInterface.

Definition at line 486 of file qaccessiblemenu.cpp.

487 {
488  if (child->role(0) == PopupMenu && child->object() == m_action->menu())
489  return 1;
490 
491  return -1;
492 }
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.
QMenu * menu() const
Returns the menu contained by this action.
Definition: qaction.cpp:793

◆ invokeMethodEx()

QVariant QAccessibleMenuItem::invokeMethodEx ( Method  ,
int  ,
const QVariantList  
)
virtual

Implements QAccessibleInterfaceEx.

Definition at line 728 of file qaccessiblemenu.cpp.

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

◆ isValid()

bool QAccessibleMenuItem::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()

Implements QAccessibleInterface.

Definition at line 494 of file qaccessiblemenu.cpp.

495 {
496  return m_action ? true : false;
497 }

◆ keyBindings()

QStringList QAccessibleMenuItem::keyBindings ( int  )
virtual

Implements QAccessibleActionInterface.

Definition at line 715 of file qaccessiblemenu.cpp.

716 {
718 #ifndef QT_NO_SHORTCUT
720  if (!key.isEmpty()) {
721  keys.append(key.toString());
722  }
723 #endif
724  return keys;
725 }
QKeySequence shortcut
the action&#39;s primary shortcut key
Definition: qaction.h:83
QStringList keys
void append(const T &t)
Inserts value at the end of the list.
Definition: qlist.h:507
The QStringList class provides a list of strings.
Definition: qstringlist.h:66
QString toString(SequenceFormat format=PortableText) const
Return a string representation of the key sequence, based on format.
bool isEmpty() const
Returns true if the key sequence is empty; otherwise returns false.
The QKeySequence class encapsulates a key sequence as used by shortcuts.
Definition: qkeysequence.h:72
int key

◆ localizedName()

QString QAccessibleMenuItem::localizedName ( int  )
virtual

Implements QAccessibleActionInterface.

Definition at line 710 of file qaccessiblemenu.cpp.

711 {
712  return text(QAccessible::Name, 0);
713 }
virtual 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...

◆ name()

QString QAccessibleMenuItem::name ( int  )
virtual

Implements QAccessibleActionInterface.

Definition at line 705 of file qaccessiblemenu.cpp.

706 {
708 }
virtual 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...

◆ navigate()

int QAccessibleMenuItem::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()

Implements QAccessibleInterface.

Definition at line 499 of file qaccessiblemenu.cpp.

500 {
501  int ret = -1;
502  if (entry < 0) {
503  *target = 0;
504  return ret;
505  }
506 
507  if (relation == Self || entry == 0) {
508  *target = new QAccessibleMenuItem(owner(), action());
509  return 0;
510  }
511 
512  switch (relation) {
513  case Child:
514  if (entry <= childCount()) {
515  *target = new QAccessibleMenu(action()->menu());
516  ret = 0;
517  }
518  break;
519 
520  case Ancestor:{
521  QWidget *parent = owner();
522  QAccessibleInterface *ancestor = parent ? QAccessible::queryAccessibleInterface(parent) : 0;
523  if (ancestor) {
524  if (entry == 1) {
525  *target = ancestor;
526  ret = 0;
527  } else {
528  ret = ancestor->navigate(Ancestor, entry - 1, target);
529  delete ancestor;
530  }
531  }
532  break;}
533  case Up:
534  case Down:{
535  QAccessibleInterface *parent = 0;
536  int ent = navigate(Ancestor, 1, &parent);
537  if (ent == 0) {
538  int index = parent->indexOfChild(this);
539  if (index != -1) {
540  index += (relation == Down ? +1 : -1);
541  ret = parent->navigate(Child, index, target);
542  }
543  }
544  delete parent;
545  break;}
546  case Sibling: {
547  QAccessibleInterface *parent = 0;
548  int ent = navigate(Ancestor, 1, &parent);
549  if (ent == 0) {
550  ret = parent->navigate(Child, entry, target);
551  }
552  delete parent;
553  break;}
554  default:
555  break;
556 
557  }
558  if (ret == -1)
559  *target = 0;
560  return ret;
561 }
virtual int indexOfChild(const QAccessibleInterface *) const =0
Returns the 1-based index of the object child in this object&#39;s children list, or -1 if child is not a...
QWidget * owner() const
The QWidget class is the base class of all user interface objects.
Definition: qwidget.h:150
QAccessibleMenuItem(QWidget *owner, QAction *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.
virtual int childCount() const
Returns the number of children that belong to this object.
QAction * action() const
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 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.
quint16 index

◆ object()

QObject * QAccessibleMenuItem::object ( ) const
virtual

Returns a pointer to the QObject this interface implementation provides information for.

See also
isValid()

Implements QAccessibleInterface.

Definition at line 563 of file qaccessiblemenu.cpp.

564 {
565  return m_action;
566 }

◆ owner()

QWidget * QAccessibleMenuItem::owner ( ) const

Definition at line 733 of file qaccessiblemenu.cpp.

Referenced by doAction(), navigate(), rect(), relationTo(), and state().

734 {
735  return m_owner;
736 }

◆ rect()

QRect QAccessibleMenuItem::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()

Implements QAccessibleInterface.

Definition at line 568 of file qaccessiblemenu.cpp.

Referenced by childAt().

569 {
570  QRect rect;
571  if (child == 0) {
572  QWidget *own = owner();
573 #ifndef QT_NO_MENUBAR
574  if (QMenuBar *menuBar = qobject_cast<QMenuBar*>(own)) {
575  rect = menuBar->actionGeometry(m_action);
576  QPoint globalPos = menuBar->mapToGlobal(QPoint(0,0));
577  rect = rect.translated(globalPos);
578  } else
579 #endif // QT_NO_MENUBAR
580  if (QMenu *menu = qobject_cast<QMenu*>(own)) {
581  rect = menu->actionGeometry(m_action);
582  QPoint globalPos = menu->mapToGlobal(QPoint(0,0));
583  rect = rect.translated(globalPos);
584  }
585  } else if (child == 1) {
586  QMenu *menu = m_action->menu();
587  if (menu) {
588  rect = menu->rect();
589  QPoint globalPos = menu->mapToGlobal(QPoint(0,0));
590  rect = rect.translated(globalPos);
591  }
592  }
593  return rect;
594 }
QWidget * owner() const
virtual QRect rect(int child) const
Returns the geometry of the object, or of the object&#39;s child if child is not 0.
The QWidget class is the base class of all user interface objects.
Definition: qwidget.h:150
QRect translated(int dx, int dy) const
Returns a copy of the rectangle that is translated dx along the x axis and dy along the y axis...
Definition: qrect.h:328
QRect rect() const
QMenu * menu() const
Returns the menu contained by this action.
Definition: qaction.cpp:793
The QMenuBar class provides a horizontal menu bar.
Definition: qmenubar.h:62
The QMenu class provides a menu widget for use in menu bars, context menus, and other popup menus...
Definition: qmenu.h:72
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.

◆ relationTo()

QAccessible::Relation QAccessibleMenuItem::relationTo ( int  child,
const QAccessibleInterface other,
int  otherChild 
) const
virtual

Returns the relationship between this object's \a child and the \a
other object's \a otherChild.

If child is 0 the object's own relation is returned.

The returned value indicates the relation of the called object to the other object, e.g. if this object is a child of other the return value will be Child.

The return value is a combination of the bit flags in the QAccessible::Relation enumeration.

All objects provide this information.

See also
indexOfChild(), navigate()

Implements QAccessibleInterface.

Definition at line 596 of file qaccessiblemenu.cpp.

597 {
598  if (other->object() == owner()) {
599  return Child;
600  }
601  Q_UNUSED(child)
602  Q_UNUSED(other)
603  Q_UNUSED(otherChild)
604  // ###
605  return Unrelated;
606 }
QWidget * owner() const
virtual QObject * object() const =0
Returns a pointer to the QObject this interface implementation provides information for...
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ role()

QAccessible::Role QAccessibleMenuItem::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()

Implements QAccessibleInterface.

Definition at line 608 of file qaccessiblemenu.cpp.

609 {
610  return m_action->isSeparator() ? Separator :MenuItem;
611 }
bool isSeparator() const
Returns true if this action is a separator action; otherwise it returns false.
Definition: qaction.cpp:839

◆ setText()

void QAccessibleMenuItem::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()

Implements QAccessibleInterface.

Definition at line 613 of file qaccessiblemenu.cpp.

614 {
615 
616 }

◆ state()

QAccessible::State QAccessibleMenuItem::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()

Implements QAccessibleInterface.

Definition at line 618 of file qaccessiblemenu.cpp.

619 {
621 
622  if (child == 0) {
623  s = Normal;
624  QWidget *own = owner();
625 
626  if (own && (own->testAttribute(Qt::WA_WState_Visible) == false || m_action->isVisible() == false)) {
627  s |= Invisible;
628  }
629 
630  if (QMenu *menu = qobject_cast<QMenu*>(own)) {
631  if (menu->activeAction() == m_action)
632  s |= Focused;
633 #ifndef QT_NO_MENUBAR
634  } else if (QMenuBar *menuBar = qobject_cast<QMenuBar*>(own)) {
635  if (menuBar->activeAction() == m_action)
636  s |= Focused;
637 #endif
638  }
639  if (own && own->style()->styleHint(QStyle::SH_Menu_MouseTracking))
640  s |= HotTracked;
641  if (m_action->isSeparator() || !m_action->isEnabled())
642  s |= Unavailable;
643  if (m_action->isChecked())
644  s |= Checked;
645  } else if (child == 1) {
646  QMenu *menu = m_action->menu();
647  if (menu) {
649  s = iface->state(0);
650  delete iface;
651  }
652  }
653  return s | HasInvokeExtension;;
654 }
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
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...
QWidget * owner() const
The QWidget class is the base class of all user interface objects.
Definition: qwidget.h:150
virtual int styleHint(StyleHint stylehint, const QStyleOption *opt=0, const QWidget *widget=0, QStyleHintReturn *returnData=0) const =0
Returns an integer representing the specified style hint for the given widget described by the provid...
QStyle * style() const
Definition: qwidget.cpp:2742
bool isVisible() const
Definition: qaction.cpp:1246
bool testAttribute(Qt::WidgetAttribute) const
Returns true if attribute attribute is set on this widget; otherwise returns false.
Definition: qwidget.h:1041
static QAccessibleInterface * queryAccessibleInterface(QObject *)
If a QAccessibleInterface implementation exists for the given object, this function returns a pointer...
QMenu * menu() const
Returns the menu contained by this action.
Definition: qaction.cpp:793
The QMenuBar class provides a horizontal menu bar.
Definition: qmenubar.h:62
The QMenu class provides a menu widget for use in menu bars, context menus, and other popup menus...
Definition: qmenu.h:72
State
Definition: qaudio.h:59
The QAccessibleInterface class defines an interface that exposes information about accessible objects...
Definition: qaccessible.h:370
bool isChecked() const
Definition: qaction.cpp:1151

◆ text()

QString QAccessibleMenuItem::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()

Implements QAccessibleInterface.

Definition at line 656 of file qaccessiblemenu.cpp.

Referenced by description(), and localizedName().

657 {
658  QString str;
659  switch (t) {
660  case Name:
661  if (child == 0) {
662  str = m_action->text();
663  } else if (child == 1) {
664  QMenu *m = m_action->menu();
665  if (m)
666  str = m->title();
667  }
668  str = qt_accStripAmp(str);
669  break;
670  case Accelerator:
671  if (child == 0) {
672 #ifndef QT_NO_SHORTCUT
674  if (!key.isEmpty()) {
675  str = key.toString();
676  } else
677 #endif
678  {
679  str = qt_accHotKey(m_action->text());
680  }
681  }
682  break;
683  default:
684  break;
685  }
686  return str;
687 }
QString title
The title of the menu.
Definition: qmenu.h:79
QKeySequence shortcut
the action&#39;s primary shortcut key
Definition: qaction.h:83
QString text
the action&#39;s descriptive text
Definition: qaction.h:76
QString Q_GUI_EXPORT qt_accHotKey(const QString &text)
The QString class provides a Unicode character string.
Definition: qstring.h:83
QString toString(SequenceFormat format=PortableText) const
Return a string representation of the key sequence, based on format.
bool isEmpty() const
Returns true if the key sequence is empty; otherwise returns false.
QMenu * menu() const
Returns the menu contained by this action.
Definition: qaction.cpp:793
The QKeySequence class encapsulates a key sequence as used by shortcuts.
Definition: qkeysequence.h:72
The QMenu class provides a menu widget for use in menu bars, context menus, and other popup menus...
Definition: qmenu.h:72
int key
QString Q_GUI_EXPORT qt_accStripAmp(const QString &text)

◆ userActionCount()

int QAccessibleMenuItem::userActionCount ( int  child) const
virtual

Returns the number of custom actions of the object, or of the object's child if child is not 0.

The Action type enumerates predefined actions: these are not included in the returned value.

See also
actionText(), doAction()

Implements QAccessibleInterface.

Definition at line 690 of file qaccessiblemenu.cpp.

691 {
692  return 0;
693 }

Properties

◆ m_action

QAction* QAccessibleMenuItem::m_action
private

◆ m_owner

QWidget* QAccessibleMenuItem::m_owner
private

Definition at line 143 of file qaccessiblemenu.h.

Referenced by owner().


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