+ // Let the framework handle the other cases.
+ return wxACC_NOT_IMPLEMENTED;
+}
+
+// Gets the parent, or NULL.
+wxAccStatus SplitterWindowAccessible::GetParent(wxAccessible** 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).
+wxAccStatus SplitterWindowAccessible::DoDefaultAction(int 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."
+wxAccStatus SplitterWindowAccessible::GetDefaultAction(int childId, wxString* actionName)
+{
+ wxSplitterWindow* splitter = wxDynamicCast(GetWindow(), wxSplitterWindow);
+ if (splitter && splitter->IsSplit() && childId == 2)
+ {
+ // No default action for the splitter.
+ return wxACC_FALSE;
+ }
+ // Let the framework handle the other cases.
+ return wxACC_NOT_IMPLEMENTED;
+}
+
+// Returns the description for this object or a child.
+wxAccStatus SplitterWindowAccessible::GetDescription(int childId, wxString* description)
+{
+ wxSplitterWindow* splitter = wxDynamicCast(GetWindow(), wxSplitterWindow);
+ if (splitter)
+ {
+ if (splitter->IsSplit())
+ {
+ if (childId == 2)
+ {
+ * description = _("The splitter window sash.");
+ return wxACC_OK;
+ }
+ }
+ }
+ // Let the framework handle the other cases.
+ return wxACC_NOT_IMPLEMENTED;
+}
+
+// Returns help text for this object or a child, similar to tooltip text.
+wxAccStatus SplitterWindowAccessible::GetHelpText(int childId, wxString* helpText)
+{
+ wxSplitterWindow* splitter = wxDynamicCast(GetWindow(), wxSplitterWindow);
+ if (splitter)
+ {
+ if (splitter->IsSplit())
+ {
+ if (childId == 2)
+ {
+ * helpText = _("The splitter window sash.");
+ return wxACC_OK;
+ }
+ }
+ }
+ // Let the framework handle the other cases.
+ return wxACC_NOT_IMPLEMENTED;
+}
+
+// Returns the keyboard shortcut for this object or child.
+// Return e.g. ALT+K
+wxAccStatus SplitterWindowAccessible::GetKeyboardShortcut(int childId, wxString* shortcut)
+{
+ wxSplitterWindow* splitter = wxDynamicCast(GetWindow(), wxSplitterWindow);
+ if (splitter && splitter->IsSplit() && childId == 2)
+ {
+ // No keyboard shortcut for the splitter.
+ return wxACC_FALSE;
+ }
+ // Let the framework handle the other cases.
+ return wxACC_NOT_IMPLEMENTED;
+}
+
+// Returns a role constant.
+wxAccStatus SplitterWindowAccessible::GetRole(int childId, wxAccRole* role)
+{
+ wxSplitterWindow* splitter = wxDynamicCast(GetWindow(), wxSplitterWindow);
+ if (splitter)
+ {
+ if (splitter->IsSplit())
+ {
+ if (childId == 2)
+ {
+ * role = wxROLE_SYSTEM_GRIP;
+ return wxACC_OK;
+ }
+ }
+ }
+ // Let the framework handle the other cases.
+ return wxACC_NOT_IMPLEMENTED;
+}
+
+// Returns a state constant.
+wxAccStatus SplitterWindowAccessible::GetState(int childId, long* state)
+{
+ wxSplitterWindow* splitter = wxDynamicCast(GetWindow(), wxSplitterWindow);
+ if (splitter && splitter->IsSplit() && childId == 2)
+ {
+ // No particular state. Not sure what would be appropriate here.
+ *state = wxACC_STATE_SYSTEM_UNAVAILABLE;
+ return wxACC_OK;
+ }
+ // Let the framework handle the other cases.
+ return wxACC_NOT_IMPLEMENTED;
+}
+
+// Returns a localized string representing the value for the object
+// or child.
+wxAccStatus SplitterWindowAccessible::GetValue(int childId, wxString* strValue)
+{
+ wxSplitterWindow* splitter = wxDynamicCast(GetWindow(), wxSplitterWindow);
+ if (splitter && splitter->IsSplit() && childId == 2)
+ {
+ // The sash position is the value.
+ wxString pos;
+ pos << splitter->GetSashPosition();
+ *strValue = pos;