diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 16:51:28 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 16:51:28 +0000 |
commit | 940b4d1848e8c70ab7642901a68594e8016caffc (patch) | |
tree | eb72f344ee6c3d9b80a7ecc079ea79e9fba8676d /offapi/com/sun/star/accessibility | |
parent | Initial commit. (diff) | |
download | libreoffice-upstream.tar.xz libreoffice-upstream.zip |
Adding upstream version 1:7.0.4.upstream/1%7.0.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
44 files changed, 5772 insertions, 0 deletions
diff --git a/offapi/com/sun/star/accessibility/Accessible.idl b/offapi/com/sun/star/accessibility/Accessible.idl new file mode 100644 index 000000000..c3d5d5e52 --- /dev/null +++ b/offapi/com/sun/star/accessibility/Accessible.idl @@ -0,0 +1,50 @@ +/* -*- 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__ + +module com { module sun { module star { module accessibility { + + interface XAccessible; + +/** Every class has to support this service in order to be accessible. + + <p>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.</p> + + <p>Service <code>Accessible</code> is just a wrapper for the interface + <code>XAccessible</code>. See the interface's documentation for more + information.</p> + + @see XAccessible + + @since OOo 1.1.2 +*/ +service Accessible +{ + interface XAccessible; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/AccessibleContext.idl b/offapi/com/sun/star/accessibility/AccessibleContext.idl new file mode 100644 index 000000000..e3233a3ee --- /dev/null +++ b/offapi/com/sun/star/accessibility/AccessibleContext.idl @@ -0,0 +1,61 @@ +/* -*- 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_AccessibleContext_idl__ +#define __com_sun_star_accessibility_AccessibleContext_idl__ + +module com { module sun { module star { module accessibility { + + interface XAccessibleContext; + interface XAccessibleEventBroadcaster; + +/** Central service of the Accessibility API that gives access to various + facets of an object's content. + + <p>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.</p> + + @see XAccessibleContext + + @since OOo 1.1.2 +*/ +service AccessibleContext +{ + interface XAccessibleContext; + + /** is implemented by accessible contexts that supports broadcasting of + accessible events. + + @see AccessibleEventObject + @see AccessibleEventId + */ + [optional] interface XAccessibleEventBroadcaster; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/AccessibleEventId.idl b/offapi/com/sun/star/accessibility/AccessibleEventId.idl new file mode 100644 index 000000000..c7f5b488b --- /dev/null +++ b/offapi/com/sun/star/accessibility/AccessibleEventId.idl @@ -0,0 +1,448 @@ +/* -*- 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_AccessibleEventId_idl__ +#define __com_sun_star_accessibility_AccessibleEventId_idl__ + +module com { module sun { module star { module accessibility { + +/** These constants identify the type of AccessibleEventObject + objects. + + <p>The AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue fields contain, where + applicable and not otherwise stated, the old and new value of the + property in question.</p> + + @see AccessibleEventObject + @see XAccessibleEventListener + + @since OOo 1.1.2 +*/ +constants AccessibleEventId +{ + /** Use this event type to indicate a change of the name string + of an accessible object. The + AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue fields contain the + name before and after the change. + */ + const short NAME_CHANGED = 1; + + /** Use this event type to indicate a change of the description string + of an accessible object. The + AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue fields contain the + description before and after the change. + */ + const short DESCRIPTION_CHANGED = 2; + + /** The change of the number or attributes of actions of an accessible + object is signaled by events of this type. + <p>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. + + <p>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.</p> + + <p>The AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue remain empty. Use + a call to the XAccessibleComponent::getBounds() + method to determine the new bounding box.</p> + */ + const short BOUNDRECT_CHANGED = 6; + + /** A child event indicates the addition of a new or the removal of an + existing child. The contents of the + AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue fields determines + which of both has taken place. + + <p>If a new child has been added then + the AccessibleEventObject::NewValue contains a + reference to this new object and + AccessibleEventObject::OldValue remains empty.</p> + + <p>If a child has been removed then the + AccessibleEventObject::OldValue contains a + reference to this object and + AccessibleEventObject::NewValue remains empty.</p> + + <p>If a child has been added and another one has been removed + don't set both fields at the same. Send separate events + instead.</p> + + <p>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.</p> + */ + const short CHILD = 7; + + /** Use this event to tell the listeners to re-retrieve the whole set of + children. This should be used by a parent object which exchanges all + or most of its children. It is a short form of first sending one + CHILD event for every old child indicating that + this child is about to be removed and then sending one + CHILD for every new child indicating that this + child has been added to the list of children. + + <p>When this API is used by Java or Gnome AT-Tools then a bridge can + generate the events described above automatically.</p> + */ + const short INVALIDATE_ALL_CHILDREN = 8; + + /** Events of this type indicate changes of the selection. The + AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue fields remain empty. + */ + const short SELECTION_CHANGED = 9; + + /** A visible data event indicates the change of the visual appearance + of an accessible object. This includes for example most of the + attributes available over the XAccessibleComponent and + XAccessibleExtendedComponent interfaces. The + AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue fields are left empty. + */ + const short VISIBLE_DATA_CHANGED = 10; + + /** This constant indicates changes of the value of an + XAccessibleValue interface. The + AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue field contain the + old and new value as a number. Its exact type is implementation + dependent but has to be the same as is returned by the + XAccessibleValue::getCurrentValue() function. + */ + + const short VALUE_CHANGED = 11; + + /** Identifies the change of a relation set: The content flow has + changed. + + <p>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.</p> + */ + const short CONTENT_FLOWS_FROM_RELATION_CHANGED = 12; + + /** Identifies the change of a relation set: The content flow has + changed. + + <p>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.</p> + */ + const short CONTENT_FLOWS_TO_RELATION_CHANGED = 13; + + /** Identifies the change of a relation set: The target object that is + doing the controlling has changed. The + AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue fields contain the + old and new controlling objects. + */ + const short CONTROLLED_BY_RELATION_CHANGED = 14; + + /** Identifies the change of a relation set: The controller for the + target object has changed. The + AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue fields contain the + old and new number of controlled objects. + */ + const short CONTROLLER_FOR_RELATION_CHANGED = 15; + + /** Identifies the change of a relation set: The target group for a + label has changed. The + AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue fields contain the + old and new number labeled objects. + */ + const short LABEL_FOR_RELATION_CHANGED = 16; + + /** Identifies the change of a relation set: The objects that are doing + the labeling have changed. The + AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue fields contain the + old and new accessible label. + */ + const short LABELED_BY_RELATION_CHANGED = 17; + + /** Identifies the change of a relation set: The group membership has + changed. The + AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue fields contain the + old and new number of members. + */ + const short MEMBER_OF_RELATION_CHANGED = 18; + + /** Identifies the change of a relation set: The sub-window-of relation + has changed. The + AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue fields contain the + old and new accessible parent window objects. + */ + const short SUB_WINDOW_OF_RELATION_CHANGED = 19; + + /** Events of this type are sent when the caret has moved to a new + position. The old and new position can be found in the + AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue fields. + */ + const short CARET_CHANGED = 20; + + /** Events of this type signal changes of the selection. The old or new + selection is <em>not</em> available through the event object. You + have to query the XAccessibleText interface of the + event source for this information. The type of content of the + AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue fields is not + specified at the moment. This may change in the future. + */ + const short TEXT_SELECTION_CHANGED = 21; + + /** Use this id to indicate general text changes, i.e. changes to text + that is exposed through the XAccessibleText and + XAccessibleEditableText interfaces. + + <p>The affected text ranges are represented by + com::sun::star::accessibility::TextSegment structures.<p> + + <p>The content of the AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue expresses the type + of text change: <ul> <li>Insertion: the + AccessibleEventObject::NewValue field specifies the + inserted text after the insertion, the + AccessibleEventObject::OldValue field remains + empty.</li> <li>Deletion: the + AccessibleEventObject::OldValue field specifies the + deleted text before the deletion, the + AccessibleEventObject::NewValue field remains + empty.</li> <li>Update/Replace/Modification: the + AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue fields specify the + modified text before respectively after the modification.</li> + <li>Unknown: when the type of text change or the place where it took + place can not be determined by the event broadcaster then both + fields remain empty. In this case the whole text may have changed + and the listener should refetch the text completely.</li> </ul> + + <p>When broadcasting an event always prefer the first three cases + to the last one. Use it only as a last resort.</p> + + <p> 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.</p> + */ + const short TEXT_CHANGED = 22; + + + /** This entry is reserved for future extension. Don't use it right now. + */ + const short TEXT_ATTRIBUTE_CHANGED = 23; + + /** Constant used to indicate that a hypertext element has received + focus. The AccessibleEventObject::OldValue field + contains the start index of previously focused element. The + AccessibleEventObject::NewValue field holds the + start index in the document of the current element that has focus. A + value of -1 indicates that an element does not or did not have + focus. + */ + const short HYPERTEXT_CHANGED = 24; + /** Constant used to indicate that the table caption has changed. The + AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue fields contain the + old and new accessible objects representing the table caption. + */ + const short TABLE_CAPTION_CHANGED = 25; + + /** Constant used to indicate that the column description has changed. + The AccessibleEventObject::NewValue field contains + the column index. The + AccessibleEventObject::OldValue is left empty. + */ + const short TABLE_COLUMN_DESCRIPTION_CHANGED = 26; + + /** Constant used to indicate that the column header has changed. The + AccessibleEventObject::OldValue is empty, the + AccessibleEventObject::NewValue field contains an + AccessibleTableModelChange representing the header + change. + */ + const short TABLE_COLUMN_HEADER_CHANGED = 27; + + /** Constant used to indicate that the table data has changed. The + AccessibleEventObject::OldValue is empty, the + AccessibleEventObject::NewValue field contains an + AccessibleTableModelChange representing the data + change. + */ + const short TABLE_MODEL_CHANGED = 28; + + /** Constant used to indicate that the row description has changed. The + AccessibleEventObject::NewValue field contains the + row index. The AccessibleEventObject::OldValue is + left empty. + */ + const short TABLE_ROW_DESCRIPTION_CHANGED = 29; + + /** Constant used to indicate that the row header has changed. The + AccessibleEventObject::OldValue is empty, the + AccessibleEventObject::NewValue field contains an + AccessibleTableModelChange representing the header + change. + */ + const short TABLE_ROW_HEADER_CHANGED = 30; + + /** Constant used to indicate that the table summary has changed. The + AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue fields contain the + old and new accessible objects representing the table summary. + */ + const short TABLE_SUMMARY_CHANGED = 31; + + /** Constant used to indicate that a list box entry has been expanded. + AccessibleEventObject::OldValue is empty. + AccessibleEventObject::NewValue contains the expanded list box entry. + + @since OOo 3.2 + */ + const short LISTBOX_ENTRY_EXPANDED = 32; + + /** Constant used to indicate that a list box entry has been collapsed. + AccessibleEventObject::OldValue is empty. + AccessibleEventObject::NewValue contains the collapsed list box entry. + + @since OOo 3.2 + */ + const short LISTBOX_ENTRY_COLLAPSED = 33; + + /** Constant used to determine when the active descendant of a component + has been removed but unlike ACTIVE_DESCENDANT_CHANGED the descendant + that is to be removed does not have focus. The active descendant + is used in objects with transient children. + + <p>AccessibleEventObject::OldValue contains the item to be removed.</p> + <p>AccessibleEventObject::NewValue is empty.</p> + + @since LibreOffice 4.3 + */ + const short ACTIVE_DESCENDANT_CHANGED_NOFOCUS = 34; + + /** An item in a container has been added to an already present selection + + Example: a second list item has been selected in a listbox. + + <p>AccessibleEventObject::OldValue is empty.</p> + <p>AccessibleEventObject::NewValue contains the item to be added.</p> + + @since LibreOffice 4.3 + */ + const short SELECTION_CHANGED_ADD = 35; + + /** An item in a container has been removed from the selection. + + <p>AccessibleEventObject::OldValue contains the item to be removed.</p> + <p>AccessibleEventObject::NewValue is empty.</p> + + @since LibreOffice 4.3 + */ + const short SELECTION_CHANGED_REMOVE = 36; + + /** Multiple items in a container object have been added or removed + from the selection. + + <p>AccessibleEventObject::OldValue and + AccessibleEventObject::NewValue is empty.</p> + + @since LibreOffice 4.3 + */ + const short SELECTION_CHANGED_WITHIN = 37; + + /** A change of page or slide. + + @since LibreOffice 4.3 + */ + const short PAGE_CHANGED = 38; + + /** The cursor has moved to/from a section + + @since LibreOffice 4.3 + */ + const short SECTION_CHANGED = 39; + + /** The cursor has moved to/from a section + + @since LibreOffice 4.3 + */ + const short COLUMN_CHANGED = 40; + + /** Constant used to indicate that the role of an accessible object has + changed. + + @since LibreOffice 4.3 + */ + const short ROLE_CHANGED =41; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/AccessibleEventObject.idl b/offapi/com/sun/star/accessibility/AccessibleEventObject.idl new file mode 100644 index 000000000..883e9af29 --- /dev/null +++ b/offapi/com/sun/star/accessibility/AccessibleEventObject.idl @@ -0,0 +1,61 @@ +/* -*- 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_AccessibleEventObject_idl__ +#define __com_sun_star_accessibility_AccessibleEventObject_idl__ + +#include <com/sun/star/lang/EventObject.idl> + +module com { module sun { module star { module accessibility { + +/** this struct describes an accessible event, that is broadcasted from + the XAccessibleEventBroadcaster and notified to + XAccessibleEventListener. + + <p>It is usually implemented by AccessibleContext. + + @since OOo 1.1.2 +*/ +struct AccessibleEventObject: ::com::sun::star::lang::EventObject +{ + /** specifies the type of this event. + + <p>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 <com/sun/star/uno/XInterface.idl> + +module com { module sun { module star { module accessibility { + +/** An AccessibleRelation object defines a one-to-many + relation. + + <p>The represented relation points from the implementing object to a set + of target objects.</p> + + @since OOo 1.1.2 +*/ +struct AccessibleRelation +{ + /** Type of the relation. + + <p>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.</p> + + @see AccessibleRelationType + */ + short RelationType; + + /** Set of objects that are the relation's targets. + + <p>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.</p> + */ + sequence< ::com::sun::star::uno::XInterface> TargetSet; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/AccessibleRelationType.idl b/offapi/com/sun/star/accessibility/AccessibleRelationType.idl new file mode 100644 index 000000000..0ea803a81 --- /dev/null +++ b/offapi/com/sun/star/accessibility/AccessibleRelationType.idl @@ -0,0 +1,123 @@ +/* -*- 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_AccessibleRelationType_idl__ +#define __com_sun_star_accessibility_AccessibleRelationType_idl__ + +module com { module sun { module star { module accessibility { + +/** Collection of relation types. + + <p>This list of constants defines the available types of relations that + are usable by AccessibleRelation.</p> + + <p>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.</p> + + @since OOo 1.1.2 +*/ +constants AccessibleRelationType +{ + /** Invalid relation type. + + <p>Indicates an invalid relation type. This is used to indicate + that a retrieval method could not find a requested relation.</p> + */ + const short INVALID = 0; + + /** Content-flows-from relation. + + <p>Indicates a content flow between the related objects.</p> + */ + const short CONTENT_FLOWS_FROM = 1; + + /** Content-flows-to relation. + + <p>Indicates a content flow between the related objects.</p> + */ + const short CONTENT_FLOWS_TO = 2; + + /** Controlled-by relation type. + + <p>Indicates an object is controlled by one or more target + objects.</p> + */ + const short CONTROLLED_BY = 3; + + /** Controller-for relation type. + + <p>Indicates an object is a controller for one or more target + objects.</p> + */ + const short CONTROLLER_FOR = 4; + + /** Label-for relation type. + + <p>Indicates an object is a label for one or more target + objects.</p> + */ + const short LABEL_FOR = 5; + + /** Labeled-by relation type. + + <p>Indicates an object is labeled by one or more target objects.</p> + */ + const short LABELED_BY = 6; + + /** Member-of relation type. + + <p>Indicates an object is a member of a group of one or more target + objects.</p> + */ + const short MEMBER_OF = 7; + + /** Sub-Window-of relation type. + + <p>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.</p> + */ + const short SUB_WINDOW_OF = 8; + + /** Node-Child-of relation type. + + <p>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.</p> + + @since OOo 3.0 + */ + const short NODE_CHILD_OF = 9; + + /** Described-by relation type. + + <p>Indicates an object is described by the target object.</p> + + @since OOo 3.5 + */ + const short DESCRIBED_BY = 10; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/AccessibleRole.idl b/offapi/com/sun/star/accessibility/AccessibleRole.idl new file mode 100644 index 000000000..9cf23aecd --- /dev/null +++ b/offapi/com/sun/star/accessibility/AccessibleRole.idl @@ -0,0 +1,749 @@ +/* -*- 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_AccessibleRole_idl__ +#define __com_sun_star_accessibility_AccessibleRole_idl__ + +module com { module sun { module star { module accessibility { + +/** Collection of roles. + + <p>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.</p> + + <p>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.</p> + + <p>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. </p> + + @see XAccessibleContext + + @since OOo 1.1.2 +*/ +constants AccessibleRole +{ + + /** Unknown role. + + <p>The object contains some Accessible information, but its role is + not known.</p> + */ + const short UNKNOWN = 0; + + /** Object is used to alert the user about something. + */ + const short ALERT = 1; + + /** The header for a column of data. + */ + const short COLUMN_HEADER = 2; + + /** Object that can be drawn into and is used to trap events. + + <p>See also FRAME, GLASS_PANE, and + LAYERED_PANE.</p> + */ + const short CANVAS = 3; + + /** Check box role. + + <p>A choice that can be checked or unchecked and provides a separate + indicator for the current state.</p> + + <p>See also PUSH_BUTTON, TOGGLE_BUTTON, + and RADIO_BUTTON.</p> + */ + const short CHECK_BOX = 4; + + /** This role is used for check buttons that are menu items. + + @see CHECK_BOX, MENU_ITEM + */ + const short CHECK_MENU_ITEM = 5; + + /** A specialized dialog that lets the user choose a color. + */ + const short COLOR_CHOOSER = 6; + + /** Combo box role. + + <p>A list of choices the user can select from. Also optionally + allows the user to enter a choice of their own.</p> + */ + const short COMBO_BOX = 7; + + /** Date editor role. + + <p>A DATE_EDITOR is a component that allows users to edit date and time.</p> + */ + const short DATE_EDITOR = 8; + + /** An iconified internal frame in a DESKTOP_PANE. + + <p>See also DESKTOP_PANE and + INTERNAL_FRAME.</p> + */ + const short DESKTOP_ICON = 9; + + /** Desktop pane role. + + <p>A pane that supports internal frames and iconified versions of + those internal frames.</p> + */ + const short DESKTOP_PANE = 10; + + /** Directory pane role. + + <p>A pane that allows the user to navigate through and select the + contents of a directory. May be used by a file chooser.</p> + + <p>See also FILE_CHOOSER.</p> + */ + const short DIRECTORY_PANE = 11; + + /** Dialog box role. + + <p>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.</p> + + <p>See also FRAME and WINDOW.</p> + */ + const short DIALOG = 12; + + /** View of a document. + + <p>The view of an actual document. Its content depends on the + document type.</p> + */ + const short DOCUMENT = 13; + + /** Embedded (OLE) object. + */ + const short EMBEDDED_OBJECT = 14; + + /** Text that is used as an endnote (footnote at the end of a chapter or + section. + */ + const short END_NOTE = 15; + + /** File chooser role. + + <p>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.</p> + + <p>See also DIRECTORY_PANE.</p> + */ + const short FILE_CHOOSER = 16; + + /** Filler role. + + <p>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.</p> + */ + const short FILLER = 17; + + /** Font chooser role. + + <p>A FONT_CHOOSER is a component that lets the user pick various + attributes for fonts.</p> + */ + const short FONT_CHOOSER = 18; + + /** Footer of a document page. + @see HEADER + */ + const short FOOTER = 19; + + /** Text that is used as a footnote. + */ + const short FOOTNOTE = 20; + + /** Frame role. + + <p>A top level window with a title bar, border, menu bar, etc. It + is often used as the primary window for an application.</p> + + <p>See also DIALOG, CANVAS, and + WINDOW.</p> + */ + const short FRAME = 21; + + /** Glass pane role. + + <p>A pane that is guaranteed to be painted on top of all panes + beneath it.</p> + + <p>See also ROOT_PANE and CANVAS.</p> + */ + const short GLASS_PANE = 22; + + /** Graphical object. + */ + const short GRAPHIC = 23; + + /** Group box role. + + <p>A GROUP_BOX is a simple container that contains a + border around it and contains components inside it.</p> + */ + const short GROUP_BOX = 24; + + /** Header of a document page. + @see FOOTER + */ + const short HEADER = 25; + + /** Chapter or section heading. + */ + const short HEADING = 26; + + /** A hypertext anchor. + */ + const short HYPER_LINK = 27; + + /** A small fixed size picture, typically used to decorate components. + */ + const short ICON = 28; + + /** Internal frame role. + + <p>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.</p> + + <p>See also DESKTOP_ICON, DESKTOP_PANE, + and FRAME.</p> + */ + const short INTERNAL_FRAME = 29; + + /** An object used to present an icon or short string in an interface. + <p>See also TEXT and STATIC.</p> + */ + const short LABEL = 30; + + /** layered pane role. + + <p>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.</p> + + <p>See also GLASS_PANE and + ROOT_PANE.</p> + */ + const short LAYERED_PANE = 31; + + /** List role. + + <p>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.</p> + + <p>See also SCROLL_PANE and + LIST_ITEM.</p> + */ + const short LIST = 32; + + /** List item role. + + <p>An object that presents an element in a list. A list is usually + contained within a scroll pane.</p> + + <p>See also SCROLL_PANE and LIST.</p> + */ + const short LIST_ITEM = 33; + + /** Menu role. + + <p>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."</p> + + <p>See also MENU_BAR, MENU_ITEM, + SEPARATOR, RADIO_BUTTON, + CHECK_BOX, and POPUP_MENU.</p> + */ + const short MENU = 34; + + /** Menu bar role. + + <p>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."</p> + + <p>See also MENU, POPUP_MENU, and + LAYERED_PANE.</p> + */ + const short MENU_BAR = 35; + + /** Menu item role. + + <p>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.</p> + + <p>See also MENUBAR, SEPARATOR, and + POPUP_MENU.</p> + */ + const short MENU_ITEM = 36; + + /** A specialized pane whose primary use is inside a DIALOG. + + <p>See also DIALOG.</p> + */ + const short OPTION_PANE = 37; + + /** Page tab role. + + <p>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.</p> + + <p>See also PAGE_TAB_LIST.</p> + */ + const short PAGE_TAB = 38; + + /** Page tab list role. + + <p>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.</p> + + <p>See also PAGE_TAB.</p> + */ + const short PAGE_TAB_LIST = 39; + + /** A generic container that is often used to group objects. + */ + const short PANEL = 40; + + /** Paragraph of text. + */ + const short PARAGRAPH = 41; + + /** Password text role. + + <p>A text object used for passwords, or other places where the text + contents is not shown visibly to the user.</p> + */ + const short PASSWORD_TEXT = 42; + + /** Pop-up menu role. + + <p>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.</p> + + <p>See also MENU and MENU_ITEM.</p> + */ + const short POPUP_MENU = 43; + + /** Push button role. + + <p>An object the user can manipulate to tell the application to do + something.</p> + + <p>See also CHECK_BOX, TOGGLE_BUTTON, + RADIO_BUTTON, BUTTON_MENU and + BUTTON_DROPDOWN.</p> + */ + const short PUSH_BUTTON = 44; + + /** An object used to indicate how much of a task has been completed. + */ + const short PROGRESS_BAR = 45; + + /** Radio button role. + + <p>A specialized check box that will cause other radio buttons in + the same group to become unchecked when this one is checked.</p> + + <p>See also PUSH_BUTTON, TOGGLE_BUTTON, + and CHECK_BOX.</p> + */ + const short RADIO_BUTTON = 46; + + /** This role is used for radio buttons that are menu items. + + @see RADIO_BUTTON, MENU_ITEM + */ + const short RADIO_MENU_ITEM = 47; + + /** The header for a row of data. + */ + const short ROW_HEADER = 48; + + /** Root pane role. + + <p>A specialized pane that has a glass pane and a layered pane as + its children.</p> + + <p>See also GLASS_PANE and LAYERED_PANE.</p> + */ + const short ROOT_PANE = 49; + + /** Scroll bar role. + + <p>An object usually used to allow a user to incrementally view a + large amount of data. Usually used only by a scroll pane.</p> + + <p>See also SCROLL_PANE.</p> + */ + const short SCROLL_BAR = 50; + + /** Scroll pane role. + + <p>An object that allows a user to incrementally view a large amount + of information. Its children can include scroll bars and a + viewport.</p> + + <p>See also SCROLL_BAR and VIEW_PORT.</p> + */ + const short SCROLL_PANE = 51; + + /** Object with graphical representation used to represent content on + draw pages. + + @see com::sun::star::drawing::AccessibleShape + */ + const short SHAPE = 52; + + /** Separator role. + + <p>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.</p> + + <p>See also MENU and MENU_ITEM.</p> + */ + const short SEPARATOR = 53; + + /** Slider role. + + <p>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.</p> + */ + const short SLIDER = 54; + + /** Spin box role. + + <p>A SPIN_BOX is a simple spinner component and its + main use is for simple numbers.</p> + */ + const short SPIN_BOX = 55; + + /** Split pane role. + + <p>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.</p> + */ + const short SPLIT_PANE = 56; + + /** Status bar role. + + <p>A STATUS_BAR is an simple component that can + contain multiple labels of status information to the user.</p> + */ + const short STATUS_BAR = 57; + + /** Table component. + + <p>An object used to present information in terms of rows and + columns. An example might include a spreadsheet application.</p> + */ + const short TABLE = 58; + + /** Single cell in a table. + */ + const short TABLE_CELL = 59; + + /** Text role. + + <p>An object that presents text to the user. The text is usually + editable by the user as opposed to a label or static text.</p> + + <p>See also LABEL and STATIC.</p> + */ + const short TEXT = 60; + + /** Collection of objects that constitute a logical text entity. + */ + const short TEXT_FRAME = 61; + + /** Toggle button role. + + <p>A specialized push button that can be checked or unchecked, but + does not provide a separate indicator for the current state.</p> + + <p>See also PUSH_BUTTON, CHECK_BOX and + RADIO_BUTTON.</p> + */ + const short TOGGLE_BUTTON = 62; + + /** Tool bar role. + + <p>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.</p> + */ + const short TOOL_BAR = 63; + + /** Tool tip role. + + <p>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.</p> + */ + const short TOOL_TIP = 64; + + /** Tree role. + + <p>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.</p> + */ + const short TREE = 65; + + /** Viewport role. + + <p>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.</p> + + <p>See also SCROLL_PANE.</p> + */ + const short VIEW_PORT = 66; + + /** A top level window with no title or border. + + <p>See also FRAME and DIALOG.</p> + */ + const short WINDOW = 67; + + /** Button dropdown role + + <p>The object represents a button that drops down a list of items.</p> + + <p>See also PUSH_BUTTON and BUTTON_MENU.</p> + + @since OOo 3.0 + */ + const short BUTTON_DROPDOWN = 68; + + /** Button menu role + + <p>The object represents a button that drops down a menu.</p> + + <p>See also PUSH_BUTTON and BUTTON_DROPDOWN.</p> + + @since OOo 3.0 + */ + const short BUTTON_MENU = 69; + + /** Caption role + + <p>The object contains descriptive information, usually textual, about + another user interface element such as a table, chart, or image.</p>. + + @since OOo 3.0 + */ + const short CAPTION = 70; + + /** Chart role + + <p>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.</p> + + @since OOo 3.0 + */ + const short CHART = 71; + + /** Edit bar role + + <p>A role indicating the object acts as a formula for calculating a value.</p> + + @since OOo 3.0 + */ + const short EDIT_BAR = 72; + + /** Form role + + <p>The object is a container for form controls, for instance as part of a web form + or user-input form within a document.</p> + + @since OOo 3.0 + */ + const short FORM = 73; + + /** Image map role + + <p>Usually a graphic with multiple hotspots, where each hotspot can be activated + resulting in the loading of another document or section of a document.</p> + + @since OOo 3.0 + */ + const short IMAGE_MAP = 74; + + /** Note role + + <p>An embedded note which is not visible until activated.</p> + + @since OOo 3.0 + */ + const short NOTE = 75; + + /** Page role + + <p>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.</p> + + @since OOo 3.0 + */ + const short PAGE = 76; + + /** Ruler role + + <p>An object which describes margins and tab stops, etc. for text objects which it controls.</p> + + @since OOo 3.0 + */ + const short RULER = 77; + + /** Section role + + <p>The object is a containing instance of document content which constitutes a particular + "logical" section of the document.</p> + + @since OOo 3.0 + */ + const short SECTION = 78; + + /** Tree item role + + <p>An object that presents an element in a tree</p> + + </p>See also TREE and TREE_TABLE.</p> + + @since OOo 3.0 + */ + const short TREE_ITEM = 79; + + /** Tree table role + + <p>An object which represents both hierarchical and tabular information.</p> + + @since OOo 3.0 + */ + const short TREE_TABLE = 80; + + /** Comment role + + <p>An object which represents a comment.</p> + + <p>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.</p> + + <p>See also COMMENT_END.</p> + + @since OOo 3.2 + */ + const short COMMENT = 81; + + /** Comment end role + + <p>An invisible object which represents the end position of a text range which + is annotated by a comment - see COMMENT.</p> + + <p>This object and the corresponding object representing the comment shall be + in relation of type MEMBER_OF.</p> + + @since OOo 3.2 + */ + const short COMMENT_END = 82; + + /** View of a presentation document. + + <p>It's an specific variation of DOCUMENT for presentations.</p> + + @since LibreOffice 4.3 + */ + const short DOCUMENT_PRESENTATION = 83; + + /** View of an spreadsheet document. + + <p>It's an specific variation of DOCUMENT for spreadsheets.</p> + + @since LibreOffice 4.3 + */ + const short DOCUMENT_SPREADSHEET = 84; + + /** View of a text document. + + <p>It's an specific variation of DOCUMENT for text.</p> + + @since LibreOffice 4.3 + */ + const short DOCUMENT_TEXT = 85; + + /** Static text role. + + <p>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.</p> + + <p>See also LABEL and TEXT.</p> + */ + 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 + + <p>Describes the type of scrolling that are available for the methods of + the XAccessibleScrollableText interface.</p> + + @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. + + <p>This list of constants defines the available set of states that an + object that implements XAccessibleContext can be in.</p> + + <p>The comments describing the states is taken verbatim from the Java + Accessibility API 1.4 documentation.</p> + + <p>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.</p> + + @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. + + <p>Indicates the user interface object corresponding to this object + no longer exists.</p> + */ + 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. + + <p>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.</p> + */ + 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. + + <p>Indicates something must be done with this object before the user + can interact with an object in a different window.</p> + */ + 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. + + <p>Indicates this object allows more than one of its children to be + selected at the same time.</p> + */ + 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. + + <p>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.</p> + */ + const short SELECTABLE = 22; + + /** Object is selected. + + <p>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.</p> + */ + const short SELECTED = 23; + + /** Indicates this object is sensitive. + */ + const short SENSITIVE = 24; + + /** Object is displayed on the screen. + + <p>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.</p> + */ + 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 + + <p>Indicates that the information that is returned from this object + might be out of sync with the application.</p> + */ + 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. + + <p>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.</p> + */ + 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..ae49447ce --- /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__ + +#include <com/sun/star/uno/XInterface.idl> + +module com { module sun { module star { module accessibility { + +/** This structure lets an event give access to a change of a table model. + + <p>The 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.</p> + + @since OOo 1.1.2 +*/ +struct AccessibleTableModelChange +{ + /** The type of the event as defined in + AccessibleTableModelChangeType. + + <p>The model change either inserted or deleted one or more rows + and/or columns or modified the content of a number of cells. See + AccessibleTableModelChangeType for details of the type + of the model change.</p> + */ + short Type; + + /** The lowest index of a row that has changed. + + <p>The first row that has been changed or that contains + modified cells.</p> + */ + long FirstRow; + + /** The highest index of a row that has changed. + + <p>The last row that has been changed or that contains modified + cells.</p> + */ + long LastRow; + + /** The lowest index of a column that has changed. + + <p>The first column that has been changed or contains modified + cells.</p> + */ + long FirstColumn; + + /** The highest index of a column that has changed. + + <p>The last column that has been changed or contains modified + cells.</p> + */ + 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..88729f6a4 --- /dev/null +++ b/offapi/com/sun/star/accessibility/AccessibleTableModelChangeType.idl @@ -0,0 +1,74 @@ +/* -*- 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__ + +#include <com/sun/star/uno/XInterface.idl> + +module com { module sun { module star { module accessibility { + +/** Type of a change made to a table model. + + <p>The 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.</p> + + <p>Two of the constants, + AccessibleTableModelChangeType::INSERT and + AccessibleTableModelChangeType::DELETE describe + changes to the table's geometry. One or more rows and/or columns have + been inserted or deleted. In contrast, the remaining constant + AccessibleTabelModelChangeType::UPDATE specifies a + change of the table's content.</p> + + @since OOo 1.1.2 +*/ +constants AccessibleTableModelChangeType +{ + /** One or more rows and/or columns have been inserted. + + <p>Use the fields of the AccessibleTableModelChange + structure to determine the indices of the rows and/or columns that + have been inserted.</p> + */ + const short INSERT = 1; + + /** One or more rows and/or columns have been deleted. + + <p>The affected area of the table is stored in the fields of the + AccessibleTableModelChange structure.</p> + */ + const short DELETE = 2; + + /** Some of the table data has changed. + + <p>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.</p> + */ + const short UPDATE = 3; +}; + +}; }; }; }; + +#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. + + <p>This collection describes the types of text portions that can be + accessed with the help of the methods of the + XAccessibleText interface.</p> + + @since OOo 1.1.2 +*/ +constants AccessibleTextType +{ + /** Single character. + + <p>Indicates that single (multibyte) characters are used.</p> + */ + const short CHARACTER = 1; + + /** Single word. + + <p>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.</p> + */ + const short WORD = 2; + + /** Single sentence. + + <p>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.</p> + */ + const short SENTENCE = 3; + + /** Single paragraph. + + <p>Indicates that single paragraphs are used. The definition of + what a paragraph is, is implementation and language/locale + dependent.</p> + */ + const short PARAGRAPH = 4; + + /** Single line. + + <p>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.</p> + */ + const short LINE = 5; + + /** Single glyph. + + <p>Glyphs are runs of one or more (multibyte) characters which are + displayed as one symbol.</p> + */ + const short GLYPH = 6; + + /** Attribute run. + + <p>Each attribute run is a character run of maximal length where all + characters have the same attributes set.</p> + */ + 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__ + +#include <com/sun/star/uno/Exception.idl> + +module com { module sun { module star { module accessibility { + +/** Indicates invalid or unavailable state information. + + <p>This exception is thrown to indicate the an accessibility component + has been queried for state information that it can not provide. Used by + XAccessibleContext::getLocale().</p> + + @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__ + +#include <com/sun/star/accessibility/XMSAAService.idl> + +module com { module sun { module star { module accessibility { + +service MSAAService: XMSAAService; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/TextSegment.idl b/offapi/com/sun/star/accessibility/TextSegment.idl new file mode 100644 index 000000000..e75c77851 --- /dev/null +++ b/offapi/com/sun/star/accessibility/TextSegment.idl @@ -0,0 +1,79 @@ +/* -*- 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_TextSegment_idl__ +#define __com_sun_star_accessibility_TextSegment_idl__ + +module com { module sun { module star { module accessibility { + +/** This structure describes a text segment that is embedded in a larger + portion of text. It is used for example by the + XAccessibleText interface to describe a text portion that + was inserted into or deleted from an accessible text. + + <p>The 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.</p> + + <p>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.</p> + + <p>The #SegmentText member is a copy of the + corresponding text segment of the enclosing text. Modifying this + structure does not alter the enclosing text.</p> + + @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__ + +#include <com/sun/star/uno/XInterface.idl> + +module com { module sun { module star { module accessibility { + + interface XAccessibleContext; + +/** This interface has to be implemented by any class that wants to be + accessible. + + <p>It is used to provide access to the XAccessibleContext + interface but allows at the same time that the interface is implemented + by another class.</p> + + <p>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.</p> + + @see AccessibleContext + + @since OOo 1.1.2 +*/ +interface XAccessible : ::com::sun::star::uno::XInterface +{ + /** Returns the AccessibleContext associated with this object. + + <p>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.</p> + + @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__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IndexOutOfBoundsException.idl> + +module com { module sun { module star { module accessibility { + + interface XAccessibleKeyBinding; + +/** Implement this interface to give access to actions that can be executed + for accessible objects. + + <p>Every 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.</p> + + @since OOo 1.1.2 +*/ +interface XAccessibleAction : ::com::sun::star::uno::XInterface +{ + /** Returns the number of accessible actions available in this object. + + <p>If there are more than one, the first one is considered the + "default" action of the object.</p> + + @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__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/awt/XFocusListener.idl> +#include <com/sun/star/awt/XFont.idl> +#include <com/sun/star/awt/FontDescriptor.idl> +#include <com/sun/star/awt/Point.idl> +#include <com/sun/star/awt/Rectangle.idl> +#include <com/sun/star/awt/Size.idl> +#include <com/sun/star/util/Color.idl> + +module com { module sun { module star { module accessibility { + + interface XAccessible; + +/** The XAccessibleComponent interface should be supported by + any class that can be rendered on the screen. + + <p>This 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 <code>javax.accessibility.AccessibleComponent</code> + and <code>javax.accessibility.AccessibleExtendedComponent</code>.</p> + + <p>Further information about the graphical appearance of an object can + be expressed with the XAccessibleExtendedComponent + interface.</p> + + <p>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: + <ul><li>The screen coordinate system has its origin in the upper left + corner of the current screen. Used by the + getLocationOnScreen() function.</li> + <li>The origin of the parent coordinate system is the upper left corner + of the parent's bounding box. With no parent the screen coordinate + system is used instead. Used by the getLocation() + function.</li> + <li>The object coordinate system is relative to the upper left corner of + an object's bounding box. It is relative to itself so to speak. Used + by the containsPoint() and + getAccessibleAtPoint() functions.</li> + </ul></p> + + <p>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(). + </p> + + @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. + + <p>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.</p> + + @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. + + <p>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.</p> + + @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. + + <p>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.</p> + + @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.</p> + + <p>The coordinates of the bounding box are given relative to the + parent's coordinate system.</p> + + @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. + + <p>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.</p> + + @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. + + <p>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 <code>requestFocus</code> in + the Java Accessibility API 1.4.</p> + */ + void grabFocus (); + + /** Returns the foreground color of this object. + + @return + The returned color is the foreground color of this object or, if + that is not supported, the default foreground color. + */ + ::com::sun::star::util::Color getForeground (); + + /** Returns the background color of this object. + + @return + The returned color is the background color of this object or, if + that is not supported, the default background color. + */ + ::com::sun::star::util::Color getBackground (); + +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleContext.idl b/offapi/com/sun/star/accessibility/XAccessibleContext.idl new file mode 100644 index 000000000..fb3b9c9ca --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleContext.idl @@ -0,0 +1,198 @@ +/* -*- 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_XAccessibleContext_idl__ +#define __com_sun_star_accessibility_XAccessibleContext_idl__ + +#include <com/sun/star/accessibility/IllegalAccessibleComponentStateException.idl> +#include <com/sun/star/lang/IndexOutOfBoundsException.idl> +#include <com/sun/star/beans/XPropertyChangeListener.idl> +#include <com/sun/star/lang/Locale.idl> + +module com { module sun { module star { module accessibility { + + interface XAccessible; + interface XAccessibleRelationSet; + interface XAccessibleSelection; + interface XAccessibleStateSet; + +/** Implement this interface for exposing various aspects of a class's + content. + + <p>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".</p> + + @since OOo 1.1.2 +*/ +interface XAccessibleContext : ::com::sun::star::uno::XInterface +{ + /** Return the number of children. + + <p>Returns the number of accessible children of the object.</p> + + @return + The returned value is non-negative. + */ + long getAccessibleChildCount(); + + /** Returns the i-th child of this object. + + <p>The order in which the children are enumerated is implementation + dependent.</p> + + @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. + + <p>This function may be called for every node, including the root + node, of the accessible tree.</p> + + @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. + + <p>If you call getAccessibleChild on the object's parent with the + index returned by this function you get a reference to this + object.</p> + + @return + The returned index is zero based. + */ + long getAccessibleIndexInParent (); + + /** Returns the role of this object. + + <p>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.</p> + + @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. + + <p>Returns the object's localized description. The description should + complement the more generic descriptions given by an object's role + and name.</p> + + @return + The returned string is the object's localized description. + */ + string getAccessibleDescription (); + + /** Return the object's localized name. + + <p>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.</p> + + @return + The returned string is the object's localized name. + */ + string getAccessibleName (); + + /** Returns the set of relations defined for this object. + + <p>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.</p> + + <p>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. + + <p>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.</p> + + @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. + + <p>This locale is used for example to determine the language to use + for the name and description texts.</p> + + @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. + + <p>This is an extension of XAccessibleContext to add getAccessibleId().</p> + + @since LibreOffice 6.3 +*/ +interface XAccessibleContext2 : ::com::sun::star::accessibility::XAccessibleContext +{ + /** Return the object's identifier. + + <p>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.</p> + + @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. + + <p>The order in which the children are enumerated is implementation + dependent.</p> + */ + sequence<XAccessible> getAccessibleChildren(); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleEditableText.idl b/offapi/com/sun/star/accessibility/XAccessibleEditableText.idl new file mode 100644 index 000000000..f330ba0ec --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleEditableText.idl @@ -0,0 +1,228 @@ +/* -*- 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_XAccessibleEditableText_idl__ +#define __com_sun_star_accessibility_XAccessibleEditableText_idl__ + +#include <com/sun/star/accessibility/XAccessibleText.idl> +#include <com/sun/star/lang/IndexOutOfBoundsException.idl> +#include <com/sun/star/beans/PropertyValue.idl> + +module com { module sun { module star { module accessibility { + +/** Implement this interface to give read and write access to a text + representation. + + <p>This interface is typically used in conjunction with the + XAccessibleText interface and extents it about the ability + to modify the text represented by that interface.</p> + + @since OOo 1.1.2 +*/ +interface XAccessibleEditableText + : ::com::sun::star::accessibility::XAccessibleText +{ + /** Copies the text range into the clipboard. + + <p>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.</p> + + <p>The text indices are interpreted like those in the + XAccessibleText::getTextRange() method. </p> + + @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. + + <p>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.</p> + + @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. + + <p>The text between and including the two given indices is deleted + from the text represented by this object.</p> + + <p>The text indices are interpreted like those in the + XAccessibleText::getTextRange() method. </p> + + @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. + + <p>The specified string is inserted at the given index into the text + represented by this object.</p> + + @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. + + <p>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.</p> + + <p>The text indices are interpreted like those in the + XAccessibleText::getTextRange() method. </p> + + @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. + + <p>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.</p> + + <p>The text indices are interpreted like those in the + XAccessibleText::getTextRange() method. </p> + + @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. + + <p>The text content of this object is set to the given string.</p> + + @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__ + +#include <com/sun/star/uno/XInterface.idl> + +module com { module sun { module star { module accessibility { + + interface XAccessibleEventListener; + +/** makes it possible to register listeners which are called whenever + an accessibility event (see AccessibleEventObject) occurs. + + @see AccessibleEventObject + @see XAccessibleEventListener + + @since OOo 1.1.2 + */ +interface XAccessibleEventBroadcaster: ::com::sun::star::uno::XInterface +{ + + /** registers the given XAccessibleEventListener. + */ + void addAccessibleEventListener( [in] XAccessibleEventListener xListener ); + + + /** unregisters the given XAccessibleEventListener. + */ + void removeAccessibleEventListener( [in] XAccessibleEventListener xListener ); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleEventListener.idl b/offapi/com/sun/star/accessibility/XAccessibleEventListener.idl new file mode 100644 index 000000000..e1645c4e9 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleEventListener.idl @@ -0,0 +1,47 @@ +/* -*- 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_XAccessibleEventListener_idl__ +#define __com_sun_star_accessibility_XAccessibleEventListener_idl__ + +#include <com/sun/star/lang/XEventListener.idl> +#include <com/sun/star/accessibility/AccessibleEventObject.idl> + +module com { module sun { module star { module accessibility { + +/** makes it possible to register a component as a listener, which is called whenever + an accessibility event occurs. + + @see XAccessibleEventBroadcaster + + @since OOo 1.1.2 + */ +interface XAccessibleEventListener: ::com::sun::star::lang::XEventListener +{ + + /** is called whenever an accessible event (see AccessibleEventObject) occurs. + */ + void notifyEvent( [in] AccessibleEventObject aEvent ); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleExtendedAttributes.idl b/offapi/com/sun/star/accessibility/XAccessibleExtendedAttributes.idl new file mode 100644 index 000000000..11eb96327 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleExtendedAttributes.idl @@ -0,0 +1,37 @@ +/* -*- 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_XAccessibleAttribute_idl__ +#define __com_sun_star_accessibility_XAccessibleAttribute_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IndexOutOfBoundsException.idl> + +module com { module sun { module star { module accessibility { + +interface XAccessibleExtendedAttributes : ::com::sun::star::uno::XInterface +{ + /* Returns the attribute of this object' formula */ // MT: I guess it's not formula only? + any getExtendedAttributes() raises (::com::sun::star::lang::IndexOutOfBoundsException); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleExtendedComponent.idl b/offapi/com/sun/star/accessibility/XAccessibleExtendedComponent.idl new file mode 100644 index 000000000..a5af6c73b --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleExtendedComponent.idl @@ -0,0 +1,87 @@ +/* -*- 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_XAccessibleExtendedComponent_idl__ +#define __com_sun_star_accessibility_XAccessibleExtendedComponent_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/awt/XFocusListener.idl> +#include <com/sun/star/awt/XFont.idl> +#include <com/sun/star/awt/FontDescriptor.idl> +#include <com/sun/star/awt/Point.idl> +#include <com/sun/star/awt/Rectangle.idl> +#include <com/sun/star/awt/Size.idl> +#include <com/sun/star/accessibility/XAccessibleComponent.idl> + +module com { module sun { module star { module accessibility { + +/** The XAccessibleExtendedComponent interface contains + additional methods to those of the XAccessibleComponent + interface. These methods provide information that is used not as often. The + division into two interfaces allows classes to support the more + frequently used methods of the XAccessibleComponent + interface and only support the XAccessibleExtendedComponent + interface if that makes sense for the class. + + <p>This interface provides extended access to retrieve information + concerning the graphical representation of an object. This interface + combines methods from the Java interfaces + <code>javax.accessibility.AccessibleComponent</code> and + <code>javax.accessibility.AccessibleExtendedComponent</code>.</p> + + @since OOo 1.1.2 +*/ +interface XAccessibleExtendedComponent : XAccessibleComponent +{ + /** Returns the font of this object. + + @return + The returned reference to a font object is empty if a font is not + supported by this object. + */ + ::com::sun::star::awt::XFont getFont (); + + /** Returns the titled border text. + + <p>This method stems from the Java interface + <code>AccessibleExtendedComponent</code>.</p> + + @return + The returned value is the titled border text of the object or + empty if that is not supported. + */ + string getTitledBorderText (); + + /** Returns the tool tip text of this object. + + <p>This method stems from the Java interface + <code>AccessibleExtendedComponent</code>.</p> + + @return + Returns the localized tool tip text of the object. If tool tips + are not supported and empty string is returned. + */ + string getToolTipText (); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleGetAccFlowTo.idl b/offapi/com/sun/star/accessibility/XAccessibleGetAccFlowTo.idl new file mode 100644 index 000000000..56246775b --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleGetAccFlowTo.idl @@ -0,0 +1,38 @@ +/* -*- 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_XAccessibleGetAccFlowTo_idl_ +#define __com_sun_star_accessibility_XAccessibleGetAccFlowTo_idl_ + +#include <com/sun/star/uno/XInterface.idl> + +module com { module sun { module star { module accessibility { + +// !!! +// MT: When integrating this, interface and method names should be renamed somehow. Of course, file name also need to change then... +// !!! +interface XAccessibleGetAccFlowTo : ::com::sun::star::uno::XInterface +{ + sequence<any> getAccFlowTo([in] any aXShape, [in] long nType); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleGroupPosition.idl b/offapi/com/sun/star/accessibility/XAccessibleGroupPosition.idl new file mode 100644 index 000000000..1c2ca50b7 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleGroupPosition.idl @@ -0,0 +1,40 @@ +/* -*- 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_XAccessibleGroupPosition_idl__ +#define __com_sun_star_accessibility_XAccessibleGroupPosition_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IndexOutOfBoundsException.idl> + +module com { module sun { module star { module accessibility { + +interface XAccessibleGroupPosition : ::com::sun::star::uno::XInterface +{ + /* Returns the group position of the object */ + sequence<long> getGroupPosition( [in] any accoject ) raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /* Returns the hyperlink URL info of the object */ + string getObjectLink( [in] any accoject ) raises (::com::sun::star::lang::IndexOutOfBoundsException); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleHyperlink.idl b/offapi/com/sun/star/accessibility/XAccessibleHyperlink.idl new file mode 100644 index 000000000..067c529d6 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleHyperlink.idl @@ -0,0 +1,131 @@ +/* -*- 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_XAccessibleHyperlink_idl__ +#define __com_sun_star_accessibility_XAccessibleHyperlink_idl__ + +#include <com/sun/star/accessibility/XAccessibleAction.idl> +#include <com/sun/star/lang/IndexOutOfBoundsException.idl> + +module com { module sun { module star { module accessibility { + +/** Implement this interface to represent a hyperlink or a group of + hyperlinks. + + <p>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.</p> + + <p>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.</p> + + @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. + + <p>For an HTML link for example, this method would return the string + enclosed by the <&a href> tag.</p> + + @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. + + <p>For an HTML link for example, this method would return the URL of + the <&a href> tag.</p> + + @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. + + <p>The returned value relates to the XAccessibleText + interface that owns this hyperlink.</p> + + @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. + + <p>The returned value relates to the XAccessibleText + interface that owns this hyperlink.</p> + + @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. + + <p>This is a volatile state that may change without further warning + like e.g. sending an appropriate event.</p> + + @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__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IndexOutOfBoundsException.idl> +#include <com/sun/star/accessibility/XAccessibleText.idl> + +module com { module sun { module star { module accessibility { + + interface XAccessibleHyperlink; + + +/** Implement this interface to expose the hypertext structure of a document. + + <p>The 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.</p> + + @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. + + <p>The returned XAccessibleHyperlink object + encapsulates the hyperlink and provides several kinds of information + describing it.</p> + + @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. + + <p>In a HTML document this is the case when a <a href> tag + spans (includes) the given character index.</p> + + @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__ + +#include <com/sun/star/uno/XInterface.idl> + +module com { module sun { module star { module accessibility { + +/** Implement this interface to represent images and icons. + + <p>This 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.</p> + + @since OOo 1.1.2 +*/ +interface XAccessibleImage : ::com::sun::star::uno::XInterface +{ + /** Returns the localized description of the image. + + <p>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.)</p> + + @return + Returns a localized string that describes the image's function + or content. + */ + string getAccessibleImageDescription (); + + /** Returns the height of the image. + + <p>The height is returned in units specified by the parents + coordinate system.</p> + + @return + Returns the image's height with respect to the parent's + coordinate system. + */ + long getAccessibleImageHeight (); + + /** Returns the width of the image. + + <p>The width is returned in units specified by the parents + coordinate system.</p> + + @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__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/awt/KeyStroke.idl> +#include <com/sun/star/lang/IndexOutOfBoundsException.idl> + +module com { module sun { module star { module accessibility { + +/** This interface can be used to represent any number of key bindings which + then can be associated to a certain action. + + <p>There 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.</p> + + <p>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 </p> + + @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__ + +#include <com/sun/star/accessibility/XAccessibleText.idl> +#include <com/sun/star/lang/IndexOutOfBoundsException.idl> +#include <com/sun/star/beans/PropertyValue.idl> + +module com { module sun { module star { module accessibility { + +/** Implement this interface to give provide a mapping between text index + and line numbers. + + <p>This interface is typically used in conjunction with the + XAccessibleText interface and extents it with a notion + of line numbers</p> + + @since OOo 3.0 +*/ + +/// not yet published +interface XAccessibleMultiLineText + : ::com::sun::star::accessibility::XAccessibleText +{ + /** Returns the line number at the specified index. + + <p>For a text object that is spread over multiple lines, this method + provides a mapping from a text index to the corresponding line number. + </p> + + @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. + + <p>Returns the substring of text that makes up the specified line + number.</p> + + <p>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.</p> + + @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. + + <p>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:</p> + + <p>Some text implementations place the caret at the end of the current + line when the <b>End</b> 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.</p> + + @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. + + <p>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:</p> + + <p>Some text implementations place the caret at the end of the current + line when the <b>End</b> 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.</p> + + @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__ + +#include <com/sun/star/accessibility/AccessibleRelation.idl> +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IndexOutOfBoundsException.idl> + +module com { module sun { module star { module accessibility { + +/** Implement this interface to give access to an object's set of relations. + + <p>Such 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.</p> + + @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..cc10cca44 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleSelection.idl @@ -0,0 +1,154 @@ +/* -*- 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__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IndexOutOfBoundsException.idl> + +module com { module sun { module star { module accessibility { + + interface XAccessible; + +/** Implement this interface to represent a selection of accessible objects. + + <p>This 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.</p> + + <p>The XAccessibleSelection interface has to be implemented + in conjunction with the XAccessibleContext interface that + provides the children on which the first operates.</p> + + <p>It depends on the class implementing this interface, whether it + supports single or multi selection.</p> + + @since OOo 1.1.2 +*/ +interface XAccessibleSelection : ::com::sun::star::uno::XInterface +{ + /** Selects the specified Accessible child of the + object. + + <p>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).</p> + + @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. + + <p>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.</p> + */ + void selectAllAccessibleChildren (); + + /** Returns the number of Accessible children that are currently + selected. + + <p>This number specifies the valid interval of indices that can be + used as arguments for the methods + XAccessibleSelection::getSelectedChild() and + XAccessibleSelection::deselectSelectedChild().</p> + + @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__ + +#include <com/sun/star/accessibility/AccessibleStateType.idl> +#include <com/sun/star/uno/XInterface.idl> + +module com { module sun { module star { module accessibility { + + interface XAccessible; + +/** Implement this interface to represent a set of states. + + <p>The interface XAccessibleStateSet represents a set of + states of an accessible object. It can hold any combination of states + defined by the constants collection + AccessibleStateType.</p> + + @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] sequence<short> aStateSet); + + /** Get all currently set states as a sequence of state ids. + + <p>The 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.</p> + + @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. + */ + sequence<short> getStates (); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleTable.idl b/offapi/com/sun/star/accessibility/XAccessibleTable.idl new file mode 100644 index 000000000..0b365ccd3 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleTable.idl @@ -0,0 +1,377 @@ +/* -*- 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_XAccessibleTable_idl__ +#define __com_sun_star_accessibility_XAccessibleTable_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IndexOutOfBoundsException.idl> + +module com { module sun { module star { module accessibility { + + interface XAccessible; + +/** Implement this interface to give access to a two-dimensional table. + + <p>The XAccessibleTable interface is used to represent + two-dimensional tables. This interface combines the two interfaces + <code>javax.accessibility.AccessibleTable</code> and + <code>javax.accessibility.AccessibleExtendedTable</code> of the Java Accessibility API + (version 1.4).</p> + + <p>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().</p> + + <p>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.</p> + + @since OOo 1.1.2 +*/ +interface XAccessibleTable : ::com::sun::star::uno::XInterface +{ + /** Returns the number of used rows in the table. + + <p>The implementation, however, may allow the access of columns + beyond this number.</p> + + @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. + + <p>The implementation, however, may allow the access of columns + beyond this number.</p> + + @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. + + <p>The result differs from 1 if the specified cell spans multiple + rows.</p> + + @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. + + <p>The result differs from 1 if the specified cell spans multiple + columns.</p> + + @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. + + <p>Content and size of the returned table are implementation + dependent.</p> + + @return + Returns always a valid reference to an + XAccessibleTable object. + */ + XAccessibleTable getAccessibleRowHeaders (); + + /** Returns the column headers as an XAccessibleTable + object. + + <p>Content and size of the returned table are implementation + dependent.</p> + + @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. + */ + sequence<long> getSelectedAccessibleRows (); + + /** Returns a list of the indices of completely selected columns in a + table. + + @return + The returned sequence contains indices of all completely + selected columns in the table. This sequence is in ascending + order. If no column is selected then the sequence is empty. + */ + sequence<long> getSelectedAccessibleColumns (); + + /** Returns a boolean value indicating whether the specified row is + completely selected. + + @param nRow + Index of the row for which to determine whether it is selected. + + @return + Returns `TRUE` if the specified row is selected completely and + `FALSE` otherwise. + + @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. + */ + boolean isAccessibleRowSelected ([in] long nRow) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns a boolean value indicating whether the specified column + is completely selected. + + @param nColumn + Index of the column for which to determine whether it is + selected. + + @return + Returns `TRUE` if the specified column is selected completely + and `FALSE` otherwise. + + @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. + */ + boolean isAccessibleColumnSelected ([in] long nColumn) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns the XAccessible object at the specified row + and column in the table. + + <p>This method has been renamed from the Java name + <code>getAccessibleAt</code> to + XAccessibleTable::getAccessibleCellAt() to avoid + ambiguities with the + XAccessibleComponent::getAccessibleAt() method when + accessed, for instance, from StarBasic.</p> + + @param nRow + The row index for which to retrieve the cell. + + @param nColumn + The column index for which to retrieve the cell. + + @return + If both row and column index are valid then the corresponding + XAccessible object is returned that represents the + requested cell regardless of whether the cell is currently + visible (on the screen). + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the specified column and/or row index is not valid, i.e. lies not inside + the valid range of 0 up to + XAccessibleTable::getAccessibleColumnCount() - 1. + */ + XAccessible getAccessibleCellAt ([in] long nRow, [in] long nColumn) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns the caption for the table. + + @return + If the table has a caption then a reference to it is returned, + else an empty reference is returned. + */ + XAccessible getAccessibleCaption (); + + /** Returns the summary description of the table. + + @return + Returns a reference to an implementation dependent + XAccessible object representing the table's summary + or an empty reference if the table does not support a summary. + */ + XAccessible getAccessibleSummary (); + + /** Returns a boolean value indicating whether the accessible at the + specified row and column is selected. + + @param nRow + Row index of the cell for which to determine if the accessible + object that spans that cell is selected. + + @param nColumn + Column index of the cell for which to determine if the + accessible object that spans that cell is selected. + + @return + Returns `TRUE` if the given row and column indices are valid + and the specified accessible object is selected. Otherwise + `FALSE` is returned. + */ + boolean isAccessibleSelected ([in] long nRow, [in] long nColumn) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns the child index of the accessible object that spans the + specified cell. + + <p>This is the same index that would be returned by calling + XAccessibleContext::getAccessibleIndexInParent() for + that accessible object.</p> + + @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__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IndexOutOfBoundsException.idl> + +module com { module sun { module star { module accessibility { + +interface XAccessible; + +interface XAccessibleTableSelection : ::com::sun::star::uno::XInterface +{ + boolean selectRow ([in] long row) raises (::com::sun::star::lang::IndexOutOfBoundsException); + boolean unselectRow ([in] long row) raises (::com::sun::star::lang::IndexOutOfBoundsException); + + boolean selectColumn ([in] long column) raises (::com::sun::star::lang::IndexOutOfBoundsException); + boolean unselectColumn ([in] long column) raises (::com::sun::star::lang::IndexOutOfBoundsException); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleText.idl b/offapi/com/sun/star/accessibility/XAccessibleText.idl new file mode 100644 index 000000000..98af06445 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleText.idl @@ -0,0 +1,527 @@ +/* -*- 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_XAccessibleText_idl__ +#define __com_sun_star_accessibility_XAccessibleText_idl__ + +#include <com/sun/star/accessibility/AccessibleTextType.idl> +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/awt/Point.idl> +#include <com/sun/star/awt/Rectangle.idl> +#include <com/sun/star/lang/IndexOutOfBoundsException.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/beans/PropertyValue.idl> +#include <com/sun/star/beans/UnknownPropertyException.idl> +#include <com/sun/star/accessibility/TextSegment.idl> + +module com { module sun { module star { module accessibility { + +/** Implement this interface to give read-only access to a text. + + <p>The 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.</p> + + <p>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.</p> + + <p>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.</p> + + @since OOo 1.1.2 +*/ +interface XAccessibleText : ::com::sun::star::uno::XInterface +{ + /** Return the position of the caret. + + <p>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.</p> + + @return + The returned offset is relative to the text represented by this + object. + */ + long getCaretPosition (); + + /** Set the position of the caret. + + <p>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.</p> + + <p>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.</p> + + <p>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.</p> + + @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. + + <p>Returns the character at the given index.</p> + + @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. + + <p>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.</p> + + @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. + + <p>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.</p> + + @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] sequence<string> aRequestedAttributes) + raises (::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::beans::UnknownPropertyException); + + + /** Return the bounding box of the specified position. + + <p>Returns the bounding box of the indexed character.</p> + + <p>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.<br> + 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.</p> + @param nIndex + Index of the character for which to return its bounding box. + The valid range is 0..length. + + @return + The bounding box of the referenced character. The bounding box + of the virtual character at position length has to have + non-empty dimensions. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is invalid + */ + ::com::sun::star::awt::Rectangle getCharacterBounds ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + + /** Return the number of characters in the represented text. + + <p>Returns the number of characters in the text represented by this + object or, in other words, the text length.</p> + + @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. + + <p>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.</p> + + @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. + + <p>Returns the portion of the text that is selected.</p> + + @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. + + <p>Returns the index of the start of the selected text.</p> + + @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. + + <p>Returns the index of the end of the selected text.</p> + + @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. + + <p>Sets the selected text portion according to the given indices. + The old selection is replaced by the new selection.</p> + + <p>The selection encompasses the same string of text that + XAccessibleText::getTextRange() would have + selected. See there for details.</p> + + <p>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.</p> + + @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. + + <p>Returns the complete text. This is equivalent to a call to + XAccessibleText::getTextRange() with the arguments + zero and <code>getCharacterCount()-1</code>.</p> + + @return + Returns a string that contains the complete text. + */ + string getText (); + + /** Return the specified text range. + + <p>Returns the substring between the two given indices.</p> + + <p>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.</p> + + <p>The whole text can be requested by passing the indices zero and + <code>getCharacterCount()</code>. If both indices have the same + value, an empty string is returned.</p> + + @param nStartIndex + Index of the first character to include in the returned string. + The valid range is 0..length. + + @param nEndIndex + Index of the last character to exclude in the returned string. + The valid range is 0..length. + + @return + Returns the substring starting with the character at nStartIndex + (inclusive) and up to the character at nEndIndex (exclusive), if + nStartIndex is less than or equal to nEndIndex. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the indices are invalid + */ + string getTextRange ([in] long nStartIndex, [in] long nEndIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Get a text portion around the given position. + + <p>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.</p> + + @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. + + <p>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.</p> + + <p>For example, if text type is + AccessibleTextType::WORD, then the complete word + that is closest to and located before nIndex is returned.</p> + + <p>If the index is valid, but no suitable word (or other text + type) is found, an empty text segment is returned.</p> + + @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. + + <p>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.</p> + + <p>For example, if text type is + AccessibleTextType::WORD, then the complete word + that is closest to and located behind nIndex is returned.</p> + + <p>If the index is valid, but no suitable word (or other text + type) is found, an empty string is returned.</p> + + @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. + + <p>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. </p> + + <p>The other clipboard related methods + XAccessibleEditableText::cutText() and + XAccessibleEditableText::deleteText() can be found in + the XAccessibleEditableText because of their + destructive nature.</p> + + @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__ + +#include <com/sun/star/lang/IndexOutOfBoundsException.idl> +#include <com/sun/star/beans/PropertyValue.idl> +#include <com/sun/star/beans/UnknownPropertyException.idl> + +module com { module sun { module star { module accessibility { + +/** Implement this interface to give access to the attributes of a text. + + @since OOo 2.0.4 +*/ +interface XAccessibleTextAttributes +{ + /** Get the default attribute set for the text. + + <p>Returns 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.</p> + + @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. + + <p>When the sequence is empty all attributes are returned.</p> + + @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] sequence<string> RequestedAttributes ) + raises ( ::com::sun::star::beans::UnknownPropertyException ); + + /** Get the run attribute set for the specified position. + + <p>Returns 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.</p> + + @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. + + <p>When the sequence is empty all attributes are returned.</p> + + @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] sequence<string> RequestedAttributes ) + raises (::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::lang::IndexOutOfBoundsException); + +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleTextMarkup.idl b/offapi/com/sun/star/accessibility/XAccessibleTextMarkup.idl new file mode 100644 index 000000000..bf9fb3617 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleTextMarkup.idl @@ -0,0 +1,124 @@ +/* -*- 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_XAccessibleTextMarkup_idl__ +#define __com_sun_star_accessibility_XAccessibleTextMarkup_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/lang/IndexOutOfBoundsException.idl> +#include <com/sun/star/accessibility/XAccessibleText.idl> +#include <com/sun/star/accessibility/TextSegment.idl> + +module com { module sun { module star { module accessibility { + + interface XAccessibleTextMarkup; + + +/** Implement this interface to expose the text markups of a text. + + <p>The 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.</p> + + @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. + + <p>Throws IllegalArgumentException, if given text + markup type is out of valid range.</p> + + @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 + + <p>Throws IndexOutOfBoundsException, if given index + is out of valid range.</p> + <p>Throws IllegalArgumentException, if given text + markup type is out of valid range.</p> + + @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. + + <p>Throws IndexOutOfBoundsException, if given character + index is out of range [0..number of characters in the text).</p> + <p>Throws IllegalArgumentException, if given text + markup type is out of valid range.</p> + + @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. + */ + sequence<TextSegment> getTextMarkupAtIndex ( [in] long CharIndex, + [in] long TextMarkupType ) + raises (::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::IllegalArgumentException); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleTextSelection.idl b/offapi/com/sun/star/accessibility/XAccessibleTextSelection.idl new file mode 100644 index 000000000..ecc61e721 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleTextSelection.idl @@ -0,0 +1,49 @@ +/* -*- 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_XAccessibleTextSelection_idl__ +#define __com_sun_star_accessibility_XAccessibleTextSelection_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/awt/Point.idl> +#include <com/sun/star/awt/Rectangle.idl> +#include <com/sun/star/lang/IndexOutOfBoundsException.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> + +module com { module sun { module star { module accessibility { + +interface XAccessibleTextSelection : ::com::sun::star::uno::XInterface +{ + boolean scrollToPosition ([in] ::com::sun::star::awt::Point aPoint, [in] boolean isLeftTop) raises (::com::sun::star::lang::IllegalArgumentException); + + long getSelectedPortionCount(); + + long getSeletedPositionStart ([in] long nSelectedPortionIndex) raises (::com::sun::star::lang::IndexOutOfBoundsException); + + long getSeletedPositionEnd ([in] long nSelectedPortionIndex) raises (::com::sun::star::lang::IndexOutOfBoundsException); + + long addSelection( [in] long selectionIndex, [in]long startOffset, [in] long endOffset) raises (::com::sun::star::lang::IndexOutOfBoundsException); + + boolean removeSelection( [in] long selectionIndex ) raises (::com::sun::star::lang::IndexOutOfBoundsException); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleValue.idl b/offapi/com/sun/star/accessibility/XAccessibleValue.idl new file mode 100644 index 000000000..d25c81435 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleValue.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_XAccessibleValue_idl__ +#define __com_sun_star_accessibility_XAccessibleValue_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +module com { module sun { module star { module accessibility { + +/** Implement this interface to give access to a single numerical value. + + <p>The 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.</p> + + @since OOo 1.1.2 +*/ +interface XAccessibleValue : ::com::sun::star::uno::XInterface +{ + /** Returns the value of this object as a number. + + <p>The exact return type is implementation dependent. Typical types + are long and double.</p> + + @return + Returns the current value represented by this object. + */ + any getCurrentValue (); + + /** Sets the value of this object to the given number. + + <p>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.</p> + + @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. + + <p>The type of the returned value is implementation dependent. It + does not have to be the same type as that returned by + getCurrentAccessibleValue().</p> + + @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. + + <p>The type of the returned value is implementation dependent. It + does not have to be the same type as that returned by + getCurrentAccessibleValue().</p> + + @return + Returns the minimal value in an implementation dependent type. + If this object has no upper bound then an empty object is + returned. + */ + any getMinimumValue (); +}; + +}; }; }; }; + +#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 <com/sun/star/lang/XComponent.idl> + +module com { module sun { module star { module accessibility { + +/** The interface must be implemented for a server that can support MSAA com objects and send win32 accessible events +*/ +interface XMSAAService : ::com::sun::star::lang::XComponent +{ + /** Return com object pointer. + + @return + A reference to the object that contains the actual accessibility information. + + @see AccessibleContext + */ + hyper getAccObjectPtr([in] hyper hWnd, [in] hyper lParam, [in] hyper wParam); + + void handleWindowOpened([in] hyper i); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |