From ed5640d8b587fbcfed7dd7967f3de04b37a76f26 Mon Sep 17 00:00:00 2001
From: Daniel Baumann It provides the means to derive a XAccessibleContext
+ object--which may but usually is not the same object as the object that
+ supports the XAccessible interface--that provides the
+ actual information that is needed to make it accessible. Service This service has to be implemented by every class that represents the
+ actual accessibility information of another UNO service. It exposes two
+ kinds of information: A tree structure in which all accessible objects
+ are organized can be navigated in freely. It typically represents
+ spatial relationship of one object containing a set of children like a
+ dialog box contains a set of buttons. Additionally the
+ XAccessibleContext interface of this service exposes
+ methods that provide access to the actual object's content. This can be
+ the object's role, name, description, and so on. The AccessibleEventObject::OldValue and
+ AccessibleEventObject::NewValue fields contain, where
+ applicable and not otherwise stated, the old and new value of the
+ property in question. The AccessibleEventObject::OldValue and
+ AccessibleEventObject::NewValue fields contain the
+ old and new number of actions.
+ */
+ const short ACTION_CHANGED = 3;
+
+ /** State changes are signaled with this event type. Use one event for
+ every state that is set or reset. The
+ AccessibleEventObject::OldValue and
+ AccessibleEventObject::NewValue fields contain the
+ old and new value respectively. To set a state put the state id
+ into the AccessibleEventObject::NewValue field and
+ leave AccessibleEventObject::OldValue empty. To
+ reset a state put the state id into the
+ AccessibleEventObject::OldValue field and leave
+ AccessibleEventObject::NewValue empty.
+ */
+ const short STATE_CHANGED = 4;
+
+ /** Constant used to determine when the active descendant of a component
+ has changed. The active descendant is used in objects with
+ transient children. The AccessibleEventObject::NewValue
+ contains the now active object. The
+ AccessibleEventObject::OldValue contains the
+ previously active child. Empty references indicate that no child
+ has been respectively is currently active.
+ */
+ const short ACTIVE_DESCENDANT_CHANGED = 5;
+
+ /** This event indicates a change of the bounding rectangle of an
+ accessible object with respect only to its size or relative
+ position. If the absolute position changes but not the relative
+ position then it is not necessary to send an event.
+
+ Use this event rather than the
+ VISIBLE_DATA_EVENT when really only the
+ (relative) bounding box of an accessible object has changed. It is
+ much more specific than the later one and reduces the number of
+ calls an AT-Tool has to make to retrieve all affected data. The AccessibleEventObject::OldValue and
+ AccessibleEventObject::NewValue remain empty. Use
+ a call to the XAccessibleComponent::getBounds()
+ method to determine the new bounding box. If a new child has been added then
+ the AccessibleEventObject::NewValue contains a
+ reference to this new object and
+ AccessibleEventObject::OldValue remains empty. If a child has been removed then the
+ AccessibleEventObject::OldValue contains a
+ reference to this object and
+ AccessibleEventObject::NewValue remains empty. If a child has been added and another one has been removed
+ don't set both fields at the same. Send separate events
+ instead. Note that a child event is sent after a child has been added or
+ removed. Especially in the case of a removal this means that the
+ removed object does not have a parent anymore. When this API is used by Java or Gnome AT-Tools then a bridge can
+ generate the events described above automatically. Not used: The AccessibleEventObject::OldValue and
+ AccessibleEventObject::NewValue fields contain
+ references to the old and new predecessor. Note that both references
+ my be `NULL` to indicate that a flow to the sending object has not
+ existed or does not exist anymore. Not used: The AccessibleEventObject::OldValue and
+ AccessibleEventObject::NewValue fields contain
+ references to the old and new successor. Note that both references
+ my be `NULL` to indicate that a flow from the sending object has not
+ existed or does not exist anymore. The affected text ranges are represented by
+ com::sun::star::accessibility::TextSegment structures.
+
+ The content of the AccessibleEventObject::OldValue and
+ AccessibleEventObject::NewValue expresses the type
+ of text change: When broadcasting an event always prefer the first three cases
+ to the last one. Use it only as a last resort. Text ranges should be as small as possible but, of course,
+ include all the text that is involved in a modification. That means
+ that when two or more discontinuous text ranges are inserted,
+ deleted, or otherwise modified the two fields of the event have to
+ cover all the affected text ranges as well as the text in
+ between. AccessibleEventObject::OldValue contains the item to be removed. AccessibleEventObject::NewValue is empty. AccessibleEventObject::OldValue is empty. AccessibleEventObject::NewValue contains the item to be added. AccessibleEventObject::OldValue contains the item to be removed. AccessibleEventObject::NewValue is empty. AccessibleEventObject::OldValue and
+ AccessibleEventObject::NewValue is empty. It is usually implemented by AccessibleContext.
+
+ @since OOo 1.1.2
+*/
+struct AccessibleEventObject: ::com::sun::star::lang::EventObject
+{
+ /** specifies the type of this event.
+
+ For a list of possible events see AccessibleEventId.
+ */
+ short EventId;
+
+ /** for events that specifies a value change, this is
+ the new value.
+
+ Depending on the #EventId, this can be void.
+ */
+ any NewValue;
+
+ /** for events that specifies a value change, this is
+ the old value.
+
+ Depending on the #EventId, this can be void.
+ */
+ any OldValue;
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/accessibility/AccessibleRelation.idl b/offapi/com/sun/star/accessibility/AccessibleRelation.idl
new file mode 100644
index 000000000..f3b5e8402
--- /dev/null
+++ b/offapi/com/sun/star/accessibility/AccessibleRelation.idl
@@ -0,0 +1,60 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_accessibility_AccessibleRelation_idl__
+#define __com_sun_star_accessibility_AccessibleRelation_idl__
+
+#include The represented relation points from the implementing object to a set
+ of target objects. Its value has to be one of the constants defined by
+ AccessibleRelationType. If that value is INVALID then
+ the whole relation is regarded as invalid. The content of the
+ TargetSet is then undefined. The content of this set is undefined if the relation's type is
+ INVALID. The set must not contain references to one object more
+ than once. This list of constants defines the available types of relations that
+ are usable by AccessibleRelation. We are using constants instead of a more typesafe enum. The reason
+ for this is that IDL enums may not be extended. Therefore, in order to
+ include future extensions to the set of roles we have to use constants
+ here. Indicates an invalid relation type. This is used to indicate
+ that a retrieval method could not find a requested relation. Indicates a content flow between the related objects. Indicates a content flow between the related objects. Indicates an object is controlled by one or more target
+ objects. Indicates an object is a controller for one or more target
+ objects. Indicates an object is a label for one or more target
+ objects. Indicates an object is labeled by one or more target objects. Indicates an object is a member of a group of one or more target
+ objects. With this relation you can realize an alternative parent-child
+ relationship. The target of the relation contains the parent
+ window. Note that there is no relation that points the other way,
+ from the parent window to the child window. Indicates an object is a cell in a tree or tree table which is
+ displayed because a cell in the same column is expanded and
+ identifies that cell. Indicates an object is described by the target object. This collection of constants defines the set of possible roles of
+ classes implementing the XAccessible interface according to
+ the Java class javax.accessibility.AccessibleRole. The role of an
+ object describes its generic function like "button", "menu", or "text".
+ You can obtain an object's role by calling the
+ getAccessibleRole() method of the
+ XAccessibleContext interface. We are using constants instead of a more typesafe enum. The reason
+ for this is that IDL enums may not be extended. Therefore, in order to
+ include future extensions to the set of roles we have to use constants
+ here. For some roles there exist two labels with the same value. Please
+ use the one with the underscores. The other ones are somewhat
+ deprecated and will be removed in the future. The object contains some Accessible information, but its role is
+ not known. See also FRAME, GLASS_PANE, and
+ LAYERED_PANE. A choice that can be checked or unchecked and provides a separate
+ indicator for the current state. See also PUSH_BUTTON, TOGGLE_BUTTON,
+ and RADIO_BUTTON. A list of choices the user can select from. Also optionally
+ allows the user to enter a choice of their own. A DATE_EDITOR is a component that allows users to edit date and time. See also DESKTOP_PANE and
+ INTERNAL_FRAME. A pane that supports internal frames and iconified versions of
+ those internal frames. A pane that allows the user to navigate through and select the
+ contents of a directory. May be used by a file chooser. See also FILE_CHOOSER. A top level window with title bar and a border. A dialog is
+ similar to a frame, but it has fewer properties and is often used as
+ a secondary window for an application. See also FRAME and WINDOW. The view of an actual document. Its content depends on the
+ document type. A specialized dialog that displays the files in the directory
+ and lets the user select a file, browse a different directory, or
+ specify a filename. May use the directory pane to show the contents
+ of a directory. See also DIRECTORY_PANE. An object that fills up space in a user interface. It is often
+ used in interfaces to tweak the spacing between components, but
+ serves no other purpose. A FONT_CHOOSER is a component that lets the user pick various
+ attributes for fonts. A top level window with a title bar, border, menu bar, etc. It
+ is often used as the primary window for an application. See also DIALOG, CANVAS, and
+ WINDOW. A pane that is guaranteed to be painted on top of all panes
+ beneath it. See also ROOT_PANE and CANVAS. A GROUP_BOX is a simple container that contains a
+ border around it and contains components inside it. A frame-like object that is clipped by a desktop pane. The
+ desktop pane, internal frame, and desktop icon objects are often
+ used to create multiple document interfaces within an
+ application. See also DESKTOP_ICON, DESKTOP_PANE,
+ and FRAME. See also TEXT and STATIC. A specialized pane that allows its children to be drawn in
+ layers, providing a form of stacking order. This is usually the pane
+ that holds the menu bar as well as the pane that contains most of
+ the visual components in a window. See also GLASS_PANE and
+ ROOT_PANE. An object that presents a list of objects to the user and allows
+ the user to select one or more of them. A list is usually contained
+ within a scroll pane. See also SCROLL_PANE and
+ LIST_ITEM. An object that presents an element in a list. A list is usually
+ contained within a scroll pane. See also SCROLL_PANE and LIST. An object usually found inside a menu bar that contains a list of
+ actions the user can choose from. A menu can have any object as its
+ children, but most often they are menu items, other menus, or
+ rudimentary objects such as radio buttons, check boxes, or
+ separators. For example, an application may have an "Edit" menu that
+ contains menu items for "Cut" and "Paste." See also MENU_BAR, MENU_ITEM,
+ SEPARATOR, RADIO_BUTTON,
+ CHECK_BOX, and POPUP_MENU. An object usually drawn at the top of the primary dialog box of
+ an application that contains a list of menus the user can choose
+ from. For example, a menu bar might contain menus for "File,"
+ "Edit," and "Help." See also MENU, POPUP_MENU, and
+ LAYERED_PANE. An object usually contained in a menu that presents an action the
+ user can choose. For example, the "Cut" menu item in an "Edit" menu
+ would be an action the user can select to cut the selected area of
+ text in a document. See also MENUBAR, SEPARATOR, and
+ POPUP_MENU. See also DIALOG. An object that is a child of a page tab list. Its sole child is
+ the panel that is to be presented to the user when the user selects
+ the page tab from the list of tabs in the page tab list. See also PAGE_TAB_LIST. An object that presents a series of panels (or page tabs), one at
+ a time, through some mechanism provided by the object. The most
+ common mechanism is a list of tabs at the top of the panel. The
+ children of a page tab list are all page tabs. See also PAGE_TAB. A text object used for passwords, or other places where the text
+ contents is not shown visibly to the user. A temporary window that is usually used to offer the user a list
+ of choices, and then hides when the user selects one of those
+ choices. See also MENU and MENU_ITEM. An object the user can manipulate to tell the application to do
+ something. See also CHECK_BOX, TOGGLE_BUTTON,
+ RADIO_BUTTON, BUTTON_MENU and
+ BUTTON_DROPDOWN. A specialized check box that will cause other radio buttons in
+ the same group to become unchecked when this one is checked. See also PUSH_BUTTON, TOGGLE_BUTTON,
+ and CHECK_BOX. A specialized pane that has a glass pane and a layered pane as
+ its children. See also GLASS_PANE and LAYERED_PANE. An object usually used to allow a user to incrementally view a
+ large amount of data. Usually used only by a scroll pane. See also SCROLL_PANE. An object that allows a user to incrementally view a large amount
+ of information. Its children can include scroll bars and a
+ viewport. See also SCROLL_BAR and VIEW_PORT. An object usually contained in a menu to provide a visual and
+ logical separation of the contents in a menu. For example, the
+ "File" menu of an application might contain menu items for "Open,"
+ "Close," and "Exit," and will place a separator between "Close" and
+ "Exit" menu items. See also MENU and MENU_ITEM. An object that allows the user to select from a bounded
+ range. For example, a slider might be used to select a number
+ between 0 and 100. A SPIN_BOX is a simple spinner component and its
+ main use is for simple numbers. A specialized panel that presents two other panels at the same
+ time. Between the two panels is a divider the user can manipulate to
+ make one panel larger and the other panel smaller. A STATUS_BAR is an simple component that can
+ contain multiple labels of status information to the user. An object used to present information in terms of rows and
+ columns. An example might include a spreadsheet application. An object that presents text to the user. The text is usually
+ editable by the user as opposed to a label or static text. See also LABEL and STATIC. A specialized push button that can be checked or unchecked, but
+ does not provide a separate indicator for the current state. See also PUSH_BUTTON, CHECK_BOX and
+ RADIO_BUTTON. A bar or palette usually composed of push buttons or toggle
+ buttons. It is often used to provide the most frequently used
+ functions for an application. An object that provides information about another object. The
+ accessible Description property of the tool tip is often displayed to
+ the user in a small "help bubble" when the user causes the mouse to
+ hover over the object associated with the tool tip. An object used to present hierarchical information to the
+ user. The individual nodes in the tree can be collapsed and expanded
+ to provide selective disclosure of the tree's contents. An object usually used in a scroll pane. It represents the
+ portion of the entire data that the user can see. As the user
+ manipulates the scroll bars, the contents of the viewport can
+ change. See also SCROLL_PANE. See also FRAME and DIALOG. The object represents a button that drops down a list of items. See also PUSH_BUTTON and BUTTON_MENU. The object represents a button that drops down a menu. See also PUSH_BUTTON and BUTTON_DROPDOWN. The object contains descriptive information, usually textual, about
+ another user interface element such as a table, chart, or image. The object is a graphical depiction of quantitative data. It may contain multiple
+ subelements whose attributes and/or description may be queried to obtain both
+ the quantitative data and information about how the data is being presented. A role indicating the object acts as a formula for calculating a value. The object is a container for form controls, for instance as part of a web form
+ or user-input form within a document. Usually a graphic with multiple hotspots, where each hotspot can be activated
+ resulting in the loading of another document or section of a document. An embedded note which is not visible until activated. An object representing a page of document content. It is used in documents
+ which are accessed by the user on a page by page basis. An object which describes margins and tab stops, etc. for text objects which it controls. The object is a containing instance of document content which constitutes a particular
+ "logical" section of the document. An object that presents an element in a treeAccessible
is just a wrapper for the interface
+ XAccessible
. See the interface's documentation for more
+ information.
+
+
An object which represents both hierarchical and tabular information.
+ + @since OOo 3.0 + */ + const short TREE_TABLE = 80; + + /** Comment role + +An object which represents a comment.
+ +A comment is anchored at a certain content position in the document and + annotates this document content position or a certain text range of the document content. + In the OpenDocument file format a comment is known as an annotation.
+ +See also COMMENT_END.
+ + @since OOo 3.2 + */ + const short COMMENT = 81; + + /** Comment end role + +An invisible object which represents the end position of a text range which + is annotated by a comment - see COMMENT.
+ +This object and the corresponding object representing the comment shall be + in relation of type MEMBER_OF.
+ + @since OOo 3.2 + */ + const short COMMENT_END = 82; + + /** View of a presentation document. + +It's an specific variation of DOCUMENT for presentations.
+ + @since LibreOffice 4.3 + */ + const short DOCUMENT_PRESENTATION = 83; + + /** View of an spreadsheet document. + +It's an specific variation of DOCUMENT for spreadsheets.
+ + @since LibreOffice 4.3 + */ + const short DOCUMENT_SPREADSHEET = 84; + + /** View of a text document. + +It's an specific variation of DOCUMENT for text.
+ + @since LibreOffice 4.3 + */ + const short DOCUMENT_TEXT = 85; + + /** Static text role. + +An object that presents a brief amount of information to the user. + The text is not editable by the user as opposed to a text, and not + meant to have a relation with another object as opposed to a + label.
+ +See also LABEL and TEXT.
+ */ + const short STATIC = 86; + +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/AccessibleScrollType.idl b/offapi/com/sun/star/accessibility/AccessibleScrollType.idl new file mode 100644 index 000000000..fd096b09b --- /dev/null +++ b/offapi/com/sun/star/accessibility/AccessibleScrollType.idl @@ -0,0 +1,81 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_AccessibleScrollType_idl__ +#define __com_sun_star_accessibility_AccessibleScrollType_idl__ + +module com { module sun { module star { module accessibility { + +/** Scroll types + +Describes the type of scrolling that are available for the methods of + the XAccessibleScrollableText interface.
+ + @since LibreOffice 7.0 +*/ +enum AccessibleScrollType +{ + /** + Scroll the top left corner of the object or string such that the + top left corner is within the top level window. + */ + SCROLL_TOP_LEFT, + + /** + Scroll the bottom right corner of the object or string such that the + bottom right corner is within the top level window. + */ + SCROLL_BOTTOM_RIGHT, + + /** + Scroll the top edge of the object or string such that the top edge is + within the top level window. + */ + SCROLL_TOP_EDGE, + + /** + Scroll the bottom edge of the object or string such that the bottom + edge is within the top level window. + */ + SCROLL_BOTTOM_EDGE, + + /** + Scroll the left edge of the object or string such that the left edge + is within the top level window. + */ + SCROLL_LEFT_EDGE, + + /** + Scroll the right edge of the object or string such that the right edge + is within the top level window. + */ + SCROLL_RIGHT_EDGE, + + /** + Scroll the object or string such that as much as possible of the + object or string is within the top level window. + */ + SCROLL_ANYWHERE +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/AccessibleStateType.idl b/offapi/com/sun/star/accessibility/AccessibleStateType.idl new file mode 100644 index 000000000..7f64a6380 --- /dev/null +++ b/offapi/com/sun/star/accessibility/AccessibleStateType.idl @@ -0,0 +1,247 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_AccessibleStateType_idl__ +#define __com_sun_star_accessibility_AccessibleStateType_idl__ + +module com { module sun { module star { module accessibility { + +/** Collection of state types. + +This list of constants defines the available set of states that an + object that implements XAccessibleContext can be in.
+ +The comments describing the states is taken verbatim from the Java + Accessibility API 1.4 documentation.
+ +We are using constants instead of a more typesafe enum. The reason + for this is that IDL enums may not be extended. Therefore, in order to + include future extensions to the set of roles we have to use constants + here.
+ + @since OOo 1.1.2 +*/ +constants AccessibleStateType +{ + /** Indicates an invalid state. + */ + const short INVALID = 0; + + /** Indicates a window is currently the active window. + */ + const short ACTIVE = 1; + + /** Indicates that the object is armed. + */ + const short ARMED = 2; + + /** Indicates the current object is busy. + */ + const short BUSY = 3; + + /** Indicates this object is currently checked. + */ + const short CHECKED = 4; + + /** User interface object corresponding to this object no longer exists. + +Indicates the user interface object corresponding to this object + no longer exists.
+ */ + const short DEFUNC = 5; + + /** Indicates the user can change the contents of this object. + */ + const short EDITABLE = 6; + + /** Indicates this object is enabled. + */ + const short ENABLED = 7; + + /** Indicates this object allows progressive disclosure of its children. + */ + const short EXPANDABLE = 8; + + /** Indicates this object is expanded. + */ + const short EXPANDED = 9; + + /** Object can accept the keyboard focus. + +Indicates this object can accept keyboard focus, which means all + events resulting from typing on the keyboard will normally be passed + to it when it has focus.
+ */ + const short FOCUSABLE = 10; + + /** Indicates this object currently has the keyboard focus. + */ + const short FOCUSED = 11; + + /** Indicates the orientation of this object is horizontal. + */ + const short HORIZONTAL = 12; + + /** Indicates this object is minimized and is represented only by an + icon. + */ + const short ICONIFIED = 13; + + /** Sometimes UI elements can have a state indeterminate. + This can happen e.g. if a check box reflects the bold state of text in a text processor. + When the current selection contains text which is bold and also text which is not bold, the state is indeterminate. + + */ + const short INDETERMINATE = 14; + + /** Indicates the most (all) children are transient and it is not + necessary to add listener to the children. Only the active descendant + (given by the event) should be not transient to make it possible + to add listener to this object and recognize changes in this object. + + The state is added to make a performance improvement. Now it is no + longer necessary to iterate over all children to find out whether + they are transient or not to decide whether to add listener or not. + If there is an object with this state no one should iterate over the + children to add listener. Only the active descendant should get + listener if it is not transient. + */ + const short MANAGES_DESCENDANTS = 15; + + /** Object is modal. + +Indicates something must be done with this object before the user + can interact with an object in a different window.
+ */ + const short MODAL = 16; + + /** Indicates this (text) object can contain multiple lines of text + */ + const short MULTI_LINE = 17; + + /** More than one child may be selected at the same time. + +Indicates this object allows more than one of its children to be + selected at the same time.
+ */ + const short MULTI_SELECTABLE = 18; + + /** Indicates this object paints every pixel within its rectangular + region. + */ + const short OPAQUE = 19; + + /** Indicates this object is currently pressed. + */ + const short PRESSED = 20; + + /** Indicates the size of this object is not fixed. + */ + const short RESIZABLE = 21; + + /** Object is selectable. + +Indicates this object is the child of an object that allows its + children to be selected, and that this child is one of those + children that can be selected.
+ */ + const short SELECTABLE = 22; + + /** Object is selected. + +Indicates this object is the child of an object that allows its + children to be selected, and that this child is one of those + children that has been selected.
+ */ + const short SELECTED = 23; + + /** Indicates this object is sensitive. + */ + const short SENSITIVE = 24; + + /** Object is displayed on the screen. + +An object has set the SHOWING state if itself and + all of its parents have set the VISIBLE state and it + lies at least partly inside the visible area of its parent. It is, + though, not necessarily visible on the screen because it may be + occluded by other objects.
+ */ + const short SHOWING = 25; + + /** Indicates this (text) object can contain only a single line of text + */ + const short SINGLE_LINE = 26; + + /** Object information is stale and might not be up to date + +Indicates that the information that is returned from this object + might be out of sync with the application.
+ */ + const short STALE = 27; + + /** Indicates this object is transient. + */ + const short TRANSIENT= 28; + + /** Indicates the orientation of this object is vertical. + */ + const short VERTICAL = 29; + + /** Object wants to be displayed on the screen. + +A set VISIBLE state indicates that an object wants + to be displayed on the screen. It is displayed, as indicated by a + set SHOWING state, if all of its parents have also + set the VISIBLE state and the object lies at least + partly in the visible area of its parent.
+ */ + const short VISIBLE = 30; + + // The following constants have been introduced with the IA2 CWS: + + // MOVEABLE only exists in MSAA/IA2, but not in ATK/JAA/NSAccessibility. + /** Indicates the position of the object is not fixed. + */ + const short MOVEABLE = 31; + + // DEFAULT exists in MSAA/IA2, and now also in ATK and NSAccessibility. + /** Indicates the object is the default button in a window + */ + const short DEFAULT = 32; + + // OFFSCREEN only exists in MSAA/IA2, but not in ATK/JAA/NSAccessibility. + // MT: Shouldn't this be the same like !SHOWING in UAA/ATK? + /** Indicates the object is outside of the screen area + */ + const short OFFSCREEN = 33; + + // COLLAPSED exists in MSAA/IA2, and now also in JAA, but not in ATK/NSAccessibility. In NSAccessibility, there is a notification for collapse. + // In opposite to MSAA, UAA has EXPANDABLE, so EXPANDABLE && !EXPANDED should be the same like COLLAPSED. + /** Indicates that the object is collapsed + */ + const short COLLAPSE = 34; + +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/AccessibleTableModelChange.idl b/offapi/com/sun/star/accessibility/AccessibleTableModelChange.idl new file mode 100644 index 000000000..236c44014 --- /dev/null +++ b/offapi/com/sun/star/accessibility/AccessibleTableModelChange.idl @@ -0,0 +1,82 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_AccessibleTableModelChange_idl__ +#define __com_sun_star_accessibility_AccessibleTableModelChange_idl__ + +#includeThe data members of the AccessibleTableModelChange structure + give access to the type and cell range of a change of a table model. See + AccessibleTableModelChangeType for details of the change + type. The range of the affected rows, columns, and/or cells can be + obtained by accessing the other four data members.
+ + @since OOo 1.1.2 +*/ +struct AccessibleTableModelChange +{ + /** The type of the event as defined in + AccessibleTableModelChangeType. + +The model change either inserted or removed one or more rows + or columns or modified the content of a number of cells. See + AccessibleTableModelChangeType for details of the type + of the model change.
+ */ + short Type; + + /** The lowest index of a row that has changed. + +The first row that has been changed or that contains + modified cells.
+ */ + long FirstRow; + + /** The highest index of a row that has changed. + +The last row that has been changed or that contains modified + cells.
+ */ + long LastRow; + + /** The lowest index of a column that has changed. + +The first column that has been changed or contains modified + cells.
+ */ + long FirstColumn; + + /** The highest index of a column that has changed. + +The last column that has been changed or contains modified + cells.
+ */ + long LastColumn; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/AccessibleTableModelChangeType.idl b/offapi/com/sun/star/accessibility/AccessibleTableModelChangeType.idl new file mode 100644 index 000000000..02164df97 --- /dev/null +++ b/offapi/com/sun/star/accessibility/AccessibleTableModelChangeType.idl @@ -0,0 +1,105 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_AccessibleTableModelChangeType_idl__ +#define __com_sun_star_accessibility_AccessibleTableModelChangeType_idl__ + +#includeThe value of this constants group are used by the + AccessibleTableModelChange structure to specify the + type of change that has been made to a table model.
+ +Four of the constants, + AccessibleTableModelChangeType::ROWS_INSERTED, + AccessibleTableModelChangeType::COLUMNS_INSERTED, + AccessibleTableModelChangeType::ROWS_REMOVED and + AccessibleTableModelChangeType::COLUMNS_REMOVED describe + changes to the table's geometry. One or more rows or columns have + been inserted or removed. In contrast, the remaining constant + AccessibleTabelModelChangeType::UPDATE specifies a + change of the table's content.
+ + @since OOo 1.1.2 +*/ +constants AccessibleTableModelChangeType +{ + /** Some of the table data has changed. + +The number of rows and columns remains unchanged. Only (some of) + the content of the cells in the range that is specified by the + fields of the AccessibleTableModelChange structure have + been changed.
+ */ + const short UPDATE = 3; + + /** One or more rows have been inserted. + +Use the fields of the AccessibleTableModelChange + structure to determine the indices of the rows that + have been inserted. + Column indices should be set to -1.
+ + @since LibreOffice 7.4 + */ + const short ROWS_INSERTED = 4; + + /** One or more columns have been inserted. + +Use the fields of the AccessibleTableModelChange + structure to determine the indices of the columns that + have been inserted. + Row indices should be set to -1.
+ + @since LibreOffice 7.4 + */ + const short COLUMNS_INSERTED = 5; + + /** One or more rows have been removed. + +Use the fields of the AccessibleTableModelChange + structure to determine the indices of the rows that + have been removed. + Column indices should be set to -1.
+ + @since LibreOffice 7.4 + */ + const short ROWS_REMOVED = 6; + + /** One or more columns have been removed. + +Use the fields of the AccessibleTableModelChange + structure to determine the indices of the columns that + have been removed. + Row indices should be set to -1.
+ + @since LibreOffice 7.4 + */ + const short COLUMNS_REMOVED = 7; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/AccessibleTextType.idl b/offapi/com/sun/star/accessibility/AccessibleTextType.idl new file mode 100644 index 000000000..17871d1a5 --- /dev/null +++ b/offapi/com/sun/star/accessibility/AccessibleTextType.idl @@ -0,0 +1,99 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_AccessibleTextType_idl__ +#define __com_sun_star_accessibility_AccessibleTextType_idl__ + +module com { module sun { module star { module accessibility { + + +/** Collection of types of text portions. + +This collection describes the types of text portions that can be + accessed with the help of the methods of the + XAccessibleText interface.
+ + @since OOo 1.1.2 +*/ +constants AccessibleTextType +{ + /** Single character. + +Indicates that single (multibyte) characters are used.
+ */ + const short CHARACTER = 1; + + /** Single word. + +Indicates that single words are used. The definition of what a + word is, is implementation and language/locale dependent. While in + English a word is ended by a space or a special character like a + comma or a period, this is not necessarily true in other + languages.
+ */ + const short WORD = 2; + + /** Single sentence. + +Indicates that single sentences are used. The definition of what + a sentence is, is implementation and language/locale dependent. + While in English a sentence is ended by a period, this is not + necessarily true in other languages.
+ */ + const short SENTENCE = 3; + + /** Single paragraph. + +Indicates that single paragraphs are used. The definition of + what a paragraph is, is implementation and language/locale + dependent.
+ */ + const short PARAGRAPH = 4; + + /** Single line. + +Indicates that single lines, as displayed on the screen, are + used. In contrast to the constants CHARACTER, + WORD, SENTENCE, and + PARAGRAPH which are content oriented this constant is + view oriented. It can be used to retrieve hyphenation + information.
+ */ + const short LINE = 5; + + /** Single glyph. + +Glyphs are runs of one or more (multibyte) characters which are + displayed as one symbol.
+ */ + const short GLYPH = 6; + + /** Attribute run. + +Each attribute run is a character run of maximal length where all + characters have the same attributes set.
+ */ + const short ATTRIBUTE_RUN = 7; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/IllegalAccessibleComponentStateException.idl b/offapi/com/sun/star/accessibility/IllegalAccessibleComponentStateException.idl new file mode 100644 index 000000000..053ed162b --- /dev/null +++ b/offapi/com/sun/star/accessibility/IllegalAccessibleComponentStateException.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_IllegalAccessibleComponentStateException_idl__ +#define __com_sun_star_accessibility_IllegalAccessibleComponentStateException_idl__ + +#includeThis exception is thrown to indicate the an accessibility component + has been queried for state information that it can not provide. Used by + XAccessibleContext::getLocale().
+ + @see XAccessibleContext::getLocale() + + @since OOo 1.1.2 +*/ +exception IllegalAccessibleComponentStateException + : ::com::sun::star::uno::Exception +{ +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/MSAAService.idl b/offapi/com/sun/star/accessibility/MSAAService.idl new file mode 100644 index 000000000..5d59596ae --- /dev/null +++ b/offapi/com/sun/star/accessibility/MSAAService.idl @@ -0,0 +1,32 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_accessibility_Accessible_idl__ +#define __com_sun_star_accessibility_Accessible_idl__ + +#includeThe indices TextSegment::SegmentStart and + TextSegment::SegmentEnd refer to the enclosing text. + The TextSegment::SegmentText member contains the text + between these two indices including the start index but not the end + index. With it you can use this structure without having to + access the XAccessibleText interface that represents the + enclosing text.
+ +An empty text segment is expressed by + TextSegment::SegmentStart and + TextSegment::SegmentEnd set to the same value. While a + value of -1 signals an error (like the request for a word after the last + character of a text) all other values define the empty string at that + position.
+ +The #SegmentText member is a copy of the + corresponding text segment of the enclosing text. Modifying this + structure does not alter the enclosing text.
+ + @see XAccessibleText + + @since OOo 1.1.2 +*/ + +struct TextSegment +{ + /** A copy of the text segment of the enclosing text delimited by the + text indices TextSegment::SegmentStart and + TextSegment::SegmentEnd. Modifying it does not + alter the enclosing text. + */ + string SegmentText; + + /** Index of the first character of the text segment represented by this + structure. The index refers to the enclosing text. + */ + long SegmentStart; + + /** Index of the character directly behind the last character of the + text segment represented by this structure. The index refers to the + enclosing text. + */ + long SegmentEnd; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessible.idl b/offapi/com/sun/star/accessibility/XAccessible.idl new file mode 100644 index 000000000..f1548fd51 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessible.idl @@ -0,0 +1,78 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_XAccessible_idl__ +#define __com_sun_star_accessibility_XAccessible_idl__ + +#includeIt is used to provide access to the XAccessibleContext + interface but allows at the same time that the interface is implemented + by another class.
+ +The distinction between the interfaces XAccessible and + XAccessibleContext makes it possible to split up the + implementation of the + class that is made accessible and the actual accessibility code into two + (mostly) independent parts. The only necessary dependence is the + XAccessible::getAccessibleContext() function + that returns the accessible context. This one-way link has to be + persistent in some sense: As long as there is at least one reference to + a specific XAccessibleContext object the + XAccessible object has to return the same context for every + call to XAccessible::getAccessibleContext(). + This is necessary to allow the use of object identity for comparing + accessibility contexts for being equal.
+ + @see AccessibleContext + + @since OOo 1.1.2 +*/ +interface XAccessible : ::com::sun::star::uno::XInterface +{ + /** Returns the AccessibleContext associated with this object. + +The idea to let this interface only return an + XAccessibleContext instead of directly supporting its + functions is to allow the separation of the implementation of the + functions that make a class accessible from the implementation of + that class. You may, of course, implement XAccessible + and XAccessibleContext in one class.
+ + @return + A reference to the object that contains the actual accessibility + information. + + @see AccessibleContext + */ + XAccessibleContext getAccessibleContext (); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleAction.idl b/offapi/com/sun/star/accessibility/XAccessibleAction.idl new file mode 100644 index 000000000..509d8a294 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleAction.idl @@ -0,0 +1,113 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_XAccessibleAction_idl__ +#define __com_sun_star_accessibility_XAccessibleAction_idl__ + +#includeEvery accessible object that can be manipulated beyond its methods + exported over the accessibility API should support this interface to + expose all actions that it can perform. Each action can be performed or + be queried for a description or associated key bindings.
+ + @since OOo 1.1.2 +*/ +interface XAccessibleAction : ::com::sun::star::uno::XInterface +{ + /** Returns the number of accessible actions available in this object. + +If there are more than one, the first one is considered the + "default" action of the object.
+ + @return + The returned value of the number of actions is zero if there are + no actions. + */ + long getAccessibleActionCount (); + + /** Perform the specified Action on the object. + + @param nIndex + This index specifies the action to perform. If it lies outside + the valid range `FALSE` is returned and no action is performed. + @return + Returns `TRUE` if the action was successfully performed. If + the action could not be performed successfully `FALSE` is + returned. + + @throws IndexOutOfBoundsException + If no action with the given index exists then an + ::com::sun::star::lang::IndexOutOfBoundsException + exception is thrown. + */ + boolean doAccessibleAction ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns a description of the specified action of the object. + + @param nIndex + This index specifies the action of which to return a + description. If it lies outside the valid range an empty string + is returned. + + @return + The returned value is a localized string of the specified action. + + @throws IndexOutOfBoundsException + If the given index lies not in the valid range then an + ::com::sun::star::lang::IndexOutOfBoundsException + exception is thrown. + */ + string getAccessibleActionDescription ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns a key binding object, if there is one, associated with the + specified action. Note that there can be several alternative key + bindings for an action. See XAccessibleKeyBinding for + more information about how key bindings are represented. + + @param nIndex + This index specifies the action of which to return the key + binding. + + @return + The returned object describes a set of key bindings associated + with the specified action. + + @throws IndexOutOfBoundsException + if the given index is not valid. + */ + XAccessibleKeyBinding getAccessibleActionKeyBinding ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleComponent.idl b/offapi/com/sun/star/accessibility/XAccessibleComponent.idl new file mode 100644 index 000000000..181ab31ba --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleComponent.idl @@ -0,0 +1,214 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_XAccessibleComponent_idl__ +#define __com_sun_star_accessibility_XAccessibleComponent_idl__ + +#includeThis interface provides the standard mechanism for an assistive
+ technology to retrieve information concerning the graphical
+ representation of an object. This interface combines methods from
+ the Java interfaces javax.accessibility.AccessibleComponent
+ and javax.accessibility.AccessibleExtendedComponent
.
Further information about the graphical appearance of an object can + be expressed with the XAccessibleExtendedComponent + interface.
+ +Coordinates used by the functions of this interface are specified in + different coordinate systems. Their scale is the same and is equal to + that of the screen coordinate system. In other words all coordinates + are measured in pixel. They differ in their respective origin: +
Key bindings which are associated with an accessible component can be + retrieved at the component's action. The reason for this is that key + bindings are associated with actions and directly with a component. + This distinction becomes important when there are more than one action. + To get access to the key bindings you have to get the + XAccessibleAction interface of a component, provided that + it is supported, and use the XAccessibleAction::getAccessibleKeyBinding(). +
+ + @see XAccessibleExtendedComponent + + @since OOo 1.1.2 +*/ +interface XAccessibleComponent : ::com::sun::star::uno::XInterface +{ + /** Tests whether the specified point lies within this object's bounds. + +The test point's coordinates are defined relative to the + coordinate system of the object. That means that when the object is + an opaque rectangle then both the points (0,0) and (with-1,height-1) + would yield a `TRUE` value.
+ + @param Point + Coordinates of the point to test. The origin of the coordinate + system is the upper left corner of the object's bounding box as + returned by the getBounds(). The scale of the + coordinate system is identical to that of the screen coordinate + system. + + @return + Returns `TRUE` if the point lies within or on the object's bounding + box and `FALSE` otherwise. + */ + boolean containsPoint ([in] ::com::sun::star::awt::Point Point); + + /** Returns the Accessible child that is rendered under the given point. + +The test point's coordinates are defined relative to the + coordinate system of the object. That means that when the object is + an opaque rectangle then both the points (0,0) and (with-1,height-1) + would yield a `TRUE` value.
+ + @param Point + Coordinates of the test point for which to find the Accessible + child. The origin of the coordinate system is the upper left + corner of the object's bounding box as returned by the + getBounds(). The scale of the coordinate + system is identical to that of the screen coordinate system. + + @return + If there is one child which is rendered so that its bounding box + contains the test point then a reference to that object is + returned. If there is more than one child which satisfies that + condition then a reference to that one is returned that is + painted on top of the others. If no there is no child which is + rendered at the test point an empty reference is returned. + */ + XAccessible getAccessibleAtPoint ([in] ::com::sun::star::awt::Point Point); + + /** Returns the bounding box of this object. + +The returned bounding box has the form of a rectangle. Its + coordinates are relative to the object's parent coordinate system. + Note that the two methods getLocation() and + getSize() return the same information. With method + getLocationOnScreen() you can get the bound box + position in screen coordinates.
+ + @return + The coordinates of the returned rectangle are relative to this + object's parent or relative to the screen on which this object + is rendered if it has no parent. If the object is not on any + screen the returned rectangle is empty and located at position + (0,0). + */ + ::com::sun::star::awt::Rectangle getBounds (); + + /** Returns the location of the upper left corner of the object's + bounding box relative to the parent. + +The coordinates of the bounding box are given relative to the + parent's coordinate system.
+ + @return + The coordinates of the returned position are relative to this + object's parent or relative to the screen on which this object + is rendered if it has no parent. If the object is not on any + screen the returned position is (0,0). + */ + ::com::sun::star::awt::Point getLocation (); + + /** Returns the location of the upper left corner of the object's + bounding box in screen coordinates. + +This method returns the same point as does the method + getLocation(). The difference is that the + coordinates are absolute screen coordinates of the screen to which + the object is rendered instead of being relative to the object's + parent.
+ + @return + The coordinates of the returned position are relative to the + screen on which this object is rendered. If the object is not + on any screen the returned position is (0,0). + */ + ::com::sun::star::awt::Point getLocationOnScreen (); + + /** Returns the size of this object's bounding box. + + @return + The returned size is the size of this object or empty if it is + not rendered on any screen. + */ + ::com::sun::star::awt::Size getSize(); + + /** Grabs the focus to this object. + +If this object can not accept the focus,
+ i.e. isFocusTraversable() returns `FALSE` for this
+ object then nothing happens. Otherwise the object will attempt to
+ take the focus. Nothing happens if that fails, otherwise the object
+ has the focus. This method is called requestFocus
in
+ the Java Accessibility API 1.4.
This interface serves two purposes: On the one hand it gives access + to the tree structure in which all accessible objects are + organized. Each node in this tree supports this interface. On the other + hand it gives access to objects that expose the represented content. + That are role, state, name, description, and relations to other objects. + Take an OK button of a dialog as an example. Its role is + AccessibleRole::BUTTON, its name is "OK", and its description + is something like "Accepts all changes made in the dialog".
+ + @since OOo 1.1.2 +*/ +interface XAccessibleContext : ::com::sun::star::uno::XInterface +{ + /** Return the number of children. + +Returns the number of accessible children of the object.
+ + @return + The returned value is non-negative. + */ + long getAccessibleChildCount(); + + /** Returns the i-th child of this object. + +The order in which the children are enumerated is implementation + dependent.
+ + @param i + The index may have any value. If it is outside the range from 0 + to n-1, with n being the number of children as returned by + XAccessibleContext::getAccessibleChild() an empty + reference is returned. + @return + If the object has an i-th child the returned value is a + reference to that child. Otherwise an empty reference is + returned. + @throws ::com::sun::star::lang::IndexOutOfBoundsException + If no child with the given index exists then an + ::com::sun::star::lang::IndexOutOfBoundsException + exception is thrown. + */ + XAccessible getAccessibleChild ([in] long i) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns the parent of this object. + +This function may be called for every node, including the root + node, of the accessible tree.
+ + @return + The returned reference points to a valid object for all but the + root node. If called for the root node an empty reference is + returned. + */ + XAccessible getAccessibleParent (); + + /** Returns the index of this object in its accessible parent. + +If you call getAccessibleChild on the object's parent with the + index returned by this function you get a reference to this + object.
+ + @return + The returned index is zero based. + */ + long getAccessibleIndexInParent (); + + /** Returns the role of this object. + +The role is a generic description of an objects function. The + relation between role and name is similar to the relation between + class and object.
+ + @return + The returned value is a role defined in the enumeration + AccessibleRole. + + @see AccessibleRole + for a list of the available roles. + */ + short getAccessibleRole (); + + /** Returns the object's description. + +Returns the object's localized description. The description should + complement the more generic descriptions given by an object's role + and name.
+ + @return + The returned string is the object's localized description. + */ + string getAccessibleDescription (); + + /** Return the object's localized name. + +See XAccessibleContext::getAccessibleRole()'s + documentation for the relation between an object's name and role. + Names should be unique, at least between children of the same + parent, although the uniqueness is neither enforced nor used inside + the API.
+ + @return + The returned string is the object's localized name. + */ + string getAccessibleName (); + + /** Returns the set of relations defined for this object. + +The returned set of relations is a copy of this object's relation + set: changing the returned object does not change this object's + relations.
+ +There are two ways to represent an empty list of relations: + Return an empty reference or return a valid object that contains an + empty list. + + @return + The returned value is either an empty reference or a reference to + a valid object that represents a copy of the objects list of + relations. + */ + XAccessibleRelationSet getAccessibleRelationSet (); + + /** Returns the set of states that are currently active for this + object. + +
The returned state set is a copy: Changing the returned state set + will not be reflected by changing the object's set of states. See + the documentation of XAccessibleStateSet for a + description of the individual states.
+ + @return + A reference to this object's state set or an empty reference if + states are not supported. + + @see XAccessibleStateSet + */ + XAccessibleStateSet getAccessibleStateSet (); + + /** Returns the locale of the component. + +This locale is used for example to determine the language to use + for the name and description texts.
+ + @return + If this object does not have a locale, the locale of its parent + is returned. If it does not have (yet) a parent it throws the + exception IllegalAccessibleComponentStateException. + + @throws IllegalAccessibleComponentStateException + when this object does not (yet) have a parent. + */ + ::com::sun::star::lang::Locale getLocale () + raises (IllegalAccessibleComponentStateException); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleContext2.idl b/offapi/com/sun/star/accessibility/XAccessibleContext2.idl new file mode 100644 index 000000000..e9d4feae1 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleContext2.idl @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_XAccessibleContext2_idl__ +#define __com_sun_star_accessibility_XAccessibleContext2_idl__ + +module com { module sun { module star { module accessibility { + +/** Implement this interface for exposing more aspects of a class's + content. + +This is an extension of XAccessibleContext to add getAccessibleId().
+ + @since LibreOffice 6.3 +*/ +interface XAccessibleContext2 : ::com::sun::star::accessibility::XAccessibleContext +{ + /** Return the object's identifier. + +This is not meant to be presented to the user, but to be an ID + which is stable over application development. Typically, this is + the gtkbuilder ID. Such an ID can then be used to identify a given + well-known accessible object independently from the current locale, + user-visible labelling, or dialog structure. This can then be used for + tailored screen reading (e.g. automatically announcing the content of a + well-known object), or for automatic regression testing (to check the + behavior of well-known objects). Uniqueness within the window is thus + desirable when returning a non-empty string.
+ + @return + The returned string is the object's identifier. + */ + string getAccessibleId (); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleContext3.idl b/offapi/com/sun/star/accessibility/XAccessibleContext3.idl new file mode 100644 index 000000000..8bc4dee3d --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleContext3.idl @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_XAccessibleContext3_idl__ +#define __com_sun_star_accessibility_XAccessibleContext3_idl__ + +module com { module sun { module star { module accessibility { + + interface XAccessible; + +/** Implement this interface to speed up operations when iterating over large amounts of children. + * + @since LibreOffice 6.4 +*/ +interface XAccessibleContext3 : ::com::sun::star::uno::XInterface +{ + /** Return the children. + +The order in which the children are enumerated is implementation + dependent.
+ */ + sequenceThis interface is typically used in conjunction with the + XAccessibleText interface and extents it about the ability + to modify the text represented by that interface.
+ + @since OOo 1.1.2 +*/ +interface XAccessibleEditableText + : ::com::sun::star::accessibility::XAccessibleText +{ + /** Copies the text range into the clipboard. + +The specified text between and including the two given indices is + copied into the system clipboard and is deleted afterwards from the + text represented by this object. This is equivalent to calling + first XAccessibleText::copyText() and then + XAccessibleEditableText::deleteText() with the given + start and end indices.
+ +The text indices are interpreted like those in the + XAccessibleText::getTextRange() method.
+ + @param nStartIndex + Start index of the text to moved into the clipboard. + The valid range is 0..length. + + @param nEndIndex + End index of the text to moved into the clipboard. + The valid range is 0..length. + + @return + Returns a flag that indicates whether the operation has been + executed successfully. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the indices are invalid + */ + boolean cutText ([in] long nStartIndex, [in] long nEndIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Pastes text from the clipboard. + +The text in the system clipboard is pasted into the text + represented by this object at the given index. This method is + similar to the XAccessibleEditableText::insertText() + method. If the index is not valid then the system clipboard text is + not inserted.
+ + @param nIndex + Index at which to insert the text from the system clipboard into + the text represented by this object. + The valid range is 0..length. + + @return + Returns a flag that indicates whether the operation has been + executed successfully. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is invalid + */ + boolean pasteText ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Deletes a range of text. + +The text between and including the two given indices is deleted + from the text represented by this object.
+ +The text indices are interpreted like those in the + XAccessibleText::getTextRange() method.
+ + @param nStartIndex + Start index of the text to be deleted. + The valid range is 0..length. + + @param nEndIndex + End index of the text to be deleted. + The valid range is 0..length. + + @return + Returns a flag that indicates whether the operation has been + executed successfully. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the indices are invalid + */ + boolean deleteText ([in] long nStartIndex, [in] long nEndIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Inserts text at the specified position. + +The specified string is inserted at the given index into the text + represented by this object.
+ + @param sText + Text that is inserted. + + @param nIndex + Index at which to insert the text. + The valid range is 0..length. + + @return + Returns a flag that indicates whether the operation has been + executed successfully. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the indices are invalid + */ + boolean insertText ([in] string sText, [in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Replaces text. + +The text between the two given indices is replaced + by the specified replacement string. This method is + equivalent to calling first + XAccessibleEditableText::deleteText() with the two + indices and afterwards calling + XAccessibleEditableText::insertText() with the + replacement text and the start index.
+ +The text indices are interpreted like those in the + XAccessibleText::getTextRange() method.
+ + @param nStartIndex + Start index of the text to be replaced. + The valid range is 0..length. + + @param nEndIndex + Start index of the text to be replaced. + The valid range is 0..length. + + @param sReplacement + The Text that replaces the text between the given indices. + + @return + Returns a flag that indicates whether the operation has been + executed successfully. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the indices are invalid + */ + boolean replaceText ([in] long nStartIndex, [in] long nEndIndex, + [in] string sReplacement) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Replaces the attributes of a text range by the given set of + attributes. + +Sets the attributes for the text between and including the two + given indices to those given. The old attributes of this text + portion are replaced by the new list of attributes.
+ +The text indices are interpreted like those in the + XAccessibleText::getTextRange() method.
+ + @param nStartIndex + Start index of the text whose attributes are modified. + The valid range is 0..length. + + @param nEndIndex + Start index of the text whose attributes are modified. + The valid range is 0..length. + + @param aAttributeSet + Set of attributes that replaces the old list of attributes of + the specified text portion. + + @return + Returns a flag that indicates whether the operation has been + executed successfully. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the indices are invalid + */ + boolean setAttributes ([in] long nStartIndex, [in] long nEndIndex, + [in] sequence<::com::sun::star::beans::PropertyValue> aAttributeSet) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Replaces the whole text with the given text. + +The text content of this object is set to the given string.
+ + @param sText + The new text that replaces the old text. + + @return + Returns a flag that indicates whether the operation has been + executed successfully. + */ + boolean setText ([in] string sText); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleEventBroadcaster.idl b/offapi/com/sun/star/accessibility/XAccessibleEventBroadcaster.idl new file mode 100644 index 000000000..a8fa56ea4 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleEventBroadcaster.idl @@ -0,0 +1,54 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_XAccessibleEventBroadcaster_idl__ +#define __com_sun_star_accessibility_XAccessibleEventBroadcaster_idl__ + +#includeThis interface provides extended access to retrieve information
+ concerning the graphical representation of an object. This interface
+ combines methods from the Java interfaces
+ javax.accessibility.AccessibleComponent
and
+ javax.accessibility.AccessibleExtendedComponent
.
This method stems from the Java interface
+ AccessibleExtendedComponent
.
This method stems from the Java interface
+ AccessibleExtendedComponent
.
Single hyperlinks correspond to simple <a href> tags. Groups + of hyperlinks are contained in client side image maps. Linked objects + and anchors are implementation dependent. This interface inherits the + XAccessibleAction interface. Especially that interface's + XAccessibleAction::getActionCount() method is needed to + obtain a maximum value for the indices passed to the + XAccessibleHyperlink::getAccessibleActionAnchor() and + XAccessibleHyperlink::getAccessibleActionObject() + methods.
+ +Furthermore, the object that implements this interface has to be + connected implicitly or explicitly with an object that implements the + XAccessibleText interface. The XAccessibleHyperlink::getStartIndex() and + XAccessibleHyperlink::getEndIndex() methods return + indices with respect to the text exposed by that interface.
+ + @since OOo 1.1.2 +*/ +interface XAccessibleHyperlink : + ::com::sun::star::accessibility::XAccessibleAction +{ + /** Returns an object that represents the link anchor, as appropriate + for that link. + +For an HTML link for example, this method would return the string + enclosed by the <&a href> tag.
+ + @param nIndex + This index identifies the anchor when, as in the case of an + image map, there is more than one link represented by this + object. The valid maximal index can be determined by calling + the XAccessibleAction::getActionCount() method. + + @return + If the index is not valid then an exception is thrown. + Otherwise it returns an implementation dependent value. + */ + any getAccessibleActionAnchor ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns an object that represents the link anchor, as appropriate + for that link. + +For an HTML link for example, this method would return the URL of + the <&a href> tag.
+ + @param nIndex + This index identifies the action object when, as in the case of + an image map, there is more than one link represented by this + object. The valid maximal index can be determined by calling + the XAccessibleAction::getActionCount() method. + + @return + If the index is not valid then an exception is thrown. + Otherwise it returns an implementation dependent value. + */ + any getAccessibleActionObject ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns the index at which the textual representation of the + hyperlink (group) starts. + +The returned value relates to the XAccessibleText + interface that owns this hyperlink.
+ + @return + The index relates to the text exposed by the + XAccessibleHypertext interface. + */ + long getStartIndex (); + + /** Returns the index at which the textual representation of the + hyperlink (group) ends. + +The returned value relates to the XAccessibleText + interface that owns this hyperlink.
+ + @return + The index relates to the text exposed by the + XAccessibleText interface. + */ + long getEndIndex (); + + /** Returns whether the document referenced by this links is + still valid. + +This is a volatile state that may change without further warning + like e.g. sending an appropriate event.
+ + @return + Returns `TRUE` if the referenced document is still valid and + `FALSE` otherwise. + */ + boolean isValid (); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleHypertext.idl b/offapi/com/sun/star/accessibility/XAccessibleHypertext.idl new file mode 100644 index 000000000..24e87b0ea --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleHypertext.idl @@ -0,0 +1,106 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_XAccessibleHypertext_idl__ +#define __com_sun_star_accessibility_XAccessibleHypertext_idl__ + +#includeThe XAccessibleHypertext interface is the main interface + to expose hyperlinks in a document, typically a text document, that are + used to reference other (parts of) documents. For supporting the + XAccessibleHypertext::getLinkIndex() method of this + interface and other character related methods of the + XAccessibleHyperlink interface, it is necessary to also + support the XAccessibleText interface.
+ + @see XAccessibleHyperlink, XAccessibleText + + @since OOo 1.1.2 +*/ +interface XAccessibleHypertext + : ::com::sun::star::accessibility::XAccessibleText +{ + /** Returns the number of links and link groups contained within this + hypertext document. + + @return + The number of links and link groups within this hypertext + document. Returns 0 if there is no link. + */ + long getHyperLinkCount (); + + /** Return the specified link. + +The returned XAccessibleHyperlink object + encapsulates the hyperlink and provides several kinds of information + describing it.
+ + @param nLinkIndex + This index specifies the hyperlink to return. + + @return + If the given index is valid, i.e. lies in the interval from 0 + to the number of links minus one, a reference to the specified + hyperlink object is returned. If the index is invalid then an + empty reference is returned. + */ + XAccessibleHyperlink getHyperLink ([in] long nLinkIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + + /** Returns the index of the hyperlink that is associated with this + character index. + +In a HTML document this is the case when a <a href> tag + spans (includes) the given character index.
+ + @param nCharIndex + Index of the character for which to return the link index. If + the XAccessibleText interface is used to represent + the text containing the link, then the character index is only + valid if it is greater than or equal to zero and lower than the + number of characters in the text. See that interface's + documentation for more details. + + @return + Returns the index of the hyperlink that is associated with this + character index, or throws an exception if there is no hyperlink + associated with this index. + + @see XAccessibleText. + */ + long getHyperLinkIndex ([in] long nCharIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleImage.idl b/offapi/com/sun/star/accessibility/XAccessibleImage.idl new file mode 100644 index 000000000..b63d182fb --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleImage.idl @@ -0,0 +1,78 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_XAccessibleImage_idl__ +#define __com_sun_star_accessibility_XAccessibleImage_idl__ + +#includeThis interface is used for a representation of images like icons of + buttons. The corresponding interface of the Java Accessibility API is + AccessibleIcon. This interface lets you retrieve an image's size and + description.
+ + @since OOo 1.1.2 +*/ +interface XAccessibleImage : ::com::sun::star::uno::XInterface +{ + /** Returns the localized description of the image. + +It depends on the usage of an image whether the description + should express the image's function (e.g. for icons) or the actual + content of the image (e.g. for image maps or non-iconic images + embedded into a document.)
+ + @return + Returns a localized string that describes the image's function + or content. + */ + string getAccessibleImageDescription (); + + /** Returns the height of the image. + +The height is returned in units specified by the parents + coordinate system.
+ + @return + Returns the image's height with respect to the parent's + coordinate system. + */ + long getAccessibleImageHeight (); + + /** Returns the width of the image. + +The width is returned in units specified by the parents + coordinate system.
+ + @return + Returns the image's width with respect to the parent's + coordinate system. + */ + long getAccessibleImageWidth (); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleKeyBinding.idl b/offapi/com/sun/star/accessibility/XAccessibleKeyBinding.idl new file mode 100644 index 000000000..9e03d7ddf --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleKeyBinding.idl @@ -0,0 +1,81 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_XAccessibleKeyBinding_idl__ +#define __com_sun_star_accessibility_XAccessibleKeyBinding_idl__ + +#includeThere can be zero, one, or more key bindings. Each key binding consists + of a sequence of ::com::sun::star::awt::KeyStroke + objects. The association of an action with a key binding is established + by the XAccessibleAction interface returning an + XAccessibleKeyBinding object.
+ +A key binding describes alternative ways how to invoke an action with + pressing one or more keys after each other. Each individual sequence of + key strokes
+ + @since OOo 1.1.2 +*/ +interface XAccessibleKeyBinding : ::com::sun::star::uno::XInterface +{ + /** Return the number of available key bindings. + @return + The returned value may be 0 to indicate that there are no key + bindings or the positive number of the available key bindings. + */ + long getAccessibleKeyBindingCount (); + + /** The returned sequence of key strokes describes one method to invoke + the associated action (the one from which you obtained the object at + which you called this method) by pressing keys. The keys specified + by each of the returned key strokes have to be pressed at the same + time (the Control-key and the A-key for example). The keys of + one key stroke have to be released before pressing those of the + next. The order of the key strokes in the sequence define the order + in which to press them. + @param nIndex + The index selects one of alternative key bindings. It has to + non-negative and smaller then the number of key bindings as + returned by the getAccessibleKeyBindingCount() + method. + @return + The returned sequence of key strokes specifies one way to invoke + the associated action. The sequence may be empty (but should + not be; better not to return such a key binding at all). + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is not valid. + */ + sequence<::com::sun::star::awt::KeyStroke> getAccessibleKeyBinding ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleMultiLineText.idl b/offapi/com/sun/star/accessibility/XAccessibleMultiLineText.idl new file mode 100644 index 000000000..6b81009ab --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleMultiLineText.idl @@ -0,0 +1,136 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_XAccessibleMultiLineText_idl__ +#define __com_sun_star_accessibility_XAccessibleMultiLineText_idl__ + +#includeThis interface is typically used in conjunction with the + XAccessibleText interface and extents it with a notion + of line numbers
+ + @since OOo 3.0 +*/ + +/// not yet published +interface XAccessibleMultiLineText + : ::com::sun::star::accessibility::XAccessibleText +{ + /** Returns the line number at the specified index. + +For a text object that is spread over multiple lines, this method + provides a mapping from a text index to the corresponding line number. +
+ + @param nIndex + Index for which the line number should be returned. + The valid range is 0..length. + + @return + Returns the line number of the specified text index. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is invalid. + */ + long getLineNumberAtIndex([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns the text of the specified line. + +Returns the substring of text that makes up the specified line + number.
+ +The number of lines can be obtained by calling + XAccessibleMultiLineText::getLineNumberAtIndex() + with the index of the last character. In a loop, the last line + has been reached when TextSegment::SegmentEnd + of the returned value is equal to the index of the last + character of the text.
+ + @param nLineNo + The number of the line to return the substring from. + The valid range is 0..getLineNumberAtIndex(getCharacterCount()). + + @return + Returns the requested text portion. This portion may be empty + or invalid when no appropriate text portion is found. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the line number is invalid + */ + + TextSegment getTextAtLineNumber([in] long nLineNo) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns the text of the line in which the caret is located. + +The substring returned will most of the time be identical to + calling XAccessibleText::getTextAtIndex() with + the index returned by XAccessibleText::getCaretPosition() + and type AccessibleTextType::LINE beside the + following special case:
+ +Some text implementations place the caret at the end of the current + line when the End key gets pressed. Since the index of this position + is identical to the one of the first character of the following line, + XAccessibleMultiLineText::getLineNumberAtIndex() will + return the line following the current one in this case.
+ + @return + Returns the requested text portion. This portion may be empty + or invalid if the paragraph object does not have a valid caret + position. + */ + + TextSegment getTextAtLineWithCaret(); + + /** Returns the number of the line in which the caret is located. + +The line number returned will most of the time be identical to + calling XAccessibleMultiLineText::getLineNumberAtIndex() + with the index returned by XAccessibleText::getCaretPosition() + beside the following special case:
+ +Some text implementations place the caret at the end of the current + line when the End key gets pressed. Since the index of this position + is identical to the one of the first character of the following line, + XAccessibleMultiLineText::getLineNumberAtIndex() will + return the line following the current one in this case.
+ + @return + Returns the index of the line in which the caret is located or -1 + if the paragraph does not have a valid caret position. + */ + + long getNumberOfLineWithCaret(); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleRelationSet.idl b/offapi/com/sun/star/accessibility/XAccessibleRelationSet.idl new file mode 100644 index 000000000..95db6b1e5 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleRelationSet.idl @@ -0,0 +1,100 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_XAccessibleRelationSet_idl__ +#define __com_sun_star_accessibility_XAccessibleRelationSet_idl__ + +#includeSuch relation are modeled with the AccessibleRelation + structure. This interface is used for representing sets of relations + between Accessible objects. Most of the convenience + methods of the corresponding AccessibleRelationSet interface of the Java + Accessibility API have been removed from this interface in order to + clean it up. These methods are add(), + addAll(), clear(), and + remove(). The other methods have been renamed to achieve + a greater conformance with the other accessibility interfaces.
+ + @since OOo 1.1.2 +*/ +interface XAccessibleRelationSet : ::com::sun::star::uno::XInterface +{ + /** Returns the number of relations in this relation set. + + @return + Returns the number of relations or zero if there are none. + */ + long getRelationCount (); + + /** Returns the relation of this relation set that is specified by + the given index. + + @param nIndex + This index specifies the relation to return. + + @return + For a valid index, i.e. inside the range 0 to the number of + relations minus one, the returned value is the requested + relation. If the index is invalid then the returned relation + has the type INVALID. + + */ + AccessibleRelation getRelation ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Tests whether the relation set contains a relation matching the + specified key. + + @param aRelationType + The type of relation to look for in this set of relations. This + has to be one of the constants of + AccessibleRelationType. + + @return + Returns `TRUE` if there is a (at least one) relation of the + given type and `FALSE` if there is no such relation in the set. + */ + boolean containsRelation ([in] short aRelationType); + + /** Retrieve and return the relation with the given relation type. + + @param aRelationType + The type of the relation to return. This has to be one of the + constants of AccessibleRelationType. + + @return + If a relation with the given type could be found than (a copy + of) this relation is returned. Otherwise a relation with the + type INVALID is returned. + */ + AccessibleRelation getRelationByType ([in] short aRelationType); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleSelection.idl b/offapi/com/sun/star/accessibility/XAccessibleSelection.idl new file mode 100644 index 000000000..0d9d18820 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleSelection.idl @@ -0,0 +1,153 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_XAccessibleSelection_idl__ +#define __com_sun_star_accessibility_XAccessibleSelection_idl__ + +#includeThis interface is the standard mechanism to obtain and modify the + currently selected children. Every object that has children that can be + selected should support this interface.
+ +The XAccessibleSelection interface has to be implemented + in conjunction with the XAccessibleContext interface that + provides the children on which the first operates.
+ +It depends on the class implementing this interface, whether it + supports single or multi selection.
+ + @since OOo 1.1.2 +*/ +interface XAccessibleSelection : ::com::sun::star::uno::XInterface +{ + /** Selects the specified Accessible child of the + object. + +Depending on the implementing class the child is added to the + current set a selected children (multi selection) or a previously + selected child is deselected first (single selection).
+ + @param nChildIndex + Index of the child which is to add to the selection. This index + refers to all the children of this object. + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the given index does not lie in the valid range of 0 up to + the result of + XAccessibleContext::getAccessibleChildCount()-1. + */ + void selectAccessibleChild ([in] long nChildIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Determines if the specified child of this object is selected. + + @param nChildIndex + Index of the child for which to detect whether it is selected. + This index refers to all the children of this object. + + @return + Returns `TRUE` if the specified child is selected and `FALSE` + if it is not selected. + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the given index does not lie in the valid range of 0 up to + the result of + XAccessibleContext::getAccessibleChildCount()-1. + */ + boolean isAccessibleChildSelected ([in] long nChildIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Clears the selection, so that no children of the + object are selected. + */ + void clearAccessibleSelection (); + + /** Select all children. + +Causes every child of the object to be selected if the object + supports multiple selections. If multiple selection is not + supported then the first child, if it exists, is selected and all + other children are deselected.
+ */ + void selectAllAccessibleChildren (); + + /** Returns the number of Accessible children that are currently + selected. + +This number specifies the valid interval of indices that can be + used as arguments for the method + XAccessibleSelection::getSelectedAccessibleChild().
+ + @return + Returns the number of selected children of this object or 0 if + no child is selected. + */ + long getSelectedAccessibleChildCount (); + + /** Returns the specified selected Accessible child. + + @param nSelectedChildIndex + This index refers only to the selected children, not to all the + children of this object. Even if all children are selected, the + indices enumerating the selected children need not be the same + as those enumerating all children. If only single selection is + supported the only valid value is 0. + + @return + If the index is valid, i.e. not negative and lower than the + number of selected children, then a valid reference to the + corresponding XAccessible child is returned. + Otherwise an exception is thrown. + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the given index does not lie in the valid range of 0 up to + the result of + XAccessibleRelationSet::getAccessibleChildCount()-1. + */ + XAccessible getSelectedAccessibleChild ([in] long nSelectedChildIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Removes the specified child from the set of this object's + selected children. Note that not all applications support + deselection: calls to this method may be silently ignored. + + @param nChildIndex + This index refers to all children not just the selected ones. + If the specified child is not selected or it can not be + deselected for any reason then the method call is silently + ignored. + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the given index does not lie in the valid range of 0 up to, + but not including, the result of + XAccessibleContext::getAccessibleChildCount(). + */ + void deselectAccessibleChild ([in] long nChildIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleStateSet.idl b/offapi/com/sun/star/accessibility/XAccessibleStateSet.idl new file mode 100644 index 000000000..910caf843 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleStateSet.idl @@ -0,0 +1,98 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_XAccessibleStateSet_idl__ +#define __com_sun_star_accessibility_XAccessibleStateSet_idl__ + +#includeThe interface XAccessibleStateSet represents a set of + states of an accessible object. It can hold any combination of states + defined by the constants collection + AccessibleStateType.
+ + @since OOo 1.1.2 +*/ +interface XAccessibleStateSet : ::com::sun::star::uno::XInterface +{ + /** Checks whether the current state set is empty. + + @return + Returns `TRUE` if there is no state in this state set and + `FALSE` if there is at least one set state in it. + */ + boolean isEmpty (); + + /** Checks if the given state is a member of the state set of the called + object. + + @param aState + The state for which to check membership. This has to be one of + the constants of AccessibleStateType. + + @return + Returns `TRUE` if the given state is a member of this object's + state set and `FALSE` otherwise. + */ + boolean contains ([in] short aState); + + /** Checks if all of the given states are in the state set of the called + object. + + @param aStateSet + This sequence of states is interpreted as set and every of its + members, duplicates are ignored, is checked for membership in + this object's state set. Each state has to be one of the + constants of AccessibleStateType. + + @return + Returns `TRUE` if all states of the given state set are members + of this object's state set. `FALSE` is returned if at least + one of the states in the given state is not a member of this + object's state set. + */ + boolean containsAll ([in] sequenceThe purpose of this function is to reduce the communication + between accessibility objects and AT. Without this function an + AT-Tool had to call contains() for every state + type. Now a single call is sufficient.
+ + @return + The returned sequence contains one entry for every currently set + state. This entry is the id of that state. The order of the + states in the sequence is undefined. + */ + sequenceThe XAccessibleTable interface is used to represent
+ two-dimensional tables. This interface combines the two interfaces
+ javax.accessibility.AccessibleTable
and
+ javax.accessibility.AccessibleExtendedTable
of the Java Accessibility API
+ (version 1.4).
All XAccessible objects that represent cells or + cell-clusters of a table have to be at the same time children of the + table. This is necessary to be able to convert row and column indices + into child indices and vice versa with the methods + XAccessibleTable::getAccessibleIndex(), + XAccessibleTable::getAccessibleRow(), and + XAccessibleTable::getAccessibleColumn().
+ +The range of valid coordinates for this interface are implementation + dependent. However, that range includes at least the intervals from the + from the first row or column with the index 0 up to the last (but not + including) used row or column as returned by + XAccessibleTable::getAccessibleRowCount() and + XAccessibleTable::getAccessibleColumnCount(). In case of + the Calc the current range of valid indices for retrieving data include + the maximal table size--256 columns and 32000 rows--minus one.
+ + @since OOo 1.1.2 +*/ +interface XAccessibleTable : ::com::sun::star::uno::XInterface +{ + /** Returns the number of used rows in the table. + +The implementation, however, may allow the access of columns + beyond this number.
+ + @return + Returns the number of used rows in the table or 0 for an empty + table. + */ + long getAccessibleRowCount (); + + /** Returns the number of used columns in the table. + +The implementation, however, may allow the access of columns + beyond this number.
+ + @return + Returns the number of used columns in the table or 0 for an empty + table. + */ + long getAccessibleColumnCount (); + + /** Returns the description text of the specified row in the + table. + + @param nRow + The index of the row for which to retrieve the description. + + @return + Returns the description text of the specified row in the table + if such a description exists. Otherwise an empty string is + returned. + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the specified row index is not valid, i.e. lies not inside + the valid range of 0 up to + XAccessibleTable::getAccessibleRowCount() - 1. + + */ + string getAccessibleRowDescription ([in] long nRow) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns the description text of the specified column in the + table. + + @param nColumn + The index of the column for which to retrieve the description. + + @return + Returns the description text of the specified row in the table + if such a description exists. Otherwise an empty string is + returned. + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the specified column index is not valid, i.e. lies not inside + the valid range of 0 up to + XAccessibleTable::getAccessibleColumnCount() - 1. + */ + string getAccessibleColumnDescription ([in] long nColumn) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns the number of rows occupied by the Accessible at the + specified row and column in the table. + +The result differs from 1 if the specified cell spans multiple + rows.
+ + @param nRow + Row index of the accessible for which to return the column + extent. + + @param nColumn + Column index of the accessible for which to return the column + extent. + + @return + Returns the row extent of the specified cell. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the specified row index is not valid, i.e. lies not inside + the valid range of 0 up to + XAccessibleTable::getAccessibleRowCount() - 1. + */ + long getAccessibleRowExtentAt ([in] long nRow, [in] long nColumn) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns the number of columns occupied by the Accessible at the + specified row and column in the table. + +The result differs from 1 if the specified cell spans multiple + columns.
+ + @param nRow + Row index of the accessible for which to return the column + extent. + + @param nColumn + Column index of the accessible for which to return the column + extent. + + @return + Returns the column extent of the specified. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the specified column index is not valid, i.e. lies not inside + the valid range of 0 up to + XAccessibleTable::getAccessibleColumnCount() - 1. + */ + long getAccessibleColumnExtentAt ([in] long nRow, [in] long nColumn) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns the row headers as an XAccessibleTable + object. + +Content and size of the returned table are implementation + dependent.
+ + @return + Returns always a valid reference to an + XAccessibleTable object. + */ + XAccessibleTable getAccessibleRowHeaders (); + + /** Returns the column headers as an XAccessibleTable + object. + +Content and size of the returned table are implementation + dependent.
+ + @return + Returns always a valid reference to an + XAccessibleTable object. + */ + XAccessibleTable getAccessibleColumnHeaders (); + + /** Returns a list of the indices of completely selected rows in a + table. + + @return + The returned sequence contains indices of all completely + selected rows in the table. This sequence is in ascending + order. If no row is selected then the sequence is empty. + */ + sequenceThis method has been renamed from the Java name
+ getAccessibleAt
to
+ XAccessibleTable::getAccessibleCellAt() to avoid
+ ambiguities with the
+ XAccessibleComponent::getAccessibleAt() method when
+ accessed, for instance, from StarBasic.
This is the same index that would be returned by calling + XAccessibleContext::getAccessibleIndexInParent() for + that accessible object.
+ + @param nRow + Row index of the accessible object for which to return the child + index. + + @param nColumn + Row index of the accessible object for which to return the child + index. + + @return + Child index of the specified accessible object or -1 if one or + both of the given indices is/are invalid. + */ + long getAccessibleIndex ([in] long nRow, [in] long nColumn) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Translate the given child index into the corresponding row + index. + + @param nChildIndex + Index of the child of the table for which to return the row + index. + + @return + Returns the row index of the cell of the specified child or the + index of the first row if the child spans multiple rows. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if nChildIndex addresses an invalid row. + */ + long getAccessibleRow ([in] long nChildIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Translate the given child index into the corresponding column + index. + + @param nChildIndex + Index of the child of the table for which to return the column + index. + + @return + Returns the column index of the cell of the specified child or + the index of the first column if the child spans multiple + columns. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if nChildIndex addresses an invalid column. + */ + long getAccessibleColumn ([in] long nChildIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleTableSelection.idl b/offapi/com/sun/star/accessibility/XAccessibleTableSelection.idl new file mode 100644 index 000000000..a5b3d2f26 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleTableSelection.idl @@ -0,0 +1,42 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_accessibility_XAccessibleTableSelection_idl__ +#define __com_sun_star_accessibility_XAccessibleTableSelection_idl__ + +#includeThe XAccessibleText interface should be implemented by + all UNO components that present textual information on the display like + buttons, text entry fields, or text portions of the document window. + The interface provides access to the text's content, attributes, and + spatial location. However, text can not be modified with this + interface. That is the task of the XAccessibleEditableText + interface.
+ +The text length, i.e. the number of characters in the text, is + returned by XAccessibleText::getCharacterCount(). + All methods that operate on particular characters (e.g. + XAccessibleText::getCharacterAt()) use character + indices from 0 to length-1. All methods that operate on character + positions (e.g. XAccessibleText::getTextRange()) + use indices from 0 to length.
+ +Please note that accessible text does not necessarily support + selection. In this case it should behave as if there where no + selection. An empty selection is used for example to express the + current cursor position.
+ + @since OOo 1.1.2 +*/ +interface XAccessibleText : ::com::sun::star::uno::XInterface +{ + /** Return the position of the caret. + +Returns the offset of the caret. The caret is often called text + cursor. The caret is actually the position between two characters. + Its position/offset is that of the character to the right of it.
+ + @return + The returned offset is relative to the text represented by this + object. + */ + long getCaretPosition (); + + /** Set the position of the caret. + +The caret is often called text cursor. The caret is actually the + position between two characters. Its position/offset is that of the + character to the right of it.
+ +Setting the caret position may or may not alter the current + selection. A change of the selection is notified to the + accessibility event listeners with an + AccessibleEventId::ACCESSIBLE_SELECTION_EVENT.
+ +When the new caret position differs from the old one (which, of + course, is the standard case) this is notified to the accessibility + event listeners with an + AccessibleEventId::ACCESSIBLE_CARET_EVENT.
+ + @param nIndex + The new index of the caret. This caret is actually placed to + the left side of the character with that index. An index of 0 + places the caret so that the next insertion goes before the + first character. An index of getCharacterCount() + leads to insertion after the last character. + + @return + Returns `TRUE` if the caret has been moved and `FALSE` + otherwise. A `TRUE` value does not necessarily mean that the + caret has been positioned exactly at the required position. + If that position lies inside a read-only area the caret is + positioned before or behind it. Listen to the caret event to + determine the new position. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is not valid. + */ + boolean setCaretPosition ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Return the character at the specified position. + +Returns the character at the given index.
+ + @param nIndex + The index of the character to return. + The valid range is 0..length-1. + + @return + the character at the index nIndex. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is invalid + */ + char getCharacter ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Get the attribute set for the specified position. + +Returns a set of attributes that are associated for the character + at the given index. To prevent the method from returning possibly + large sets of attributes that the caller is not interested in the + caller has to provide a list of attributes that he wants to be + returned.
+ + @param nIndex + The index of the character for which to return its attributes. + The valid range is 0..length-1. + + @param aRequestedAttributes + This string sequence defines the set of attributes that the + caller is interested in. When there are attributes defined that + are not listed in the sequence then they are not returned. When + there are requested attributes that are not defined for the + character then they are ignored, too. + +An empty sequence signals the callers interest in all the + attributes. This is useful in two cases: a) Simply as a way to + avoid passing a potentially large array to the called object or + b) when the caller does not know what attributes the called + objects supports but is interested in all of them + nevertheless.
+ + @return + Returns the explicitly or implicitly (empty + aRequestedAttributes argument) requested attributes + of the specified character. Each attribute is represented by a + ::com::sun::star::beans::PropertyValue + object. The returned list of attribute descriptions contains + all attributes that are both members of the sequence of + requested attributes and are defined for the character at the + specified index. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is invalid + + @see CharacterProperties + */ + sequence<::com::sun::star::beans::PropertyValue> + getCharacterAttributes ( + [in] long nIndex, + [in] sequenceReturns the bounding box of the indexed character.
+ +The virtual character after the last character of the represented
+ text, i.e. the one at position length is a special case. It
+ represents the current input position and will therefore typically
+ be queried by AT more often than other positions. Because it does
+ not represent an existing character its bounding box is defined in
+ relation to preceding characters. It should be roughly equivalent to
+ the bounding box of some character when inserted at the end of the
+ text. Its height typically being the maximal height of all the
+ characters in the text or the height of the preceding character, its
+ width being at least one pixel so that the bounding box is not
+ degenerate.
+ Note that the index "length" is not always valid. Whether it is
+ or not is implementation dependent. It typically is when text is
+ editable or otherwise when on the screen the caret can be placed
+ behind the text. You can be sure that the index is valid after you
+ have received an AccessibleEventId::CARET event
+ for this index.
Returns the number of characters in the text represented by this + object or, in other words, the text length.
+ + @return + Returns the number of characters of this object's text. A zero + value indicates an empty text. + */ + long getCharacterCount (); + + + /** Return the text position for the specified screen position. + +Given a point in local coordinates, i.e. relative to the + coordinate system of the object, return the zero-based index of + the character under that point. The same functionality could be + achieved by using the bounding boxes for each character as returned + by XAccessibleText::getCharacterBounds(). The method + XAccessibleText::getIndexAtPoint(), however, can be + implemented in a more efficient way.
+ + @param aPoint + The position for which to look up the index of the character + that is rendered on to the display at that point. + + @return + Index of the character under the given point or -1 if the point + is invalid or there is no character under the point. + */ + long getIndexAtPoint ([in] ::com::sun::star::awt::Point aPoint); + + /** Return the selected text. + +Returns the portion of the text that is selected.
+ + @return + The returned text is the selected portion of the object's text. + If no text is selected when this method is called or when + selection is not supported an empty string is returned. + */ + string getSelectedText (); + + /** Return the position of the start of the selection. + +Returns the index of the start of the selected text.
+ + @return + If there is no selection or selection is not supported the + position of selection start and end will be the same undefined + value. + */ + long getSelectionStart (); + + /** Return the position of the end of the selection. + +Returns the index of the end of the selected text.
+ + @return + If there is no selection or selection is not supported the + position of selection start and end will be the same undefined + value. + */ + long getSelectionEnd (); + + /** Set a new selection. + +Sets the selected text portion according to the given indices. + The old selection is replaced by the new selection.
+ +The selection encompasses the same string of text that + XAccessibleText::getTextRange() would have + selected. See there for details.
+ +Setting the selection may or may not change the caret position. + Typically the caret is moved to the position after the second + argument. When the caret is moved this is notified to the + accessibility event listeners with an + AccessibleEventId::ACCESSIBLE_CARET_EVENT.
+ + @param nStartIndex + The first character of the new selection. + The valid range is 0..length. + + @param nEndIndex + The position after the last character of the new selection. + The valid range is 0..length. + + @return + Returns `TRUE` if the selection has been set successfully and + `FALSE` otherwise or when selection is not supported. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the indices are invalid + */ + boolean setSelection ([in] long nStartIndex, [in] long nEndIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Return the whole text. + +Returns the complete text. This is equivalent to a call to
+ XAccessibleText::getTextRange() with the arguments
+ zero and getCharacterCount()-1
.
Returns the substring between the two given indices.
+ +The substring starts with the character at nStartIndex + (inclusive) and up to the character at nEndIndex (exclusive), + if nStartIndex is less or equal nEndIndex. If nEndIndex is + lower than nStartIndex, the result is the same as a call with + the two arguments being exchanged.
+ +The whole text can be requested by passing the indices zero and
+ getCharacterCount()
. If both indices have the same
+ value, an empty string is returned.
Returns the substring of the specified text type that contains + the character at the given index, if any. For example, given the + text type AccessibleTextType::WORD, the word + which contains the character at position nIndex is returned, or an + empty string if no word is found at the that position.
+ + @param nIndex + Index of the character whose containing text portion is to be + returned. + The valid range is 0..length. + + @param nTextType + The type of the text portion to return. See + AccessibleTextType for the complete list. + + @return + Returns the requested text portion. This portion may be empty + or invalid when no appropriate text portion is found or text + type is invalid. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is invalid + @throws ::com::sun::star::lang::IllegalArgumentException + if the given text type is not valid. + */ + TextSegment getTextAtIndex([in] long nIndex, [in] short nTextType) + raises (::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::IllegalArgumentException); + + /** Get a text portion before the given position. + +Returns the substring of the specified text type that is + located before the given character and does not include + it. The result of this method should be same as a result for + XAccessibleText::getTextAtIndex() with a + suitably decreased index value.
+ +For example, if text type is + AccessibleTextType::WORD, then the complete word + that is closest to and located before nIndex is returned.
+ +If the index is valid, but no suitable word (or other text + type) is found, an empty text segment is returned.
+ + @param nIndex + Index of the character for which to return the text part before + it. The index character will not be part of the returned + string. + The valid range is 0..length. + + @param nTextType + The type of the text portion to return. See + AccessibleTextType for the complete list. + + @return + Returns the requested text portion. This portion may be empty + or invalid when no appropriate text portion is found or text + type is invalid. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is invalid. + @throws ::com::sun::star::lang::IllegalArgumentException + if the given text type is not valid. + */ + TextSegment getTextBeforeIndex([in] long nIndex, [in] short nTextType) + raises (::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::IllegalArgumentException); + + /** Get a text portion behind the given position. + +Returns the substring of the specified text type that is + located after the given character and does not include + it. The result of this method should be same as a result for + XAccessibleText::getTextAtIndex() with a + suitably increased index value.
+ +For example, if text type is + AccessibleTextType::WORD, then the complete word + that is closest to and located behind nIndex is returned.
+ +If the index is valid, but no suitable word (or other text + type) is found, an empty string is returned.
+ + @param nIndex + Index of the character for which to return the text part after + it. The index character will be part of the returned string. + The valid range is 0..length. + + @param nTextType + The type of the text portion to return. See + AccessibleTextType for the complete list. + + @return + Returns the requested text portion. This portion may be empty + or invalid when no appropriate text portion is found or text + type is invalid. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is invalid + @throws ::com::sun::star::lang::IllegalArgumentException + if the given text type is not valid. + */ + TextSegment getTextBehindIndex([in] long nIndex, [in] short nTextType) + raises (::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::IllegalArgumentException); + + /** Copy the specified text into the clipboard. + +Copy the specified text into the clipboard. The text that is + copied is the same text that would have been selected by the + XAccessibleText::getTextRange() method.
+ +The other clipboard related methods + XAccessibleEditableText::cutText() and + XAccessibleEditableText::deleteText() can be found in + the XAccessibleEditableText because of their + destructive nature.
+ + @param nStartIndex + Start index of the text to copied into the clipboard. + The valid range is 0..length. + + @param nEndIndex + End index of the text to copied into the clipboard. + The valid range is 0..length. + + @return + Returns `TRUE` if the specified text has been copied + successfully into the clipboard. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the indices are invalid + */ + boolean copyText ([in] long nStartIndex, [in] long nEndIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Scroll the specified text to make it visible on screen. + + @param nStartIndex + Start index of the text to scroll. + The valid range is 0..length. + + @param nEndIndex + End index of the text to scroll. + The valid range is nStartIndex..length. + + @param aScrollType + Type of scroll to perform. See AccessibleScrollType for the + complete list. + + @return + Returns `TRUE` if the specified text has been scrolled + successfully. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the indices are invalid + + @since LibreOffice 7.0 + */ + boolean + scrollSubstringTo ([in] long nStartIndex, [in] long nEndIndex, + [in] AccessibleScrollType aScrollType) + raises (::com::sun::star::lang::IndexOutOfBoundsException); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleTextAttributes.idl b/offapi/com/sun/star/accessibility/XAccessibleTextAttributes.idl new file mode 100644 index 000000000..f8d459be6 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleTextAttributes.idl @@ -0,0 +1,98 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_XAccessibleTextAttributes_idl__ +#define __com_sun_star_accessibility_XAccessibleTextAttributes_idl__ + +#includeReturns a set of all default paragraph and default character + attributes that are associated for the text. To prevent the method + from returning possibly large sets of attributes that the caller + is not interested in the caller can provide a list of attributes + that he wants to be returned.
+ + @param RequestedAttributes + This string sequence defines the set of attributes that the + caller is interested in. When there are requested attributes + that are not defined for the text then they are ignored. + +When the sequence is empty all attributes are returned.
+ + @return + Returns the requested attributes of the text. Each attribute + is represented by a ::com::sun::star::beans::PropertyValue + object. + */ + sequence<::com::sun::star::beans::PropertyValue> + getDefaultAttributes ( [in] sequenceReturns a set of character attributes that are associated for + the character at the given index and are directly set or are set + via a character style. To prevent the method from returning all of + these attributes the caller can provide a list of attributes + that he wants to be returned.
+ + @param Index + The index of the character for which to return its attributes. + The valid range is 0..length of text-1. + + @param RequestedAttributes + This string sequence defines the set of attributes that the + caller is interested in. When there are requested attributes + that are not defined for the text then they are ignored. + +When the sequence is empty all attributes are returned.
+ + @return + Returns the requested attributes of the specified character. + Each attribute is represented by a + ::com::sun::star::beans::PropertyValue object. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is invalid + */ + sequence<::com::sun::star::beans::PropertyValue> + getRunAttributes ( [in] long Index, + [in] sequenceThe XAccessibleTextMarkup interface is the main interface + to expose text markups in a text, typically of a text document, that are + used to reference other (parts of) documents. For supporting the + XAccessibleTextMarkup::getTextMarkupIndex() method of this + interface and other character related methods of the + XAccessibleTextMarkup interface, it is necessary to also + support the XAccessibleText interface.
+ + @see XAccessibleText + + @since OOo 3.0 +*/ +interface XAccessibleTextMarkup + : ::com::sun::star::accessibility::XAccessibleText +{ + /** Returns the number of text markup of the given text markup type + of a text. + +Throws IllegalArgumentException, if given text + markup type is out of valid range.
+ + @param TextMarkupType + This specifies the type of text markups, whose count should + be returned - see TextMarkupType. + + @return + The number of text markup of the given text markup type. + Returns 0 if there is no text markup. + */ + long getTextMarkupCount ( [in] long TextMarkupType ) + raises (::com::sun::star::lang::IllegalArgumentException); + + /** Returns the text segment of the text markup of the given index and + of the given text mark type + +Throws IndexOutOfBoundsException, if given index + is out of valid range.
+Throws IllegalArgumentException, if given text + markup type is out of valid range.
+ + @param TextMarkupIndex + This index specifies the text markup to return. + + @param TextMarkupType + This specifies the type of the text markup to be returned - see + TextMarkupType. + + @return + If the given index is in range [0..getTextMarkupCount(TextMarkupType)-1], + the text segment - see TextSegment - of the text markup + of the given text markup type is returned. + */ + TextSegment getTextMarkup ( [in] long TextMarkupIndex, + [in] long TextMarkupType ) + raises (::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::IllegalArgumentException); + + /** returns a sequence of the text segments of the text markups at the given + character index and of the given text markup type. + +Throws IndexOutOfBoundsException, if given character + index is out of range [0..number of characters in the text).
+Throws IllegalArgumentException, if given text + markup type is out of valid range.
+ + @param CharIndex + This index specifies the character index in the text. + + @param TextMarkupType + This specifies the type of the text markups to be returned - see + TextMarkupType. + + @return + If character index is in range [0..number of characters in the text-1], + a sequence of TextSegments of the text markups at + given character index of the given text markup type are returned. + The sequence is empty, if no such text markup is found. + */ + sequenceThe XAccessibleValue interface represents a single + numerical value and should be implemented by any class that supports + numerical value like scroll bars and spin boxes. This interface lets + you access the value and its upper and lower bounds.
+ + @since OOo 1.1.2 +*/ +interface XAccessibleValue : ::com::sun::star::uno::XInterface +{ + /** Returns the value of this object as a number. + +The exact return type is implementation dependent. Typical types + are long and double.
+ + @return + Returns the current value represented by this object. + */ + any getCurrentValue (); + + /** Sets the value of this object to the given number. + +The argument is clipped to the valid interval whose upper and + lower bounds are returned by the methods + getMaximumAccessibleValue() and + getMinimumAccessibleValue(), i.e. if it is lower than + the minimum value the new value will be the minimum and if it is + greater than the maximum then the new value will be the maximum.
+ + @param aNumber + The new value represented by this object. The set of admissible + types for this argument is implementation dependent. + + @return + Returns `TRUE` if the new value could successfully be set and + `FALSE` otherwise. + */ + boolean setCurrentValue ([in] any aNumber); + + /** Returns the maximal value that can be represented by this object. + +The type of the returned value is implementation dependent. It + does not have to be the same type as that returned by + getCurrentAccessibleValue().
+ + @return + Returns the maximal value in an implementation dependent type. + If this object has no upper bound then an empty object is + returned. + */ + any getMaximumValue (); + + /** Returns the minimal value that can be represented by this object. + +The type of the returned value is implementation dependent. It + does not have to be the same type as that returned by + getCurrentAccessibleValue().
+ + @return + Returns the minimal value in an implementation dependent type. + If this object has no lower bound then an empty object is + returned. + */ + any getMinimumValue (); + + /** Returns the minimal increment by which the value represented by this + object can be adjusted. + +The type of the returned value is implementation dependent. It + does not have to be the same type as that returned by + getCurrentAccessibleValue().
+ + @return + Returns the minimal increment value in an implementation dependent type. + If this object has no minimum increment value, then an empty object is + returned. + + @since LibreOffice 7.3 + */ + any getMinimumIncrement (); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XMSAAService.idl b/offapi/com/sun/star/accessibility/XMSAAService.idl new file mode 100644 index 000000000..42b259196 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XMSAAService.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_accessibility_XMSAASERVICE_idl__ +#define __com_sun_star_accessibility_XMSAASERVICE_idl__ + +#include