summaryrefslogtreecommitdiffstats
path: root/other-licenses/ia2/AccessibleTextSelectionContainer.idl
diff options
context:
space:
mode:
Diffstat (limited to 'other-licenses/ia2/AccessibleTextSelectionContainer.idl')
-rw-r--r--other-licenses/ia2/AccessibleTextSelectionContainer.idl139
1 files changed, 139 insertions, 0 deletions
diff --git a/other-licenses/ia2/AccessibleTextSelectionContainer.idl b/other-licenses/ia2/AccessibleTextSelectionContainer.idl
new file mode 100644
index 0000000000..2f27c34d3f
--- /dev/null
+++ b/other-licenses/ia2/AccessibleTextSelectionContainer.idl
@@ -0,0 +1,139 @@
+/*************************************************************************
+ *
+ * File Name (accessibleTextSelectionContainer.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2022 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+import "AccessibleText.idl";
+
+/**
+ This structure represents a single text selection within an accessibility
+ subtree. This could be within a document, or the subtree of a document. This
+ selection is defined by two points in the content, where each one is defined by
+ an accessible object supporting the IAccessibleTextInterface and an
+ IAccessibleText character offset relative to it.
+
+ The end object must appear after the start object in the accessibility tree,
+ i.e. the end object must be reachable from the start object by navigating
+ forward (next, first child etc).
+
+ This struct also contains a `startIsActive` boolean, to communicate if the
+ start of the selection is the active point or not.
+
+ The active point corresponds to the user's focus or point of interest. The user
+ moves the active point to expand or collapse the range. The anchor point is
+ the other point of the range and typically remains constant. In most cases,
+ anchor is the start of the range and active is the end. However, when selecting
+ backwards (e.g. pressing shift+left arrow in a text field), the start of the
+ range is the active point, as the user moves this to manipulate the selection.
+ */
+typedef struct IA2TextSelection {
+ IAccessibleText* startObj;
+ long startOffset;
+ IAccessibleText* endObj;
+ long endOffset;
+ boolean startIsActive;
+} IA2TextSelection;
+
+/**
+ @brief an interface to get and set text selections in a document.
+ this interface can be supported on any object that also supports the
+ IAccessibleText and/or IAccessibleHypertext interfaces. This could be a
+ document, any subtree of a document, or a text input control.
+*/
+[object, uuid(2118B599-733F-43D0-A569-0B31D125ED9A)]
+interface IAccessibleTextSelectionContainer : IUnknown
+{
+ /**
+ @brief Returns an array of selections within this subtree.
+ @param [out] selections
+ The array of selections, allocated by the server. The client must free it
+ with CoTaskMemFree. The selections returned will be cropped to fit entirely
+ within this subtree, i.e. to only reference descendant objects, even if the
+ physical selection may reach outside of this subtree. In the case where the
+ physical selection is entirely outside the subtree, an empty array will be
+ returned.
+ @param [out] nSelections
+ the array length
+ @retval S_OK
+ @retval S_FALSE returned if there are no selections within this subtree, or
+ the physical selection is entirely outside of this subtree.
+ */
+ [propget] HRESULT selections
+ (
+ [out, size_is(,*nSelections)] IA2TextSelection **selections,
+ [out, retval] long *nSelections
+ );
+
+ /**
+ @brief makes 1 or more selections within this subtree denoted by the given
+ array of IA2TextSelections.
+ Any existing physical selection (inside or outside this subtree) is replaced
+ by the new selections. All objects within the given selection ranges must be
+ descendants of this subtree, otherwise E_INVALIDARG will be returned.
+ @param [in] nSelections
+ The length of the array containing the selection ranges.
+ @param [in] selections
+ The array of selection ranges.
+ @retval S_OK Returned if the selections were made successfully.
+ @retval S_FALSE Returned if the selections could not be made.
+ @retval E_INVALIDARG Returned if any of the input arguments are invalid, or
+ any of the objects in the given ranges are outside of this subtree.
+ */
+ HRESULT setSelections
+ (
+ [in] long nSelections,
+ [in, size_is(nSelections)] IA2TextSelection* selections
+ );
+
+}