#ifndef QACCESSIBLE_H
#define QACCESSIBLE_H 
#include <QtCore/qglobal.h>
#include <QtGui/qevent.h>
#include <QtCore/qobject.h>
#include <QtCore/qrect.h>
#include <QtCore/qvector.h>
#include <QtCore/qvariant.h>
typedef enum QtValidLicenseForGuiModule QtGuiModule;
#ifndef QT_NO_ACCESSIBILITY
class QAccessible{
   public: enum Event{
      SoundPlayed = 1,
      Alert = 2,
      ForegroundChanged = 3,
      MenuStart = 4,
      MenuEnd = 5,
      PopupMenuStart = 6,
      PopupMenuEnd = 7,
      ContextHelpStart = 12,
      ContextHelpEnd = 13,
      DragDropStart = 14,
      DragDropEnd = 15,
      DialogStart = 16,
      DialogEnd = 17,
      ScrollingStart = 18,
      ScrollingEnd = 19,
      MenuCommand = 24,
      ObjectCreated = 32768,
      ObjectDestroyed = 32769,
      ObjectShow = 32770,
      ObjectHide = 32771,
      ObjectReorder = 32772,
      Focus = 32773,
      Selection = 32774,
      SelectionAdd = 32775,
      SelectionRemove = 32776,
      SelectionWithin = 32777,
      StateChanged = 32778,
      LocationChanged = 32779,
      NameChanged = 32780,
      DescriptionChanged = 32781,
      ValueChanged = 32782,
      ParentChanged = 32783,
      HelpChanged = 32928,
      DefaultActionChanged = 32944,
      AcceleratorChanged = 32960,
   };
   public: enum StateFlag{
      Normal = 0,
      Unavailable = 1,
      Selected = 2,
      Focused = 4,
      Pressed = 8,
      Checked = 16,
      Mixed = 32,
      ReadOnly = 64,
      HotTracked = 128,
      DefaultButton = 256,
      Expanded = 512,
      Collapsed = 1024,
      Busy = 2048,
      Marqueed = 8192,
      Animated = 16384,
      Invisible = 32768,
      Offscreen = 65536,
      Sizeable = 131072,
      Movable = 262144,
      SelfVoicing = 524288,
      Focusable = 1048576,
      Selectable = 2097152,
      Linked = 4194304,
      Traversed = 8388608,
      MultiSelectable = 16777216,
      ExtSelectable = 33554432,
      Protected = 536870912,
      HasPopup = 1073741824,
      Modal = -2147483648,
      HasInvokeExtension = 268435456,
   };
   public: typedef class QFlags < enum QAccessible::StateFlag > State;
   public: enum Role{
      NoRole = 0,
      TitleBar = 1,
      MenuBar = 2,
      ScrollBar = 3,
      Grip = 4,
      Sound = 5,
      Cursor = 6,
      Caret = 7,
      AlertMessage = 8,
      Window = 9,
      Client = 10,
      PopupMenu = 11,
      MenuItem = 12,
      ToolTip = 13,
      Application = 14,
      Document = 15,
      Pane = 16,
      Chart = 17,
      Dialog = 18,
      Border = 19,
      Grouping = 20,
      Separator = 21,
      ToolBar = 22,
      StatusBar = 23,
      Table = 24,
      ColumnHeader = 25,
      RowHeader = 26,
      Column = 27,
      Row = 28,
      Cell = 29,
      Link = 30,
      HelpBalloon = 31,
      Assistant = 32,
      List = 33,
      ListItem = 34,
      Tree = 35,
      TreeItem = 36,
      PageTab = 37,
      PropertyPage = 38,
      Indicator = 39,
      Graphic = 40,
      StaticText = 41,
      EditableText = 42,
      PushButton = 43,
      CheckBox = 44,
      RadioButton = 45,
      ComboBox = 46,
      ProgressBar = 48,
      Dial = 49,
      HotkeyField = 50,
      Slider = 51,
      SpinBox = 52,
      Canvas = 53,
      Animation = 54,
      Equation = 55,
      ButtonDropDown = 56,
      ButtonMenu = 57,
      ButtonDropGrid = 58,
      Whitespace = 59,
      PageTabList = 60,
      Clock = 61,
      Splitter = 62,
      LayeredPane = 63,
      UserRole = 65535,
   };
   public: enum Text{
      Name = 0,
      Description = 1,
      Value = 2,
      Help = 3,
      Accelerator = 4,
      UserText = 65535,
   };
   public: enum RelationFlag{
      Unrelated = 0,
      Self = 1,
      Ancestor = 2,
      Child = 4,
      Descendent = 8,
      Sibling = 16,
      HierarchyMask = 255,
      Up = 256,
      Down = 512,
      Left = 1024,
      Right = 2048,
      Covers = 4096,
      Covered = 8192,
      GeometryMask = 65280,
      FocusChild = 65536,
      Label = 131072,
      Labelled = 262144,
      Controller = 524288,
      Controlled = 1048576,
      LogicalMask = 16711680,
   };
   public: typedef class QFlags < enum QAccessible::RelationFlag > Relation;
   public: enum Action{
      DefaultAction = 0,
      Press = -1,
      FirstStandardAction = -1,
      SetFocus = -2,
      Increase = -3,
      Decrease = -4,
      Accept = -5,
      Cancel = -6,
      Select = -7,
      ClearSelection = -8,
      RemoveSelection = -9,
      ExtendSelection = -10,
      AddToSelection = -11,
      LastStandardAction = -11,
   };
   public: enum Method{
      ListSupportedMethods = 0,
      SetCursorPosition = 1,
      GetCursorPosition = 2,
   };
   public: typedef class QAccessibleInterface* (* InterfaceFactory)(class QString const &, class QObject*);
   public: typedef void (* UpdateHandler)(class QObject*, int, enum QAccessible::Event);
   public: typedef void (* RootObjectHandler)(class QObject*);
   public: static void installFactory(class QAccessibleInterface* (* )(class QString const &, class QObject*));
   public: static void removeFactory(class QAccessibleInterface* (* )(class QString const &, class QObject*));
   public: static void (* installUpdateHandler(void (* )(class QObject*, int, enum QAccessible::Event)) )(class QObject*, int, enum QAccessible::Event);
   public: static void (* installRootObjectHandler(void (* )(class QObject*)) )(class QObject*);
   public: static class QAccessibleInterface* queryAccessibleInterface(class QObject*);
   public: static void updateAccessibility(class QObject*, int who, enum QAccessible::Event reason);
   public: static bool isActive();
   public: static void setRootObject(class QObject*);
   public: static void initialize();
   public: static void cleanup();
   private: static void (* updateHandler)(class QObject*, int, enum QAccessible::Event);
   private: static void (* rootObjectHandler)(class QObject*);
};
inline class QFlags < enum QAccessible::StateFlag > operator |(enum QAccessible::StateFlag f1, class QFlags < enum QAccessible::StateFlag > f2);
inline class QFlags < enum QAccessible::StateFlag > operator |(enum QAccessible::StateFlag f1, enum QAccessible::StateFlag f2);
inline class QFlags < enum QAccessible::RelationFlag > operator |(enum QAccessible::RelationFlag f1, class QFlags < enum QAccessible::RelationFlag > f2);
inline class QFlags < enum QAccessible::RelationFlag > operator |(enum QAccessible::RelationFlag f1, enum QAccessible::RelationFlag f2);
class QAccessibleInterface: public QAccessible{
   public: virtual inline ~QAccessibleInterface();
   public: virtual bool isValid() const = 0;
   public: virtual class QObject* object() const = 0;
   public: virtual int childCount() const = 0;
   public: virtual int indexOfChild(class QAccessibleInterface const *) const = 0;
   public: virtual class QFlags < enum QAccessible::RelationFlag > relationTo(int child, class QAccessibleInterface const * other, int otherChild) const = 0;
   public: virtual int childAt(int x, int y) const = 0;
   public: virtual int navigate(enum QAccessible::RelationFlag relation, int index, class QAccessibleInterface* * iface) const = 0;
   public: virtual class QString text(enum QAccessible::Text t, int child) const = 0;
   public: virtual void setText(enum QAccessible::Text t, int child, class QString const & text) = 0;
   public: virtual class QRect rect(int child) const = 0;
   public: virtual enum QAccessible::Role role(int child) const = 0;
   public: virtual class QFlags < enum QAccessible::StateFlag > state(int child) const = 0;
   public: virtual int userActionCount(int child) const = 0;
   public: virtual class QString actionText(int action, enum QAccessible::Text t, int child) const = 0;
   public: virtual bool doAction(int action, int child, QVariantList const & params = QList::QList()) = 0;
   public: class QVariant invokeMethod(enum QAccessible::Method method, int child = 0, QVariantList const & params = QList::QList());
};
class QAccessibleInterfaceEx: public QAccessibleInterface{
   public: virtual class QVariant invokeMethodEx(enum QAccessible::Method method, int child, QVariantList const & params) = 0;
   public: virtual class QVariant virtual_hook(class QVariant const & data);
};
#define QAccessibleInterface_iid "com.trolltech.Qt.QAccessibleInterface"

class QAccessibleEvent: public QEvent{
   public: inline int child() const
   public: inline class QString value() const
   public: inline void setValue(class QString const & aText);
   private: int c;
   private: class QString val;
   public: inline QAccessibleEvent(enum QEvent::Type atype, int achild);
};
#endif // QT_NO_ACCESSIBILITY
#endif // QACCESSIBLE_H