]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/access.h
added interface headers with latest discussed changes
[wxWidgets.git] / interface / access.h
diff --git a/interface/access.h b/interface/access.h
new file mode 100644 (file)
index 0000000..d2aa61a
--- /dev/null
@@ -0,0 +1,210 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        access.h
+// Purpose:     documentation for wxAccessible class
+// Author:      wxWidgets team
+// RCS-ID:      $Id$
+// Licence:     wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+/**
+    @class wxAccessible
+    @wxheader{access.h}
+    
+    The wxAccessible class allows wxWidgets applications, and
+    wxWidgets itself, to return extended information about user interface elements
+    to client applications such as screen readers. This is the
+    main way in which wxWidgets implements accessibility features.
+    
+    At present, only Microsoft Active Accessibility is supported
+    by this class.
+    
+    To use this class, derive from wxAccessible, implement appropriate
+    functions, and associate an object of the class with a
+    window using wxWindow::SetAccessible.
+    
+    All functions return an indication of success, failure, or not implemented
+    using values of the wxAccStatus enum type.
+    
+    If you return wxACC_NOT_IMPLEMENTED from any function, the system will try to
+    implement the appropriate functionality. However this will not work with
+    all functions.
+    
+    Most functions work with an @e object id, which can be zero to refer to
+    'this' UI element, or greater than zero to refer to the nth child element.
+    This allows you to specify elements that don't have a corresponding wxWindow or
+    wxAccessible; for example, the sash of a splitter window.
+    
+    For details on the semantics of functions and types, please refer to the
+    Microsoft Active Accessibility 1.2 documentation.
+    
+    This class is compiled into wxWidgets only if the wxUSE_ACCESSIBILITY setup
+    symbol is set to 1.
+    
+    @library{wxcore}
+    @category{FIXME}
+*/
+class wxAccessible : public wxObject
+{
+public:
+    /**
+        Constructor, taking an optional window. The object can be associated with
+        a window later.
+    */
+    wxAccessible(wxWindow* win = @NULL);
+
+    /**
+        Destructor.
+    */
+    ~wxAccessible();
+
+    /**
+        Performs the default action for the object. @e childId is 0 (the action for
+        this object)
+        or greater than 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 specified child (starting from 1). If @e child is @NULL and the 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);
+
+    /**
+        Returns the number of children in @e childCount.
+    */
+    virtual wxAccStatus GetChildCount(int* childCount);
+
+    /**
+        Gets the default action for this object (0) or a child (greater than 0).
+        Return wxACC_OK even if there is no action. @e 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);
+
+    /**
+        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);
+
+    /**
+        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 the rectangle for this object (id is 0) or a child element (id is
+        greater than 0).
+        @e rect is in screen coordinates.
+    */
+    virtual wxAccStatus GetLocation(wxRect& rect, int elementId);
+
+    /**
+        Gets the name of the specified object.
+    */
+    virtual wxAccStatus GetName(int childId, wxString* name);
+
+    /**
+        Returns the parent of this object, or @NULL.
+    */
+    virtual wxAccStatus GetParent(wxAccessible** parent);
+
+    /**
+        Returns a role constant describing this object. See wxAccessible for a list
+        of these roles.
+    */
+    virtual wxAccStatus GetRole(int childId, wxAccRole* role);
+
+    /**
+        Gets a variant representing the selected children
+        of this object.
+        
+        Acceptable values are:
+        
+          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);
+
+    /**
+        Returns a state constant. See wxAccessible for a list
+        of these states.
+    */
+    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);
+
+    /**
+        Returns the window associated with this object.
+    */
+    wxWindow* GetWindow();
+
+    /**
+        Returns a status value and object id to indicate whether the given point was on
+        this or
+        a child object. Can return either a child object, or an integer
+        representing the child element, starting from 1.
+        
+        @e pt is in screen coordinates.
+    */
+    virtual wxAccStatus HitTest(const wxPoint& pt, int* childId,
+                                wxAccessible** childObject);
+
+    /**
+        Navigates from @e fromId to @e toId/@e toObject.
+    */
+    virtual wxAccStatus Navigate(wxNavDir navDir, int fromId,
+                                 int* toId,
+                                 wxAccessible** toObject);
+
+    /**
+        Allows the application to send an event when something changes in an accessible
+        object.
+    */
+    virtual static void NotifyEvent(int eventType, wxWindow* window,
+                                    wxAccObject objectType,
+                                    int objectType);
+
+    /**
+        Selects the object or child. See wxAccessible for a list
+        of the selection actions.
+    */
+    virtual wxAccStatus Select(int childId,
+                               wxAccSelectionFlags selectFlags);
+
+    /**
+        Sets the window associated with this object.
+    */
+    void SetWindow(wxWindow* window);
+};