diff options
Diffstat (limited to 'src/kernel/qaccessible.h')
-rw-r--r-- | src/kernel/qaccessible.h | 295 |
1 files changed, 295 insertions, 0 deletions
diff --git a/src/kernel/qaccessible.h b/src/kernel/qaccessible.h new file mode 100644 index 000000000..1b412c762 --- /dev/null +++ b/src/kernel/qaccessible.h @@ -0,0 +1,295 @@ +/**************************************************************************** +** +** Definition of TQAccessible and TQAccessibleObject classes +** +** Copyright (C) 2000-2008 Trolltech ASA. All rights reserved. +** +** This file is part of the kernel module of the TQt GUI Toolkit. +** +** This file may be used under the terms of the GNU General +** Public License versions 2.0 or 3.0 as published by the Free +** Software Foundation and appearing in the files LICENSE.GPL2 +** and LICENSE.GPL3 included in the packaging of this file. +** Alternatively you may (at your option) use any later version +** of the GNU General Public License if such license has been +** publicly approved by Trolltech ASA (or its successors, if any) +** and the KDE Free TQt Foundation. +** +** Please review the following information to ensure GNU General +** Public Licensing retquirements will be met: +** http://trolltech.com/products/qt/licenses/licensing/opensource/. +** If you are unsure which license is appropriate for your use, please +** review the following information: +** http://trolltech.com/products/qt/licenses/licensing/licensingoverview +** or contact the sales department at [email protected]. +** +** This file may be used under the terms of the Q Public License as +** defined by Trolltech ASA and appearing in the file LICENSE.TQPL +** included in the packaging of this file. Licensees holding valid TQt +** Commercial licenses may use this file in accordance with the TQt +** Commercial License Agreement provided with the Software. +** +** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, +** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted +** herein. +** +**********************************************************************/ + +#ifndef TQACCESSIBLE_H +#define TQACCESSIBLE_H + +#ifndef QT_H +#include "qobject.h" +#include <private/qcom_p.h> +#include "qrect.h" +#include "qguardedptr.h" +#include "qmemarray.h" +#endif // QT_H + +#if defined(QT_ACCESSIBILITY_SUPPORT) + +struct TQAccessibleInterface; + +class Q_EXPORT TQAccessible +{ +private: +#ifdef Q_WS_MAC + static TQMAC_PASCAL OSStatus globalEventProcessor(EventHandlerCallRef, EventRef, void *); + static TQObject *queryAccessibleObject(TQAccessibleInterface *); +#endif +public: + 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, + + 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 + }; + + enum State { + Normal = 0x00000000, + Unavailable = 0x00000001, + Selected = 0x00000002, + Focused = 0x00000004, + Pressed = 0x00000008, + Checked = 0x00000010, + Mixed = 0x00000020, + ReadOnly = 0x00000040, + HotTracked = 0x00000080, + Default = 0x00000100, + Expanded = 0x00000200, + Collapsed = 0x00000400, + Busy = 0x00000800, + Floating = 0x00001000, + Marqueed = 0x00002000, + Animated = 0x00004000, + Invisible = 0x00008000, + Offscreen = 0x00010000, + Sizeable = 0x00020000, + Moveable = 0x00040000, + SelfVoicing = 0x00080000, + Focusable = 0x00100000, + Selectable = 0x00200000, + Linked = 0x00400000, + Traversed = 0x00800000, + MultiSelectable = 0x01000000, + ExtSelectable = 0x02000000, + AlertLow = 0x04000000, + AlertMedium = 0x08000000, + AlertHigh = 0x10000000, + Protected = 0x20000000, + Valid = 0x3fffffff + }; + + 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, + Character = 0x00000020, + List = 0x00000021, + ListItem = 0x00000022, + Outline = 0x00000023, + OutlineItem = 0x00000024, + PageTab = 0x00000025, + PropertyPage = 0x00000026, + Indicator = 0x00000027, + Graphic = 0x00000028, + StaticText = 0x00000029, + EditableText = 0x0000002A, // Editable, selectable, etc. + PushButton = 0x0000002B, + CheckBox = 0x0000002C, + RadioButton = 0x0000002D, + ComboBox = 0x0000002E, + DropLest = 0x0000002F, + ProgressBar = 0x00000030, + Dial = 0x00000031, + HotkeyField = 0x00000032, + Slider = 0x00000033, + SpinBox = 0x00000034, + Diagram = 0x00000035, + Animation = 0x00000036, + Equation = 0x00000037, + ButtonDropDown = 0x00000038, + ButtonMenu = 0x00000039, + ButtonDropGrid = 0x0000003A, + Whitespace = 0x0000003B, + PageTabList = 0x0000003C, + Clock = 0x0000003D + }; + + enum NavDirection { + NavUp = 0x00000001, + NavDown = 0x00000002, + NavLeft = 0x00000003, + NavRight = 0x00000004, + NavNext = 0x00000005, + NavPrevious = 0x00000006, + NavFirstChild = 0x00000007, + NavLastChild = 0x00000008, + NavFocusChild = 0x00000009 + }; + + enum Text { + Name = 0, + Description, + Value, + Help, + Accelerator, + DefaultAction + }; + + static TQRESULT queryAccessibleInterface( TQObject *, TQAccessibleInterface ** ); + static void updateAccessibility( TQObject *, int who, Event reason ); + static bool isActive(); + + static void initialize(); + static void cleanup(); +}; + +// {EC86CB9C-5DA0-4c43-A739-13EBDF1C6B14} +#define IID_QAccessible TQUuid( 0xec86cb9c, 0x5da0, 0x4c43, 0xa7, 0x39, 0x13, 0xeb, 0xdf, 0x1c, 0x6b, 0x14 ) + +struct Q_EXPORT TQAccessibleInterface : public TQAccessible, public TQUnknownInterface +{ + // check for valid pointers + virtual bool isValid() const = 0; + + // hierarchy + virtual int childCount() const = 0; + virtual TQRESULT queryChild( int control, TQAccessibleInterface** ) const = 0; + virtual TQRESULT queryParent( TQAccessibleInterface** ) const = 0; + + // navigation + virtual int controlAt( int x, int y ) const = 0; + virtual TQRect rect( int control ) const = 0; + virtual int navigate( NavDirection direction, int startControl ) const = 0; + + // properties and state + virtual TQString text( Text t, int control ) const = 0; + virtual void setText( Text t, int control, const TQString &text ) = 0; + virtual Role role( int control ) const = 0; + virtual State state( int control ) const = 0; + virtual TQMemArray<int> selection() const = 0; + + // methods + virtual bool doDefaultAction( int control ) = 0; + virtual bool setFocus( int control ) = 0; + virtual bool setSelected( int control, bool on, bool extend ) = 0; + virtual void clearSelection() = 0; +}; + +// {49F4C6A7-412F-41DE-9E24-648843421FD3} +#ifndef IID_QAccessibleFactory +#define IID_QAccessibleFactory TQUuid( 0x49f4c6a7, 0x412f, 0x41de, 0x9e, 0x24, 0x64, 0x88, 0x43, 0x42, 0x1f, 0xd3 ) +#endif + +struct Q_EXPORT TQAccessibleFactoryInterface : public TQAccessible, public TQFeatureListInterface +{ + virtual TQRESULT createAccessibleInterface( const TQString &, TQObject *, TQAccessibleInterface** ) = 0; +}; + +class Q_EXPORT TQAccessibleObject : public TQObject, public TQAccessibleInterface +{ +public: + TQAccessibleObject( TQObject *object ); + virtual ~TQAccessibleObject(); + + TQRESULT queryInterface( const TQUuid &, TQUnknownInterface** ); + Q_REFCOUNT + + bool isValid() const; + +protected: + TQObject *object() const; + +private: + TQGuardedPtr<TQObject> object_; +}; + +#define Q_DEFINED_QACCESSIBLE_OBJECT +#include "qwinexport.h" +#endif //QT_ACCESSIBILITY_SUPPORT + +#endif //TQACCESSIBLE_H |