Added accessibility headers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@19228 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
57b486583d
commit
45a959a33b
628
include/wx/access.h
Normal file
628
include/wx/access.h
Normal file
@ -0,0 +1,628 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/access.h
|
||||
// Purpose: Accessibility classes
|
||||
// Author: Julian Smart
|
||||
// Modified by:
|
||||
// Created: 2003-02-12
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) Julian Smart
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_ACCESSBASE_H_
|
||||
#define _WX_ACCESSBASE_H_
|
||||
|
||||
#if defined(__GNUG__) && !defined(__APPLE__)
|
||||
#pragma interface "accessbase.h"
|
||||
#endif
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// headers we have to include here
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#include "wx/variant.h"
|
||||
|
||||
typedef enum
|
||||
{
|
||||
wxACC_FAIL,
|
||||
wxACC_OK,
|
||||
wxACC_NOT_IMPLEMENTED,
|
||||
wxACC_NOT_SUPPORTED
|
||||
} wxAccStatus;
|
||||
|
||||
// Child ids are integer identifiers from 1 up.
|
||||
// So zero represents 'this' object.
|
||||
#define wxACC_SELF 0
|
||||
|
||||
// Navigation constants
|
||||
|
||||
typedef enum
|
||||
{
|
||||
wxNAVDIR_DOWN,
|
||||
// Navigate to the sibling object located below the starting object.
|
||||
|
||||
wxNAVDIR_FIRSTCHILD,
|
||||
// Navigate to the first child of this object. When using this flag,
|
||||
// the lVal member of the varStart parameter must be CHILDID_SELF.
|
||||
|
||||
wxNAVDIR_LASTCHILD,
|
||||
// Navigate to the last child of this object. When using this flag,
|
||||
// the lVal member of the varStart parameter must be CHILDID_SELF.
|
||||
|
||||
wxNAVDIR_LEFT,
|
||||
// Navigate to the sibling object located to the left of the starting object.
|
||||
|
||||
wxNAVDIR_NEXT,
|
||||
// Navigate to the next logical object, generally a sibling to the starting object.
|
||||
|
||||
wxNAVDIR_PREVIOUS,
|
||||
// Navigate to the previous logical object, generally a sibling to the starting object.
|
||||
|
||||
wxNAVDIR_RIGHT,
|
||||
// Navigate to the sibling object located to the right of the starting object.
|
||||
|
||||
wxNAVDIR_UP
|
||||
// Navigate to the sibling object located above the starting object.
|
||||
} wxNavDir;
|
||||
|
||||
// Role constants
|
||||
|
||||
typedef enum {
|
||||
wxROLE_NONE,
|
||||
// No assigned role.
|
||||
wxROLE_SYSTEM_ALERT,
|
||||
// The object represents an alert or a condition that a user should
|
||||
// be notified about. This role is used only for objects that embody
|
||||
// an alert but are not associated with another user interface element
|
||||
// such as a message box, graphic, text, or sound.
|
||||
wxROLE_SYSTEM_ANIMATION,
|
||||
// The object represents an animation control, which contains content
|
||||
// that changes over time, such as a control that displays a series of
|
||||
// bitmap frames, like a film strip. Animation controls are displayed
|
||||
// when files are copied, or when some other time-consuming task is performed.
|
||||
wxROLE_SYSTEM_APPLICATION,
|
||||
// The object represents a main window for an application.
|
||||
wxROLE_SYSTEM_BORDER,
|
||||
// The object represents a window border. The entire border is
|
||||
// represented by a single object, rather than by separate objects
|
||||
// for each side.
|
||||
wxROLE_SYSTEM_BUTTONDROPDOWN,
|
||||
// The object represents a button that drops down a list of items.
|
||||
wxROLE_SYSTEM_BUTTONDROPDOWNGRID,
|
||||
// The object represents a button that drops down a grid.
|
||||
wxROLE_SYSTEM_BUTTONMENU,
|
||||
// The object represents a button that drops down a menu.
|
||||
wxROLE_SYSTEM_CARET,
|
||||
// The object represents the system caret.
|
||||
wxROLE_SYSTEM_CELL,
|
||||
// The object represents a cell within a table.
|
||||
wxROLE_SYSTEM_CHARACTER,
|
||||
// The object represents a cartoon-like graphic object which is
|
||||
// displayed to provide help to users of an application.
|
||||
wxROLE_SYSTEM_CHART,
|
||||
// The object represents a graphical image used to represent data.
|
||||
wxROLE_SYSTEM_CHECKBUTTON,
|
||||
// The object represents a check box control, an option turned on
|
||||
// or off independently of other options.
|
||||
wxROLE_SYSTEM_CLIENT,
|
||||
// The object represents a window's client area.
|
||||
wxROLE_SYSTEM_CLOCK,
|
||||
// The object represents a control that displays time.
|
||||
wxROLE_SYSTEM_COLUMN,
|
||||
// The object represents a column of cells within a table.
|
||||
wxROLE_SYSTEM_COLUMNHEADER,
|
||||
// The object represents a column header, providing a visual label
|
||||
// for a column in a table.
|
||||
wxROLE_SYSTEM_COMBOBOX,
|
||||
// The object represents a combo box; an edit control with an
|
||||
// associated list box that provides a set of predefined choices.
|
||||
wxROLE_SYSTEM_CURSOR,
|
||||
// The object represents the system mouse pointer.
|
||||
wxROLE_SYSTEM_DIAGRAM,
|
||||
// The object represents a graphical image used to diagram data.
|
||||
wxROLE_SYSTEM_DIAL,
|
||||
// The object represents a dial or knob. This is also a read-only
|
||||
// object with like a speedometer.
|
||||
wxROLE_SYSTEM_DIALOG,
|
||||
// The object represents a dialog box or message box.
|
||||
wxROLE_SYSTEM_DOCUMENT,
|
||||
// The object represents a document window. A document window is
|
||||
// always contained within an application window. This role applies
|
||||
// only to multiple-document interface (MDI) windows and refers to
|
||||
// the object that contains the MDI title bar.
|
||||
wxROLE_SYSTEM_DROPLIST,
|
||||
// The object represents a drop-down list box. It shows one item and
|
||||
// allows the user to display and select another from a list of
|
||||
// alternative values.
|
||||
wxROLE_SYSTEM_EQUATION,
|
||||
// The object represents a mathematical equation.
|
||||
wxROLE_SYSTEM_GRAPHIC,
|
||||
// The object represents a picture.
|
||||
wxROLE_SYSTEM_GRIP,
|
||||
// The object represents a special mouse pointer, which allows a user
|
||||
// to manipulate user interface elements such as a window. For
|
||||
// example, a user clicks and drags a sizing grip in the lower-right
|
||||
// corner of a window to resize it.
|
||||
wxROLE_SYSTEM_GROUPING,
|
||||
// The object logically groups other objects. There is not always a
|
||||
// parent-child relationship between the grouping object and the
|
||||
// objects it contains.
|
||||
wxROLE_SYSTEM_HELPBALLOON,
|
||||
// The object displays help in the form of a ToolTip or help balloon.
|
||||
wxROLE_SYSTEM_HOTKEYFIELD,
|
||||
// The object represents a hot-key field that allows the user to
|
||||
// enter a combination or sequence of keystrokes.
|
||||
wxROLE_SYSTEM_INDICATOR,
|
||||
// The object represents an indicator such as a pointer graphic
|
||||
// that points to the current item.
|
||||
wxROLE_SYSTEM_LINK,
|
||||
// The object represents a link to something else. This object might
|
||||
// look like text or a graphic, but it acts like a button.
|
||||
wxROLE_SYSTEM_LIST,
|
||||
// The object represents a list box, allowing the user to select
|
||||
// one or more items.
|
||||
wxROLE_SYSTEM_LISTITEM,
|
||||
// The object represents an item in a list box or the list portion
|
||||
// of a combo box, drop-down list box, or drop-down combo box.
|
||||
wxROLE_SYSTEM_MENUBAR,
|
||||
// The object represents the menu bar, following (beneath) the title
|
||||
// bar of a window, from which menus are selected by the user.
|
||||
wxROLE_SYSTEM_MENUITEM,
|
||||
// The object represents a menu item, which is an entry in a menu
|
||||
// that a user can choose to carry out a command, select an option,
|
||||
// or display another menu. Functionally, a menu item is equivalent
|
||||
// to a push button, radio button, check box, or menu.
|
||||
wxROLE_SYSTEM_MENUPOPUP,
|
||||
// The object represents a menu, which presents a list of options
|
||||
// from which the user can make a selection to perform an action.
|
||||
// All menu types must have this role, including drop-down menus
|
||||
// that are displayed by selection from a menu bar, and shortcut
|
||||
// menus that are displayed when the right mouse button is clicked.
|
||||
wxROLE_SYSTEM_OUTLINE,
|
||||
// The object represents an outline or tree structure, such as a
|
||||
// tree view control, which displays a hierarchical list and allows
|
||||
// the user to expand and collapse branches.
|
||||
wxROLE_SYSTEM_OUTLINEITEM,
|
||||
// The object represents an item in an outline or tree structure.
|
||||
wxROLE_SYSTEM_PAGETAB,
|
||||
// The object represents a page tab. The only child of a page tab
|
||||
// control is a wxROLE_SYSTEM_GROUPING object that contains the
|
||||
// contents of the associated page.
|
||||
wxROLE_SYSTEM_PAGETABLIST,
|
||||
// The object represents a container of page tab controls.
|
||||
wxROLE_SYSTEM_PANE,
|
||||
// The object represents a pane within a frame or document window.
|
||||
// Users can navigate between panes and within the contents of the
|
||||
// current pane, but cannot navigate between items in different panes.
|
||||
// Thus, panes represent a level of grouping lower than frame windows
|
||||
// or documents, but above individual controls. The user navigates
|
||||
// between panes by pressing TAB, F6, or CTRL+TAB, depending on
|
||||
// the context.
|
||||
wxROLE_SYSTEM_PROGRESSBAR,
|
||||
// The object represents a progress bar, dynamically showing the user
|
||||
// the percent complete of an operation in progress. This control takes no user input.
|
||||
wxROLE_SYSTEM_PROPERTYPAGE,
|
||||
// The object represents a property sheet.
|
||||
wxROLE_SYSTEM_PUSHBUTTON,
|
||||
// The object represents a push button control.
|
||||
wxROLE_SYSTEM_RADIOBUTTON,
|
||||
// The object represents an option button, also called a radio button.
|
||||
// It is one of a group of mutually exclusive options. All objects
|
||||
// sharing a single parent that have this attribute are assumed to
|
||||
// be part of single mutually exclusive group. Use
|
||||
// wxROLE_SYSTEM_GROUPING objects to divide them into separate groups.
|
||||
wxROLE_SYSTEM_ROW,
|
||||
// The object represents a row of cells within a table.
|
||||
wxROLE_SYSTEM_ROWHEADER,
|
||||
// The object represents a row header, that provides a visual label
|
||||
// for a table row.
|
||||
wxROLE_SYSTEM_SCROLLBAR,
|
||||
// The object represents a vertical or horizontal scroll bar, which
|
||||
// is part of the client area or used in a control.
|
||||
wxROLE_SYSTEM_SEPARATOR,
|
||||
// The object is used to visually divide a space into two regions,
|
||||
// such as a separator menu item or a bar that divides split panes
|
||||
// within a window.
|
||||
wxROLE_SYSTEM_SLIDER,
|
||||
// The object represents a slider, which allows the user to adjust
|
||||
// a setting in given increments between minimum and maximum values.
|
||||
wxROLE_SYSTEM_SOUND,
|
||||
// The object represents a system sound, which is associated with
|
||||
// various system events.
|
||||
wxROLE_SYSTEM_SPINBUTTON,
|
||||
// The object represents a spin box, which is a control that allows
|
||||
// the user to increment or decrement the value displayed in a
|
||||
// separate "buddy" control associated with the spin box.
|
||||
wxROLE_SYSTEM_STATICTEXT,
|
||||
// The object represents read-only text such as labels for other
|
||||
// controls or instructions in a dialog box. Static text cannot be
|
||||
// modified or selected.
|
||||
wxROLE_SYSTEM_STATUSBAR,
|
||||
// The object represents a status bar, which is an area at the
|
||||
// bottom of a window that displays information about the current
|
||||
// operation, state of the application, or selected object. The
|
||||
// status bar has multiple fields, which display different kinds
|
||||
// of information.
|
||||
wxROLE_SYSTEM_TABLE,
|
||||
// The object represents a table that contains rows and columns of
|
||||
// cells, and optionally, row headers and column headers.
|
||||
wxROLE_SYSTEM_TEXT,
|
||||
// The object represents selectable text that allows edits or is read-only.
|
||||
wxROLE_SYSTEM_TITLEBAR,
|
||||
// The object represents a title or caption bar for a window.
|
||||
wxROLE_SYSTEM_TOOLBAR,
|
||||
// The object represents a toolbar, which is a grouping of controls
|
||||
// that provide easy access to frequently used features.
|
||||
wxROLE_SYSTEM_TOOLTIP,
|
||||
// The object represents a ToolTip that provides helpful hints.
|
||||
wxROLE_SYSTEM_WHITESPACE,
|
||||
// The object represents blank space between other objects.
|
||||
wxROLE_SYSTEM_WINDOW
|
||||
// The object represents the window frame, which contains child objects
|
||||
// such as a title bar, client, and other objects contained in a window.
|
||||
} wxAccRole;
|
||||
|
||||
// Accessible states
|
||||
|
||||
#define wxACC_STATE_SYSTEM_ALERT_HIGH 0x0000001
|
||||
/*
|
||||
Indicates important information to convey to the user
|
||||
immediately. For example, a battery level indicator that
|
||||
reaches a critical low level transitions to this state,
|
||||
in which case a blind access utility announces this
|
||||
information immediately to the user, and a screen
|
||||
magnification program scrolls the screen so the battery
|
||||
indicator is in view. This state is also appropriate for
|
||||
any prompt or operation that must be completed before
|
||||
the user can continue.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_ALERT_MEDIUM 0x00000002
|
||||
/*
|
||||
Indicates important information that is not conveyed to
|
||||
the user immediately. For example, when a battery level
|
||||
indicator is starting to reach a low level, it generates
|
||||
a medium-level alert. Blind access utilities then
|
||||
generate a sound to let the user know that important
|
||||
information is available, without actually interrupting
|
||||
the user's work. The user could then query the alert
|
||||
information at his or her leisure.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_ALERT_LOW 0x00000004
|
||||
/*
|
||||
Indicates low-priority information that is not important
|
||||
to the user. This state is used, for example, when Word
|
||||
changes the appearance of the TipWizard button on its
|
||||
toolbar to indicate that it has a hint for the user.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_ANIMATED 0x00000008
|
||||
/*
|
||||
The object's appearance changes rapidly or constantly.
|
||||
Graphics that are occasionally animated are described as
|
||||
wxROLE_SYSTEM_GRAPHIC with the State property set to
|
||||
This state is be used to indicate
|
||||
that the object's location is changing.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_BUSY 0x00000010
|
||||
/*
|
||||
The control cannot accept input at this time.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_CHECKED 0x00000020
|
||||
/*
|
||||
The object's check box is selected.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_COLLAPSED 0x00000040
|
||||
/*
|
||||
Children of this object that have the
|
||||
ROLE_SYSTEM_OUTLINEITEM role are hidden.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_DEFAULT 0x00000080
|
||||
/*
|
||||
The default button or menu item.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_EXPANDED 0x00000100
|
||||
/*
|
||||
Children of this object that have the
|
||||
ROLE_SYSTEM_OUTLINEITEM role are displayed.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_EXTSELECTABLE 0x00000200
|
||||
/*
|
||||
Indicates that an object extends its selection using
|
||||
SELFLAG_EXTENDSELECTION in the IAccessible::accSelect
|
||||
method.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_FLOATING 0x00000400
|
||||
/*
|
||||
The object is not clipped to the boundary of its parent
|
||||
object and does not move automatically when the parent
|
||||
moves.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_FOCUSABLE 0x00000800
|
||||
/*
|
||||
The object is on the active window and ready to receive
|
||||
keyboard focus.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_FOCUSED 0x00001000
|
||||
/*
|
||||
The object has the keyboard focus. Do not confuse object
|
||||
focus with object selection. For more information, see
|
||||
Selection and Focus Properties and Methods.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_HOTTRACKED 0x00002000
|
||||
/*
|
||||
The object is hot-tracked by the mouse, meaning that its
|
||||
appearance has changed to indicate that the mouse
|
||||
pointer is located over it.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_INVISIBLE 0x00004000
|
||||
/*
|
||||
Object is hidden or not visible. A list of files names
|
||||
in a list box contain several hundred names, but only a
|
||||
few are visible to the user. The rest are clipped by the
|
||||
parent and have wxACC_STATE_SYSTEM_INVISIBLE set. Objects that
|
||||
are never visible are set as wxACC_STATE_SYSTEM_OFFSCREEN.
|
||||
Note that an object is considered visible when the
|
||||
wxACC_STATE_SYSTEM_INVISIBLE flag is not set, and yet obscured
|
||||
by another application, so is not visible to the user.
|
||||
For example, an object is considered visible if it
|
||||
appears in the main window of an application even though
|
||||
it is obscured by a dialog.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_MARQUEED 0x00008000
|
||||
/*
|
||||
Indicates scrolling or moving text or graphics.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_MIXED 0x00010000
|
||||
/*
|
||||
Indicates that the state of a three-state check box or
|
||||
toolbar button is not determined. The check box is
|
||||
neither checked nor unchecked and is therefore in the
|
||||
third or mixed state.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_MULTISELECTABLE 0x00020000
|
||||
/*
|
||||
Object accepts multiple selected items,
|
||||
SELFLAG_ADDSELECTION for the IAccessible::accSelect
|
||||
method is valid.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_OFFSCREEN 0x00040000
|
||||
/*
|
||||
Indicates that the object has no on-screen
|
||||
representation. A sound or alert object has this state,
|
||||
or a hidden window that is never made visible.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_PRESSED 0x00080000
|
||||
/*
|
||||
The object is pressed.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_PROTECTED 0x00100000
|
||||
/*
|
||||
The object is a password-protected edit control.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_READONLY 0x00200000
|
||||
/*
|
||||
The object is read-only.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_SELECTABLE 0x00400000
|
||||
/*
|
||||
The object accepts selection.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_SELECTED 0x00800000
|
||||
/*
|
||||
The object is selected.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_SELFVOICING 0x01000000
|
||||
/*
|
||||
The object or child uses text-to-speech (TTS) for
|
||||
description purposes. A speech-based accessibility aid
|
||||
does not announce information when an object with this
|
||||
state has the focus because the object automatically
|
||||
announces information.
|
||||
*/
|
||||
|
||||
#define wxACC_STATE_SYSTEM_UNAVAILABLE 0x02000000
|
||||
/*
|
||||
The object is unavailable.
|
||||
*/
|
||||
|
||||
// Selection flag
|
||||
|
||||
typedef enum
|
||||
{
|
||||
wxACC_SEL_NONE = 0,
|
||||
wxACC_SEL_TAKEFOCUS = 1,
|
||||
wxACC_SEL_TAKESELECTION = 2,
|
||||
wxACC_SEL_EXTENDSELECTION = 4,
|
||||
wxACC_SEL_ADDSELECTION = 8,
|
||||
wxACC_SEL_REMOVESELECTION = 16
|
||||
} wxAccSelectionFlags;
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxAccessible
|
||||
// All functions return an indication of success, failure, or not implemented.
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class WXDLLEXPORT wxAccessible;
|
||||
class WXDLLEXPORT wxAccessibleBase : public wxObject
|
||||
{
|
||||
DECLARE_NO_COPY_CLASS(wxAccessibleBase)
|
||||
|
||||
public:
|
||||
wxAccessibleBase(wxWindow* win): m_window(win) {};
|
||||
virtual ~wxAccessibleBase() {};
|
||||
|
||||
// Overridables
|
||||
|
||||
// Can return either a child object, or an integer
|
||||
// representing the child element, starting from 1.
|
||||
virtual wxAccStatus HitTest(const wxPoint& WXUNUSED(pt), int* WXUNUSED(childId), wxAccessible** WXUNUSED(childObject))
|
||||
{ return wxACC_NOT_IMPLEMENTED; }
|
||||
|
||||
// Returns the rectangle for this object (id = 0) or a child element (id > 0).
|
||||
virtual wxAccStatus GetLocation(wxRect& WXUNUSED(rect), int WXUNUSED(elementId))
|
||||
{ return wxACC_NOT_IMPLEMENTED; }
|
||||
|
||||
// Navigates from fromId to toId/toObject.
|
||||
virtual wxAccStatus Navigate(wxNavDir WXUNUSED(navDir), int WXUNUSED(fromId),
|
||||
int* WXUNUSED(toId), wxAccessible** WXUNUSED(toObject))
|
||||
{ return wxACC_NOT_IMPLEMENTED; }
|
||||
|
||||
// Gets the name of the specified object.
|
||||
virtual wxAccStatus GetName(int WXUNUSED(childId), wxString* WXUNUSED(name))
|
||||
{ return wxACC_NOT_IMPLEMENTED; }
|
||||
|
||||
// Gets the number of children.
|
||||
virtual wxAccStatus GetChildCount(int* WXUNUSED(childId))
|
||||
{ return wxACC_NOT_IMPLEMENTED; }
|
||||
|
||||
// Gets the specified child (starting from 1).
|
||||
// If *child is NULL and return value is wxACC_OK,
|
||||
// this means that the child is a simple element and
|
||||
// not an accessible object.
|
||||
virtual wxAccStatus GetChild(int WXUNUSED(childId), wxAccessible** WXUNUSED(child))
|
||||
{ return wxACC_NOT_IMPLEMENTED; }
|
||||
|
||||
// Gets the parent, or NULL.
|
||||
virtual wxAccStatus GetParent(wxAccessible** WXUNUSED(parent))
|
||||
{ return wxACC_NOT_IMPLEMENTED; }
|
||||
|
||||
// Performs the default action. childId is 0 (the action for this object)
|
||||
// or > 0 (the action for a child).
|
||||
// Return wxACC_NOT_SUPPORTED if there is no default action for this
|
||||
// window (e.g. an edit control).
|
||||
virtual wxAccStatus DoDefaultAction(int WXUNUSED(childId))
|
||||
{ return wxACC_NOT_IMPLEMENTED; }
|
||||
|
||||
// Gets the default action for this object (0) or > 0 (the action for a child).
|
||||
// Return wxACC_OK even if there is no action. actionName is the action, or the empty
|
||||
// string if there is no action.
|
||||
// The retrieved string describes the action that is performed on an object,
|
||||
// not what the object does as a result. For example, a toolbar button that prints
|
||||
// a document has a default action of "Press" rather than "Prints the current document."
|
||||
virtual wxAccStatus GetDefaultAction(int WXUNUSED(childId), wxString* WXUNUSED(actionName))
|
||||
{ return wxACC_NOT_IMPLEMENTED; }
|
||||
|
||||
// Returns the description for this object or a child.
|
||||
virtual wxAccStatus GetDescription(int WXUNUSED(childId), wxString* WXUNUSED(description))
|
||||
{ return wxACC_NOT_IMPLEMENTED; }
|
||||
|
||||
// Returns help text for this object or a child, similar to tooltip text.
|
||||
virtual wxAccStatus GetHelpText(int WXUNUSED(childId), wxString* WXUNUSED(helpText))
|
||||
{ return wxACC_NOT_IMPLEMENTED; }
|
||||
|
||||
// Returns the keyboard shortcut for this object or child.
|
||||
// Return e.g. ALT+K
|
||||
virtual wxAccStatus GetKeyboardShortcut(int WXUNUSED(childId), wxString* WXUNUSED(shortcut))
|
||||
{ return wxACC_NOT_IMPLEMENTED; }
|
||||
|
||||
// Returns a role constant.
|
||||
virtual wxAccStatus GetRole(int WXUNUSED(childId), wxAccRole* WXUNUSED(role))
|
||||
{ return wxACC_NOT_IMPLEMENTED; }
|
||||
|
||||
// Returns a state constant.
|
||||
virtual wxAccStatus GetState(int WXUNUSED(childId), long* WXUNUSED(state))
|
||||
{ return wxACC_NOT_IMPLEMENTED; }
|
||||
|
||||
// Returns a localized string representing the value for the object
|
||||
// or child.
|
||||
virtual wxAccStatus GetValue(int WXUNUSED(childId), wxString* WXUNUSED(strValue))
|
||||
{ return wxACC_NOT_IMPLEMENTED; }
|
||||
|
||||
// Selects the object or child.
|
||||
virtual wxAccStatus Select(int WXUNUSED(childId), wxAccSelectionFlags WXUNUSED(selectFlags))
|
||||
{ return wxACC_NOT_IMPLEMENTED; }
|
||||
|
||||
// Gets the window with the keyboard focus.
|
||||
// If childId is 0 and child is NULL, no object in
|
||||
// this subhierarchy has the focus.
|
||||
// If this object has the focus, child should be 'this'.
|
||||
virtual wxAccStatus GetFocus(int* WXUNUSED(childId), wxAccessible** WXUNUSED(child))
|
||||
{ return wxACC_NOT_IMPLEMENTED; }
|
||||
|
||||
// Gets a variant representing the selected children
|
||||
// of this object.
|
||||
// Acceptable values:
|
||||
// - a null variant (IsNull() returns TRUE)
|
||||
// - a list variant (GetType() == wxT("list"))
|
||||
// - an integer representing the selected child element,
|
||||
// or 0 if this object is selected (GetType() == wxT("long"))
|
||||
// - a "void*" pointer to a wxAccessible child object
|
||||
virtual wxAccStatus GetSelections(wxVariant* WXUNUSED(selections))
|
||||
{ return wxACC_NOT_IMPLEMENTED; }
|
||||
|
||||
// Accessors
|
||||
|
||||
// Returns the window associated with this object.
|
||||
|
||||
wxWindow* GetWindow() { return m_window; }
|
||||
|
||||
// Sets the window associated with this object.
|
||||
|
||||
void SetWindow(wxWindow* window) { m_window = window; }
|
||||
|
||||
private:
|
||||
|
||||
// Data members
|
||||
|
||||
wxWindow* m_window;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
|
||||
NOTES
|
||||
Possibly have ways to access other accessible objects.
|
||||
What if they're not explicitly implemented? Should be able to use
|
||||
the accessible API to retrieve info about them. Probably
|
||||
should use a quite different client API, to be able to
|
||||
retrieve info from other apps too.
|
||||
But try to avoid implementing this unless absolutely necessary.
|
||||
|
||||
*/
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// now include the declaration of the real class
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#if defined(__WXMSW__)
|
||||
#include "wx/msw/ole/access.h"
|
||||
#elif defined(__WXMOTIF__)
|
||||
#include "wx/generic/access.h"
|
||||
#elif defined(__WXMGL__)
|
||||
#include "wx/generic/access.h"
|
||||
#elif defined(__WXGTK__)
|
||||
#include "wx/generic/access.h"
|
||||
#elif defined(__WXX11__)
|
||||
#include "wx/generic/access.h"
|
||||
#elif defined(__WXMAC__)
|
||||
#include "wx/generic/access.h"
|
||||
#elif defined(__WXPM__)
|
||||
#include "wx/generic/access.h"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
// _WX_ACCESSBASE_H_
|
||||
|
66
include/wx/msw/ole/access.h
Normal file
66
include/wx/msw/ole/access.h
Normal file
@ -0,0 +1,66 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Name: ole/access.h
|
||||
// Purpose: declaration of the wxAccessible class
|
||||
// Author: Julian Smart
|
||||
// Modified by:
|
||||
// Created: 2003-02-12
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) 2003 Julian Smart
|
||||
// Licence: wxWindows licence
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_ACCESS_H_
|
||||
#define _WX_ACCESS_H_
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface
|
||||
#endif
|
||||
|
||||
#if !wxUSE_ACCESSIBILITY
|
||||
#error "You should #define wxUSE_ACCESSIBILITY to 1 to compile this file!"
|
||||
#endif //wxUSE_ACCESSIBILITY
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// forward declarations
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class wxIAccessible;
|
||||
class WXDLLEXPORT wxWindow;
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// macros
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxAccessible implements accessibility behaviour.
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class WXDLLEXPORT wxAccessible : public wxAccessibleBase
|
||||
{
|
||||
public:
|
||||
wxAccessible(wxWindow *win = NULL);
|
||||
virtual ~wxAccessible();
|
||||
|
||||
// Overridables
|
||||
|
||||
// Accessors
|
||||
|
||||
// Returns the wxIAccessible pointer
|
||||
wxIAccessible* GetIAccessible() { return m_pIAccessible; }
|
||||
|
||||
// Returns the IAccessible standard interface pointer
|
||||
void* GetIAccessibleStd() ;
|
||||
|
||||
protected:
|
||||
void Init();
|
||||
|
||||
private:
|
||||
wxIAccessible * m_pIAccessible; // the pointer to COM interface
|
||||
void* m_pIAccessibleStd; // the pointer to the standard COM interface,
|
||||
// for default processing
|
||||
|
||||
DECLARE_NO_COPY_CLASS(wxAccessible)
|
||||
};
|
||||
|
||||
#endif //_WX_ACCESS_H_
|
||||
|
@ -167,5 +167,44 @@ void wxLogRelease(const wxChar *szInterface, ULONG cRef);
|
||||
#define wxLogRelease(szInterface, cRef)
|
||||
#endif //WXDEBUG
|
||||
|
||||
// wrapper around BSTR type (by Vadim Zeitlin)
|
||||
|
||||
class WXDLLEXPORT wxBasicString
|
||||
{
|
||||
public:
|
||||
// ctors & dtor
|
||||
wxBasicString(const char *sz);
|
||||
wxBasicString(const wxString& str);
|
||||
~wxBasicString();
|
||||
|
||||
void Init(const char* sz);
|
||||
|
||||
// accessors
|
||||
// just get the string
|
||||
operator BSTR() const { return m_wzBuf; }
|
||||
// retrieve a copy of our string - caller must SysFreeString() it later!
|
||||
BSTR Get() const { return SysAllocString(m_wzBuf); }
|
||||
|
||||
private:
|
||||
// @@@ not implemented (but should be)
|
||||
wxBasicString(const wxBasicString&);
|
||||
wxBasicString& operator=(const wxBasicString&);
|
||||
|
||||
OLECHAR *m_wzBuf; // actual string
|
||||
};
|
||||
|
||||
// Convert variants
|
||||
class WXDLLEXPORT wxVariant;
|
||||
|
||||
bool wxConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) ;
|
||||
bool wxConvertOleToVariant(const VARIANTARG& oleVariant, wxVariant& variant) ;
|
||||
|
||||
// Convert string to Unicode
|
||||
BSTR wxConvertStringToOle(const wxString& str);
|
||||
|
||||
// Convert string from BSTR to wxString
|
||||
wxString wxConvertStringFromOle(BSTR bStr);
|
||||
|
||||
|
||||
#endif //_WX_OLEUTILS_H
|
||||
|
||||
|
@ -813,6 +813,14 @@
|
||||
// Recommended setting: 1
|
||||
#define wxUSE_DRAG_AND_DROP 1
|
||||
|
||||
// Use wxAccessible for enhanced and customisable accessibility.
|
||||
// Depends on wxUSE_OLE.
|
||||
//
|
||||
// Default is 0.
|
||||
//
|
||||
// Recommended setting (at present): 0
|
||||
#define wxUSE_ACCESSIBILITY 0
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// miscellaneous settings
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@ -40,6 +40,10 @@
|
||||
#include "wx/accel.h"
|
||||
#endif // wxUSE_ACCEL
|
||||
|
||||
#if wxUSE_ACCESSIBILITY
|
||||
#include "wx/access.h"
|
||||
#endif
|
||||
|
||||
// when building wxUniv/Foo we don't want the code for native menu use to be
|
||||
// compiled in - it should only be used when building real wxFoo
|
||||
#ifdef __WXUNIVERSAL__
|
||||
@ -65,6 +69,10 @@ class WXDLLEXPORT wxToolTip;
|
||||
class WXDLLEXPORT wxWindowBase;
|
||||
class WXDLLEXPORT wxWindow;
|
||||
|
||||
#if wxUSE_ACCESSIBILITY
|
||||
class WXDLLEXPORT wxAccessible;
|
||||
#endif
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// (pseudo)template list classes
|
||||
// ----------------------------------------------------------------------------
|
||||
@ -818,6 +826,22 @@ public:
|
||||
void SetContainingSizer(wxSizer* sizer) { m_containingSizer = sizer; }
|
||||
wxSizer *GetContainingSizer() const { return m_containingSizer; }
|
||||
|
||||
// accessibility
|
||||
// ----------------------
|
||||
#if wxUSE_ACCESSIBILITY
|
||||
// Override to create a specific accessible object.
|
||||
virtual wxAccessible* CreateAccessible();
|
||||
|
||||
// Sets the accessible object.
|
||||
void SetAccessible(wxAccessible* accessible) ;
|
||||
|
||||
// Returns the accessible object.
|
||||
wxAccessible* GetAccessible() { return m_accessible; };
|
||||
|
||||
// Returns the accessible object, creating if necessary.
|
||||
wxAccessible* GetOrCreateAccessible() ;
|
||||
#endif
|
||||
|
||||
// backward compatibility
|
||||
// ----------------------
|
||||
#if WXWIN_COMPATIBILITY
|
||||
@ -958,6 +982,9 @@ protected:
|
||||
bool m_hasCustomPalette;
|
||||
#endif // wxUSE_PALETTE
|
||||
|
||||
#if wxUSE_ACCESSIBILITY
|
||||
wxAccessible* m_accessible;
|
||||
#endif
|
||||
// Virtual size (scrolling)
|
||||
wxSize m_virtualSize;
|
||||
|
||||
@ -1175,6 +1202,102 @@ WXDLLEXPORT wxWindow* wxGetTopLevelParent(wxWindow *win);
|
||||
// deprecated (doesn't start with 'wx' prefix), use wxWindow::NewControlId()
|
||||
inline int NewControlId() { return wxWindowBase::NewControlId(); }
|
||||
|
||||
#if wxUSE_ACCESSIBILITY
|
||||
// ----------------------------------------------------------------------------
|
||||
// accessible object for windows
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class WXDLLEXPORT wxWindowAccessible: public wxAccessible
|
||||
{
|
||||
public:
|
||||
wxWindowAccessible(wxWindow* win): wxAccessible(win) {}
|
||||
virtual ~wxWindowAccessible() {};
|
||||
|
||||
// Overridables
|
||||
|
||||
// Can return either a child object, or an integer
|
||||
// representing the child element, starting from 1.
|
||||
virtual wxAccStatus HitTest(const wxPoint& pt, int* childId, wxAccessible** childObject);
|
||||
|
||||
// Returns the rectangle for this object (id = 0) or a child element (id > 0).
|
||||
virtual wxAccStatus GetLocation(wxRect& rect, int elementId);
|
||||
|
||||
// Navigates from fromId to toId/toObject.
|
||||
virtual wxAccStatus Navigate(wxNavDir navDir, int fromId,
|
||||
int* toId, wxAccessible** toObject);
|
||||
|
||||
// Gets the name of the specified object.
|
||||
virtual wxAccStatus GetName(int childId, wxString* name);
|
||||
|
||||
// Gets the number of children.
|
||||
virtual wxAccStatus GetChildCount(int* childId);
|
||||
|
||||
// Gets the specified child (starting from 1).
|
||||
// If *child is NULL and return value is wxACC_OK,
|
||||
// this means that the child is a simple element and
|
||||
// not an accessible object.
|
||||
virtual wxAccStatus GetChild(int childId, wxAccessible** child);
|
||||
|
||||
// Gets the parent, or NULL.
|
||||
virtual wxAccStatus GetParent(wxAccessible** parent);
|
||||
|
||||
// Performs the default action. childId is 0 (the action for this object)
|
||||
// or > 0 (the action for a child).
|
||||
// Return wxACC_NOT_SUPPORTED if there is no default action for this
|
||||
// window (e.g. an edit control).
|
||||
virtual wxAccStatus DoDefaultAction(int childId);
|
||||
|
||||
// Gets the default action for this object (0) or > 0 (the action for a child).
|
||||
// Return wxACC_OK even if there is no action. actionName is the action, or the empty
|
||||
// string if there is no action.
|
||||
// The retrieved string describes the action that is performed on an object,
|
||||
// not what the object does as a result. For example, a toolbar button that prints
|
||||
// a document has a default action of "Press" rather than "Prints the current document."
|
||||
virtual wxAccStatus GetDefaultAction(int childId, wxString* actionName);
|
||||
|
||||
// Returns the description for this object or a child.
|
||||
virtual wxAccStatus GetDescription(int childId, wxString* description);
|
||||
|
||||
// Returns help text for this object or a child, similar to tooltip text.
|
||||
virtual wxAccStatus GetHelpText(int childId, wxString* helpText);
|
||||
|
||||
// Returns the keyboard shortcut for this object or child.
|
||||
// Return e.g. ALT+K
|
||||
virtual wxAccStatus GetKeyboardShortcut(int childId, wxString* shortcut);
|
||||
|
||||
// Returns a role constant.
|
||||
virtual wxAccStatus GetRole(int childId, wxAccRole* role);
|
||||
|
||||
// Returns a state constant.
|
||||
virtual wxAccStatus GetState(int childId, long* state);
|
||||
|
||||
// Returns a localized string representing the value for the object
|
||||
// or child.
|
||||
virtual wxAccStatus GetValue(int childId, wxString* strValue);
|
||||
|
||||
// Selects the object or child.
|
||||
virtual wxAccStatus Select(int childId, wxAccSelectionFlags selectFlags);
|
||||
|
||||
// Gets the window with the keyboard focus.
|
||||
// If childId is 0 and child is NULL, no object in
|
||||
// this subhierarchy has the focus.
|
||||
// If this object has the focus, child should be 'this'.
|
||||
virtual wxAccStatus GetFocus(int* childId, wxAccessible** child);
|
||||
|
||||
// Gets a variant representing the selected children
|
||||
// of this object.
|
||||
// Acceptable values:
|
||||
// - a null variant (IsNull() returns TRUE)
|
||||
// - a list variant (GetType() == wxT("list")
|
||||
// - an integer representing the selected child element,
|
||||
// or 0 if this object is selected (GetType() == wxT("long")
|
||||
// - a "void*" pointer to a wxAccessible child object
|
||||
virtual wxAccStatus GetSelections(wxVariant* selections);
|
||||
};
|
||||
|
||||
#endif // wxUSE_ACCESSIBILITY
|
||||
|
||||
|
||||
#endif
|
||||
// _WX_WINDOW_H_BASE_
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user