openoffice-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From stev...@apache.org
Subject svn commit: r1420522 [8/12] - in /openoffice/branches/ia2/main/winaccessibility: ./ inc/ prj/ source/ source/UAccCOM/ source/UAccCOMIDL/ source/service/
Date Wed, 12 Dec 2012 04:41:33 GMT
Added: openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleHyperlink.idl
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleHyperlink.idl?rev=1420522&view=auto
==============================================================================
--- openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleHyperlink.idl (added)
+++ openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleHyperlink.idl Wed Dec 12 04:41:12 2012
@@ -0,0 +1,123 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+import "AccessibleAction.idl";
+
+/** @brief This interface represents hyperlinks.
+
+ This interface represents a hyperlink associated with a single substring 
+  of text or single non-text object.  Non-text objects can have either a 
+  single link or a collection of links such as when the non-text object is 
+  an image map.
+
+ Linked objects and anchors are implementation dependent. This interface is 
+  derived from IAccessibleAction.  IAccessibleAction::nActions indicates the 
+  maximum value for the indices used with the methods of this interface.
+        
+ Furthermore, the object that implements this interface has to be connected 
+  implicitly or explicitly with an object that implements IAccessibleText.
+  IAccessibleHyperlink::startIndex and IAccessibleHyperlink::endIndex are
+  indices with respect to the text exposed by IAccessibleText.
+*/
+[object, uuid(01C20F2B-3DD2-400f-949F-AD00BDAB1D41)]
+interface IAccessibleHyperlink : IAccessibleAction
+{
+
+  /** @brief Returns an object that represents the link anchor, as appropriate
+   for the link at the specified index.       
+   @param [in] index
+    A 0 based 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 is indicated by IAccessibleAction::nActions.
+   @param [out] anchor
+    This is an implementation dependent value.  For example, for a text link this 
+	method could return the substring of the containing string where the subsgtring
+	is overridden with link behavior, and for an image link this method could return 
+	an IUnknown VARIANT for IAccessibleImage.
+  */
+  [propget] HRESULT anchor
+    (
+     [in] long index,
+     [out, retval] VARIANT *anchor
+    );
+
+  /** @brief Returns an object representing the target of the link, as appropriate
+   for the link at the specified index.       
+   @param [in] index
+    A 0 based 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 is indicated by IAccessibleAction::nActions.
+   @param [out] anchorTarget
+    This is an implementation dependent value.  For example this method could
+	return a BSTR VARIANT of the URI.  Alternatively this method could return an
+	IUnknown VARIANT of a COM interface representing a target object to be 
+	activated when the link is activated.
+  */
+  [propget] HRESULT anchorTarget
+    (
+     [in] long index,
+     [out, retval] VARIANT *anchorTarget
+    );
+
+  /** @brief Returns the index at which the textual representation of the hyperlink starts.
+
+   The returned value is related to the IAccessibleText interface of the object that 
+   owns this hyperlink. 
+   @param [out] index
+  */
+  [propget] HRESULT startIndex
+    (
+     [out, retval] long *index
+    );
+
+  /** @brief Returns the index at which the textual rerpesentation of the hyperlink ends.
+    
+   The returned value is related to the IAccessibleText interface of the object that 
+   owns this hyperlink. The character at the index is not part of the hypertext.  
+   @param [out] index
+  */
+  [propget] HRESULT endIndex
+    (
+     [out, retval] long *index
+    );
+
+  /** @brief Returns whether the target object referenced by this link is still valid.
+        
+   This is a volatile state that may change without sending an appropriate event.
+   Returns TRUE if the referenced target is still valid and FALSE otherwise.
+
+   @param [out] valid
+  */
+  [propget] HRESULT valid
+    (
+     [out, retval] boolean *valid
+    );
+}

Added: openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleHypertext.idl
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleHypertext.idl?rev=1420522&view=auto
==============================================================================
--- openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleHypertext.idl (added)
+++ openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleHypertext.idl Wed Dec 12 04:41:12 2012
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+import "AccessibleText.idl";
+import "AccessibleHyperlink.idl";
+
+/** @brief This interface exposes information about hypertext in a document.
+
+ The IAccessibleHypertext interface is the main interface to expose
+  hyperlinks in a document, typically a text document, that are used 
+  to reference other documents.  A typical implementation is to implement 
+  this interface the smallest text object such as a paragraph of text.
+*/
+[object, uuid(6B4F8BBF-F1F2-418a-B35E-A195BC4103B9)]
+interface IAccessibleHypertext : IAccessibleText
+{
+
+  /** @brief Returns the number of links and link groups contained within this hypertext 
+    paragraph.
+   @param [out] hyperlinkCount
+    The number of links and link groups within this hypertext paragraph.  
+    Returns 0 if there is no link.
+  */
+  [propget] HRESULT nHyperlinks
+    (
+     [out, retval] long *hyperlinkCount
+    );
+
+  /** @brief Returns the specified link.
+    
+   The returned IAccessibleHyperlink object encapsulates the hyperlink and 
+    provides several kinds of information describing it.
+   @param [in] index
+    This 0 based index specifies the hyperlink to return.
+   @param [out] hyperlink
+    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 a NULL pointer is returned.
+  */
+  [propget] HRESULT hyperlink
+    (
+     [in] long index,
+     [out, retval] IAccessibleHyperlink **hyperlink
+    );
+
+  /** @brief Returns the index of the hyperlink that is associated with this character index.
+        
+   This is the case when a link spans the given character index.
+   @param [in] charIndex
+    A 0 based index of the character for which to return the link index.  If 
+	IAccessibleText 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.
+   @param [out] hyperlinkIndex
+    Returns the 0 based index of the hyperlink that is associated with this 
+	character index, or -1 if charIndex is not on a link.
+  */
+  [propget] HRESULT hyperlinkIndex
+    (
+     [in] long charIndex,
+     [out, retval] long *hyperlinkIndex
+    );
+
+}

Added: openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleImage.idl
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleImage.idl?rev=1420522&view=auto
==============================================================================
--- openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleImage.idl (added)
+++ openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleImage.idl Wed Dec 12 04:41:12 2012
@@ -0,0 +1,82 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+import "IA2CommonTypes.idl";
+
+/** @brief This interface represents images and icons.
+
+ This interface is used for a representation of images like icons on buttons.
+  IAccessibleImage only needs to be implemented in certain situations.  Some
+  examples are:
+  <ol>
+   <li>The accessible name and description are not enough to fully
+    describe the image, e.g. when the accessible description is used to define the
+    behavior of an actionable image and the image itself conveys semantically
+    significant information.
+   <li>The user can edit the content that includes an
+    image and therefore the user needs to be able to review the image's position.
+  </ol>
+*/
+[object, uuid(FE5ABB3D-615E-4f7b-909F-5F0EDA9E8DDE)]
+interface IAccessibleImage : IUnknown
+{
+  /** @brief Returns the localized description of the image.          
+   @param [out] description
+  */
+  [propget] HRESULT description
+    (
+     [out, retval] BSTR *description
+    );
+
+  /** @brief Returns the coordinates of the image.
+   @param [in] coordinateType
+    Specifies whether the returned coordinates should be relative to the screen or the parent object.
+   @param [out] x
+   @param [out] y
+  */
+  [propget] HRESULT imagePosition
+    (
+	 [in] enum IA2CoordinateType coordinateType,
+	 [out] long *x,
+     [out, retval] long *y
+    );
+
+  /** @brief Returns the size of the image in units specified by parent's coordinate system.
+   @param [out] height
+   @param [out] width
+  */
+
+  [propget] HRESULT imageSize
+    (
+     [out] long *height,
+	 [out, retval] long *width
+    );
+}

Added: openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleKeyBinding.idl
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleKeyBinding.idl?rev=1420522&view=auto
==============================================================================
--- openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleKeyBinding.idl (added)
+++ openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleKeyBinding.idl Wed Dec 12 04:41:12 2012
@@ -0,0 +1,73 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+import "AccessibleKeyStroke.idl";
+        
+[object, uuid(6B1923AC-3E9A-4336-99E1-A69EA4E946E9)]
+interface IAccessibleKeyBinding : IUnknown
+{
+  ///
+  /// get number of key bindings for this object
+  ///
+  [propget] HRESULT nKeyBindings
+    (
+     [out, retval] long *nKeyBindings
+     );
+
+  ///
+  /// get length of keystroke sequence for specified key binding
+  ///
+  [propget] HRESULT keyStrokeSequenceLength
+    (
+     [in] long keyBindingIndex,
+     [out] long *sequenceLength
+     );
+
+  ///
+  /// 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.
+  ///
+  [propget] HRESULT keyBinding
+    (
+     [in] long keyBindingIndex,
+     [in] long keyStrokeSequenceLength,
+     [out, size_is(,keyStrokeSequenceLength), length_is(,*actualKeyStrokeSequenceLength)]
+       ACCESSIBLE_KEYSTROKE **keyStroke,
+     [out, retval] long *actualKeyStrokeSequenceLength
+     );
+}

Added: openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleKeyStroke.idl
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleKeyStroke.idl?rev=1420522&view=auto
==============================================================================
--- openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleKeyStroke.idl (added)
+++ openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleKeyStroke.idl Wed Dec 12 04:41:12 2012
@@ -0,0 +1,156 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+        
+typedef struct _ACCESSIBLE_KEYSTROKE {
+  short modifiers;
+  short keyCode;
+  char keyChar;
+  short keyFunc;
+} ACCESSIBLE_KEYSTROKE;
+
+const short MODIFIER_SHIFT = 1;
+const short MODIFIER_CTRL = 2;
+const short MODIFIER_ALT = 4;
+
+const short KEYCODE_NUM0 = 256;
+const short KEYCODE_NUM1 = 257;
+const short KEYCODE_NUM2 = 258;
+const short KEYCODE_NUM3 = 259;
+const short KEYCODE_NUM4 = 260;
+const short KEYCODE_NUM5 = 261;
+const short KEYCODE_NUM6 = 262;
+const short KEYCODE_NUM7 = 263;
+const short KEYCODE_NUM8 = 264;
+const short KEYCODE_NUM9 = 265;
+const short KEYCODE_A = 512;
+const short KEYCODE_B = 513;
+const short KEYCODE_C = 514;
+const short KEYCODE_D = 515;
+const short KEYCODE_E = 516;
+const short KEYCODE_F = 517;
+const short KEYCODE_G = 518;
+const short KEYCODE_H = 519;
+const short KEYCODE_I = 520;
+const short KEYCODE_J = 521;
+const short KEYCODE_K = 522;
+const short KEYCODE_L = 523;
+const short KEYCODE_M = 524;
+const short KEYCODE_N = 525;
+const short KEYCODE_O = 526;
+const short KEYCODE_P = 527;
+const short KEYCODE_Q = 528;
+const short KEYCODE_R = 529;
+const short KEYCODE_S = 530;
+const short KEYCODE_T = 531;
+const short KEYCODE_U = 532;
+const short KEYCODE_V = 533;
+const short KEYCODE_W = 534;
+const short KEYCODE_X = 535;
+const short KEYCODE_Y = 536;
+const short KEYCODE_Z = 537;
+const short KEYCODE_F1 = 768;
+const short KEYCODE_F2 = 769;
+const short KEYCODE_F3 = 770;
+const short KEYCODE_F4 = 771;
+const short KEYCODE_F5 = 772;
+const short KEYCODE_F6 = 773;
+const short KEYCODE_F7 = 774;
+const short KEYCODE_F8 = 775;
+const short KEYCODE_F9 = 776;
+const short KEYCODE_F10 = 777;
+const short KEYCODE_F11 = 778;
+const short KEYCODE_F12 = 779;
+const short KEYCODE_F13 = 780;
+const short KEYCODE_F14 = 781;
+const short KEYCODE_F15 = 782;
+const short KEYCODE_F16 = 783;
+const short KEYCODE_F17 = 784;
+const short KEYCODE_F18 = 785;
+const short KEYCODE_F19 = 786;
+const short KEYCODE_F20 = 787;
+const short KEYCODE_F21 = 788;
+const short KEYCODE_F22 = 789;
+const short KEYCODE_F23 = 790;
+const short KEYCODE_F24 = 791;
+const short KEYCODE_F25 = 792;
+const short KEYCODE_F26 = 793;
+const short KEYCODE_DOWN = 1024;
+const short KEYCODE_UP = 1025;
+const short KEYCODE_LEFT = 1026;
+const short KEYCODE_RIGHT = 1027;
+const short KEYCODE_HOME = 1028;
+const short KEYCODE_END = 1029;
+const short KEYCODE_PAGEUP = 1030;
+const short KEYCODE_PAGEDOWN = 1031;
+const short KEYCODE_RETURN = 1280;
+const short KEYCODE_ESCAPE = 1281;
+const short KEYCODE_TAB = 1282;
+const short KEYCODE_BACKSPACE = 1283;
+const short KEYCODE_SPACE = 1284;
+const short KEYCODE_INSERT = 1285;
+const short KEYCODE_DELETE = 1286;
+const short KEYCODE_ADD = 1287;
+const short KEYCODE_SUBTRACT = 1288;
+const short KEYCODE_MULTIPLY = 1289;
+const short KEYCODE_DIVIDE = 1290;
+const short KEYCODE_POINT = 1291;
+const short KEYCODE_COMMA = 1292;
+const short KEYCODE_LESS = 1293;
+const short KEYCODE_GREATER = 1294;
+const short KEYCODE_EQUAL = 1295;
+const short KEYCODE_OPEN = 1296;
+const short KEYCODE_CUT = 1297;
+const short KEYCODE_COPY = 1298;
+const short KEYCODE_PASTE = 1299;
+const short KEYCODE_UNDO = 1300;
+const short KEYCODE_REPEAT = 1301;
+const short KEYCODE_FIND = 1302;
+const short KEYCODE_PROPERTIES = 1303;
+const short KEYCODE_FRONT = 1304;
+const short KEYCODE_CONTEXTMENU = 1305;
+const short KEYCODE_HELP = 1306;
+
+const short SHORTCUT_DONTKNOW = 0;
+const short NEW = 1;
+const short OPEN = 2;
+const short SAVE = 3;
+const short SAVEAS = 4;
+const short PRINT = 5;
+const short CLOSE = 6;
+const short QUIT = 7;
+const short CUT = 8;
+const short COPY = 9;
+const short PASTE = 10;
+const short UNDO = 11;
+const short REDO = 12;
+const short UNODELETE = 13;
+const short REPEAT = 14;
+const short FIND = 15;
+const short FINDBACKWARD = 16;
+const short PROPERTIES = 17;
+const short FRONT = 18;

Added: openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleRelation.idl
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleRelation.idl?rev=1420522&view=auto
==============================================================================
--- openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleRelation.idl (added)
+++ openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleRelation.idl Wed Dec 12 04:41:12 2012
@@ -0,0 +1,152 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+
+/** @defgroup grpRelations Relations 
+  Use the following constants to compare against the BSTRs returned by 
+  IAccessibleRelation::relationType.
+*/ 
+///@{
+
+/** Some attribute of this object is affected by a target object. */
+const WCHAR *const IA2_RELATION_CONTROLLED_BY = L"controlledBy";
+
+/** This object is interactive and controls some attribute of a target object. */
+const WCHAR *const IA2_RELATION_CONTROLLER_FOR = L"controllerFor";
+
+/** This object is described by the target object. */
+const WCHAR *const IA2_RELATION_DESCRIBED_BY = L"describedBy";
+
+/** This object is describes the target object. */
+const WCHAR *const IA2_RELATION_DESCRIPTION_FOR = L"descriptionFor";
+
+/** This object is embedded by a target object. */
+const WCHAR *const IA2_RELATION_EMBEDDED_BY = L"embeddedBy";
+
+/** This object embeds a target object. This relation can be used on the
+ OBJID_CLIENT accessible for a top level window to show where the content 
+ areas are.
+*/
+const WCHAR *const IA2_RELATION_EMBEDS = L"embeds";
+
+/** Content flows to this object from a target object. */
+const WCHAR *const IA2_RELATION_FLOWS_FROM = L"flowsFrom";
+
+/** Content flows from this object to a target object. */
+const WCHAR *const IA2_RELATION_FLOWS_TO = L"flowsTo";
+
+/** This object is label for a target object. */
+const WCHAR *const IA2_RELATION_LABEL_FOR = L"labelFor";
+
+/** This object is labelled by a target object. */
+const WCHAR *const IA2_RELATION_LABELED_BY = L"labelledBy";
+
+/** This object is a member of a group of one or more objects. When 
+ there is more than one object in the group each member may have one and the 
+ same target, e.g. a grouping object.  It is also possible that each member has 
+ multiple additional targets, e.g. one for every other member in the group.
+*/
+const WCHAR *const IA2_RELATION_MEMBER_OF = L"memberOf";
+
+/** This object is a child of a target object. */
+const WCHAR *const IA2_RELATION_NODE_CHILD_OF = L"nodeChildOf";
+
+/** This object is a parent window of the target object. */
+const WCHAR *const IA2_RELATION_PARENT_WINDOW_OF = L"parentWindowOf";
+
+/** This object is a transient component related to the target object. 
+ When this object is activated the target object doesn't loose focus.
+*/
+const WCHAR *const IA2_RELATION_POPUP_FOR = L"popupFor";
+
+/** This object is a sub window of a target object. */
+const WCHAR *const IA2_RELATION_SUBWINDOW_OF = L"subwindowOf";
+
+///@}
+
+/// This interface gives access to an object's set of relations.
+[object, uuid(7CDF86EE-C3DA-496a-BDA4-281B336E1FDC)]
+interface IAccessibleRelation : IUnknown
+{
+  /** @brief Returns the type of the relation.
+   @param [out] relationType
+  */
+  [propget] HRESULT relationType
+    (
+     [out, retval] BSTR *relationType
+    );
+
+  /** @brief Returns a localized version of the relation type.
+   @param [out] localizedRelationType
+  */
+  [propget] HRESULT localizedRelationType
+    (
+     [out, retval] BSTR *localizedRelationType
+    );
+
+  /** @brief Returns the number of targets for this relation.
+   @param [out] nTargets
+  */
+  [propget] HRESULT nTargets
+    (
+     [out, retval] long *nTargets
+    );
+
+  /** @brief Returns one accessible relation target.
+   @param [in] targetIndex
+    0 based index
+   @param [out] target
+    Note: Use QueryInterface to get IAccessible2.
+  */
+  [propget] HRESULT target
+    (
+     [in] long targetIndex,
+     [out, retval] IUnknown **target 
+    );
+
+  /** @brief Returns multiple accessible relation targets
+   @param [in] maxTargets
+    Maximum number of targets to get.
+   @param [out] target
+    Array of accessible targets. Use QueryInterface to get IAccessible2.
+   @param [out] nTargets
+    length of array (not more than maxTargets)
+  */
+  [propget] HRESULT targets
+    (
+     [in] long maxTargets, 
+     [out, size_is(maxTargets), length_is(*nTargets)]
+       IUnknown **target, 
+     [out, retval] long *nTargets 
+    );
+
+}

Added: openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleRole.idl
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleRole.idl?rev=1420522&view=auto
==============================================================================
--- openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleRole.idl (added)
+++ openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleRole.idl Wed Dec 12 04:41:12 2012
@@ -0,0 +1,257 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+import "objidl.idl";
+
+/** Collection of roles.
+
+  This enumerator defines the set of possible roles of objects implementing the
+  IAccessible2 interface. The role of an object describes its generic function
+  like 'button', 'menu', or 'text'. You can obtain an object's role by calling
+  the get_accRole method of the IAccessible interface.
+*/
+enum IA2Role {
+
+  /** Unknown role. The object contains some Accessible information, but its 
+   role is not known.
+  */
+  IA2_ROLE_UNKNOWN = 0,
+
+  /** An object that can be drawn into and to manage events from the objects
+   drawn into it.  Also refer to ::IA2_ROLE_FRAME,
+   ::IA2_ROLE_GLASS_PANE, and ::IA2_ROLE_LAYERED_PANE. 
+  */
+  IA2_ROLE_CANVAS = 0x401,
+
+  /// A caption describing another object.
+  IA2_ROLE_CAPTION,
+
+  /// Used for check buttons that are menu items.
+  IA2_ROLE_CHECK_MENU_ITEM,
+
+  /// A specialized dialog that lets the user choose a color.
+  IA2_ROLE_COLOR_CHOOSER,
+
+  /// A date editor.
+  IA2_ROLE_DATE_EDITOR,
+
+  /** An iconified internal frame in an ::IA2_ROLE_DESKTOP_PANE. 
+   Also refer to ::IA2_ROLE_INTERNAL_FRAME.
+  */
+  IA2_ROLE_DESKTOP_ICON,
+
+  /** A desktop pane. A pane that supports internal frames and iconified 
+   versions of those internal frames.  Also refer to ::IA2_ROLE_INTERNAL_FRAME.
+  */
+  IA2_ROLE_DESKTOP_PANE,
+
+  /** A directory pane. A pane that allows the user to navigate through 
+   and select the contents of a directory. May be used by a file chooser.   
+   Also refer to ::IA2_ROLE_FILE_CHOOSER.
+  */
+  IA2_ROLE_DIRECTORY_PANE,
+
+  /// An editable text object in a toolbar.
+  IA2_ROLE_EDITBAR,
+
+  /// Embeded (OLE) object.
+  IA2_ROLE_EMBEDDED_OBJECT,
+
+  /// Text that is used as an endnote (footnote at the end of a chapter or section).
+  IA2_ROLE_ENDNOTE,
+
+  /** A file chooser. 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.  
+   Also refer to ::IA2_ROLE_DIRECTORY_PANE.
+  */
+  IA2_ROLE_FILE_CHOOSER,
+
+  /** A font chooser. A font chooser is a component that lets the user pick 
+   various attributes for fonts.
+  */
+  IA2_ROLE_FONT_CHOOSER,
+
+  /** Footer of a document page.
+   Also refer to ::IA2_ROLE_HEADER.
+  */
+  IA2_ROLE_FOOTER,
+
+  /// Text that is used as a footnote.  Also refer to ::IA2_ROLE_ENDNOTE.
+  IA2_ROLE_FOOTNOTE,
+
+  /** A container of form controls.  An example of the use of this role is to
+   represent an HTML FORM tag.
+  */
+  IA2_ROLE_FORM,
+
+  /** Frame role. A top level window with a title bar, border, menu bar, etc.  
+   It is often used as the primary window for an application.  Also refer to
+   ::IA2_ROLE_CANVAS and the MSAA roles of dialog and window.
+  */
+  IA2_ROLE_FRAME,
+
+  /** A glass pane. A pane that is guaranteed to be painted on top of all panes
+   beneath it.  Also refer to ::IA2_ROLE_CANVAS, ::IA2_ROLE_INTERNAL_FRAME, and
+   ::IA2_ROLE_ROOT_PANE.
+  */
+  IA2_ROLE_GLASS_PANE,
+
+  /** Header of a document page.
+   Also refer to ::IA2_ROLE_FOOTER.
+  */
+  IA2_ROLE_HEADER,
+
+  /// Heading.  Use the IAccessible2::attributes heading-level attribute to determine the heading level.
+  IA2_ROLE_HEADING,
+
+  /// A small fixed size picture, typically used to decorate components.
+  IA2_ROLE_ICON,
+
+  /** An image map object.  Usually a graphic with multiple hotspots, where 
+   each hotspot can be activated resulting in the loading of another document
+   or section of a document.
+  */
+  IA2_ROLE_IMAGE_MAP,
+
+  /** An object which is used to allow input of characters not found on a keyboard,
+   such as the input of Chinese characters on a Western keyboard.
+  */
+  IA2_ROLE_INPUT_METHOD_WINDOW,
+
+  /** An internal frame. 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.
+   Also refer to ::IA2_ROLE_DESKTOP_ICON, ::IA2_ROLE_DESKTOP_PANE, and ::IA2_ROLE_FRAME.
+  */
+  IA2_ROLE_INTERNAL_FRAME,
+
+  /// An object used to present an icon or short string in an interface.
+  IA2_ROLE_LABEL,
+
+  /** A layered pane. 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.
+   Also refer to ::IA2_ROLE_CANVAS, ::IA2_ROLE_GLASS_PANE, and ::IA2_ROLE_ROOT_PANE.
+  */
+  IA2_ROLE_LAYERED_PANE,
+
+  /// An embedded note which is not visible until activated.
+  IA2_ROLE_NOTE,
+
+ /** A specialized pane whose primary use is inside a dialog.
+   Also refer to MSAA's dialog role.
+  */
+  IA2_ROLE_OPTION_PANE,
+
+  /** 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.
+  */
+  IA2_ROLE_PAGE,
+
+  /// A paragraph of text.
+  IA2_ROLE_PARAGRAPH,
+
+  /** A radio button that is a menu item.
+   Also refer to MSAA's button and menu item roles.
+  */
+  IA2_ROLE_RADIO_MENU_ITEM,
+
+  /** An object which is redundant with another object in the accessible hierarchy.
+   ATs typically ignore objects with this role.
+  */
+  IA2_ROLE_REDUNDANT_OBJECT,
+
+  /** A root pane. A specialized pane that has a glass pane and a layered pane 
+   as its children.
+   Also refer to ::IA2_ROLE_GLASS_PANE and ::IA2_ROLE_LAYERED_PANE
+  */
+  IA2_ROLE_ROOT_PANE,
+
+  /** A ruler such as those used in word processors.
+  */
+  IA2_ROLE_RULER,
+
+  /** A scroll pane. An object that allows a user to incrementally view a large 
+   amount of information.  Its children can include scroll bars and a viewport.
+   Also refer to ::IA2_ROLE_VIEW_PORT and MSAA's scroll bar role.
+  */
+  IA2_ROLE_SCROLL_PANE,
+
+  /** A container of document content.  An example of the use of this role is to
+   represent an HTML DIV tag.
+
+   A section may be used as a region.  A region is a group of elements that 
+   together form a perceivable unit.  A region does not necessarily follow the 
+   logical structure of the content, but follows the perceivable structure of 
+   the page.  A region may have an attribute in the set of 
+   IAccessible2::attributes which indicates that it is "live".  A live region 
+   is content that is likely to change in response to a timed change, a user 
+   event, or some other programmed logic or event.
+  */
+  IA2_ROLE_SECTION,
+
+  /// Object with graphical representation used to represent content on draw pages.
+  IA2_ROLE_SHAPE,
+
+  /** A split pane. 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.
+  */
+  IA2_ROLE_SPLIT_PANE,
+
+  /** An object that forms part of a menu system but which can be "undocked" 
+   from or "torn off" the menu system to exist as a separate window.
+  */
+  IA2_ROLE_TEAR_OFF_MENU,
+
+  /// An object used as a terminal emulator.
+  IA2_ROLE_TERMINAL,
+
+  /// Collection of objects that constitute a logical text entity.
+  IA2_ROLE_TEXT_FRAME,
+
+  /** A toggle button. A specialized push button that can be checked or unchecked, 
+   but does not provide a separate indicator for the current state.
+   Also refer to MSAA's roles of push button, check box, and radio button.
+   <BR><B>Note:</B> IA2_ROLE_TOGGLE_BUTTON should not be used.  Instead, use MSAA's 
+   ROLE_SYSTEM_PUSHBUTTON and STATE_SYSTEM_PRESSED.
+  */
+  IA2_ROLE_TOGGLE_BUTTON,
+
+  /** A viewport. 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.
+   Also refer to ::IA2_ROLE_SCROLL_PANE.
+  */
+  IA2_ROLE_VIEW_PORT
+  
+};

Added: openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleStates.idl
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleStates.idl?rev=1420522&view=auto
==============================================================================
--- openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleStates.idl (added)
+++ openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleStates.idl Wed Dec 12 04:41:12 2012
@@ -0,0 +1,124 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+import "objidl.idl";
+
+typedef long AccessibleStates;
+
+/** @defgroup grpStates States
+ IAccessible2 state constants.
+*/
+///@{
+
+/** Indicates a window is currently the active window. */
+const long IA2_STATE_ACTIVE =					0x1;
+
+/** Indicates that the object is armed. */
+const long IA2_STATE_ARMED =					0x2;
+
+/** Indicates the user interface object corresponding to this object no longer exists. */
+const long IA2_STATE_DEFUNCT =					0x4;
+
+/** Indicates the user can change the contents of this object. */
+const long IA2_STATE_EDITABLE =					0x8;
+
+/** Indicates the orientation of this object is horizontal. */
+const long IA2_STATE_HORIZONTAL =				0x10;
+
+/** Indicates this object is minimized and is represented only by an icon. */
+const long IA2_STATE_ICONIFIED =				0x20;
+
+/** Indicates an input validation failure. */
+const long IA2_STATE_INVALID_ENTRY =			0x40;
+
+/** Indicates that this object manages its children.
+
+ Used when children are transient.  In this case it is not necessary to add
+  listeners to the children.
+
+ The state is added to improve performance in the case of large containers such 
+  as tables. When an object manages its children it is not necessary to iterate 
+  over all the children and add listeners.  The parent object will provide state 
+  notifications regarding the state of its children.
+*/
+const long IA2_STATE_MANAGES_DESCENDANTS =		0x80;
+
+/** Indicates that an object is modal.
+
+ Modal objects have the behavior that something must be done with the object 
+  before the user can interact with an object in a different window.
+*/
+const long IA2_STATE_MODAL =					0x100;
+
+/** Indicates this text object can contain multiple lines of text. */
+const long IA2_STATE_MULTI_LINE =				0x200;
+
+/** Indicates this object paints every pixel within its rectangular region. */
+const long IA2_STATE_OPAQUE =					0x400;
+
+/** Indicates that user interaction is required.
+
+ An example of when this state is used is when a field in a form must be filled 
+  before a form can be processed.
+*/
+const long IA2_STATE_REQUIRED =					0x800;
+
+/** Indicates an object which supports text selection.
+
+ Note: This is different than MSAA STATE_SYSTEM_SELECTABLE.
+*/
+const long IA2_STATE_SELECTABLE_TEXT =			0x1000;
+
+/** Indicates that this text object can contain only a single line of text. */
+const long IA2_STATE_SINGLE_LINE =				0x2000;
+
+/** Indicates that the accessible object is stale.
+
+ This state is used when the accessible object no longer accurately 
+  represents the state of the object which it is representing such as when an
+  object is transient or when an object has been or is in the process of being
+  destroyed.
+*/
+const long IA2_STATE_STALE =					0x4000;
+
+/** Indicates that the object implements autocompletion.
+
+ This state indicates that that a text control will respond to the input of 
+ one ore more characters and cause a sub-item to become selected.  The 
+ selection may also result in events fired on the parent object.
+*/
+const long IA2_STATE_SUPPORTS_AUTOCOMPLETION =	0x8000;
+
+/** Indicates this object is transient. */
+const long IA2_STATE_TRANSIENT =				0x10000;
+
+/** Indicates the orientation of this object is vertical. */
+const long IA2_STATE_VERTICAL =					0x20000;
+
+///@}

Added: openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleTable.idl
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleTable.idl?rev=1420522&view=auto
==============================================================================
--- openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleTable.idl (added)
+++ openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleTable.idl Wed Dec 12 04:41:12 2012
@@ -0,0 +1,445 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+import "Accessible2.idl";
+
+/// Defines values which specify the kind of change made to a table
+enum IA2TableModelChangeType {
+  IA2_TABLE_MODEL_CHANGE_INSERT,  // = 0;
+  IA2_TABLE_MODEL_CHANGE_DELETE,
+  IA2_TABLE_MODEL_CHANGE_UPDATE
+};
+
+/// A structure defining the type of and extents of changes made to a table
+typedef struct {
+  enum IA2TableModelChangeType type;	// insert, delete, update
+  long firstRow;
+  long lastRow;
+  long firstColumn;
+  long lastColumn;
+} IA2TableModelChange;
+
+/** @brief This interface gives access to a two-dimensional table. 
+       
+ All accessible 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 IAccessibleTable::childIndex, IAccessibleTable::rowIndex, and
+  IAccessibleTable::columnIndex.
+              
+ 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 IAccessibleTable::nRows and IAccessibleTable::nColumns.
+*/
+[object, uuid(35AD8070-C20C-4fb4-B094-F4F7275DD469)]
+interface IAccessibleTable : IUnknown
+{
+
+  /** @brief Returns the accessible object at the specified row and column in 
+    the table.  This object could be an IAccessible or an IAccessible2.
+   @param [in] row
+    The row index for which to retrieve the cell.
+   @param [in] column
+    The column index for which to retrieve the cell.
+   @param [out] accessible
+    If both row and column index are valid then the corresponding accessible 
+    object is returned that represents the requested cell regardless of whether 
+    the cell is currently visible (on the screen).
+  */
+  [propget] HRESULT accessibleAt
+    (
+     [in] long row, 
+     [in] long column,
+     [out, retval] IUnknown **accessible 
+    );
+
+  /** @brief Returns the caption for the table.  The returned object could be 
+    an IAccessible or an IAccessible2.
+   @param [out] accessible
+    If the table has a caption then a reference to it is returned, else a NULL 
+    pointer is returned.
+  */
+  [propget] HRESULT caption
+    (
+     [out, retval] IUnknown **accessible 
+    );
+	  
+  /** @brief Translates the given row and column indices into the corresponding child index.
+   @param [in] rowIndex
+    Index of the child of the table for which to return the row index.
+   @param [in] columnIndex
+    Index of the child of the table for which to return the column index.
+   @param [out] childIndex
+    Returns the row index of the cell of the specified child or the index of 
+    the first row if the child spans multiple rows.
+  */
+  [propget] HRESULT childIndex
+	(
+	 [in] long rowIndex,
+	 [in] long columnIndex,
+	 [out, retval] long *childIndex
+	);
+
+  /** @brief Returns the description text of the specified column in the table.
+   @param [in] column
+    The index of the column for which to retrieve the description.
+   @param [out] description
+    Returns the description text of the specified row in the table if such a 
+    description exists.  Otherwise a NULL pointer is returned.
+  */
+  [propget] HRESULT columnDescription
+    (
+     [in] long column,
+     [out, retval] BSTR *description
+    );
+
+  /** @brief Returns the number of columns occupied by the accessible object 
+    at the specified row and column in the table.
+        
+   The result differs from 1 if the specified cell spans multiple columns.
+   @param [in] row
+    Row index of the accessible for which to return the column extent.
+   @param [in] column
+    Column index of the accessible for which to return the column extent.
+   @param [out] nColumnsSpanned
+    Returns the column extent of the specified cell.
+  */
+  [propget] HRESULT columnExtentAt
+    (
+     [in] long row,
+     [in] long column,
+     [out, retval] long *nColumnsSpanned 
+    );
+
+  /** @brief Returns the column headers as an IAccessibleTable object.
+        
+   Content and size of the returned table are implementation dependent.
+   @param [out] accessibleTable
+    The column header
+   @param [out] startingRowIndex
+    The row index where the header starts, usually 0.
+  */
+  [propget] HRESULT columnHeader
+    (
+     [out] IAccessibleTable **accessibleTable,
+	 [out, retval] long *startingRowIndex
+    );
+
+  /** @brief Translates the given child index into the corresponding column index.
+   @param [in] childIndex
+    Index of the child of the table for which to return the column index.
+   @param [out] columnIndex
+    Returns the column index of the cell of the specified child or the index of 
+    the first column if the child spans multiple columns.
+  */
+  [propget] HRESULT columnIndex
+    (
+	 [in] long childIndex,
+	 [out, retval] long *columnIndex
+	);
+
+  /** @brief Returns the total number of columns in table
+   @param [out] columnCount
+    Number of columns in table (including columns outside the current viewport)
+  */
+  [propget] HRESULT nColumns
+    (
+     [out, retval] long *columnCount 
+    );
+
+  /** @brief Returns the total number of rows in table
+   @param [out] rowCount
+    Number of rows in table (including rows outside the current viewport)
+  */
+  [propget] HRESULT nRows
+    (
+     [out, retval] long *rowCount 
+    );
+
+  /** @brief Returns the total number of selected children
+   @param [out] childCount
+    Number of children currently selected
+  */
+  [propget] HRESULT nSelectedChildren
+    (
+	 [out, retval] long *childCount
+	);
+
+  /** @brief Returns the total number of selected columns
+   @param [out] columnCount
+    Number of columns currently selected
+  */
+  [propget] HRESULT nSelectedColumns
+    (
+     [out, retval] long *columnCount 
+    );
+
+  /** @brief Returns the total number of selected rows
+   @param [out] rowCount
+    Number of rows currently selected
+  */
+  [propget] HRESULT nSelectedRows
+    (
+     [out, retval] long *rowCount 
+    );
+
+  /** @brief Returns the description text of the specified row in the table.
+   @param [in] row
+    The index of the row for which to retrieve the description.
+   @param [out] description
+    Returns the description text of the specified row in the table if such a 
+    description exists.  Otherwise a NULL pointer is returned.
+  */
+  [propget] HRESULT rowDescription
+    (
+     [in] long row, 
+     [out, retval] BSTR *description
+    );
+
+  /** @brief Returns the number of rows occupied by the accessible oject 
+    at the specified row and column in the table.
+        
+   The result differs from 1 if the specified cell spans multiple rows.
+   @param [in] row
+    Row index of the accessible for which to return the column extent.
+   @param [in] column
+    Column index of the accessible for which to return the column extent.
+   @param [out] nRowsSpanned
+    Returns the row extent of the specified cell.
+  */
+  [propget] HRESULT rowExtentAt
+    (
+     [in] long row,
+     [in] long column,
+     [out, retval] long *nRowsSpanned
+    );
+
+  /** @brief Returns the row headers as an IAccessibleTable object.
+        
+   Content and size of the returned table are implementation dependent.
+   @param [out] accessibleTable
+    The row header.
+   @param [out] startingColumnIndex
+    The column index where the header starts, usually 0.
+  */
+  [propget] HRESULT rowHeader
+    (
+     [out] IAccessibleTable **accessibleTable,
+	 [out, retval] long *startingColumnIndex
+    );
+
+  /** @brief Translates the given child index into a row index.
+   @param [in] childIndex
+    Index in parent (0 based)
+   @param [out] rowIndex
+    Row index (0 based)
+  */
+  [propget] HRESULT rowIndex
+    (
+	 [in] long childIndex,
+	 [out, retval] long *rowIndex 
+	);
+
+  /** @brief Returns a list of child indexes currently selected (0-based).
+   @param [in] maxChildren
+    Max children requested (possibly from IAccessibleTable::nSelectedChildren)
+   @param [out] children
+    array of indexes of selected children (each index is 0-based)
+   @param [out] nChildren
+    Length of array (not more than maxChildren)
+  */
+  [propget] HRESULT selectedChildren
+    (
+     [in] long maxChildren,
+     [out, size_is(,maxChildren), length_is(,*nChildren)] long **children,
+     [out, retval] long *nChildren
+    );
+
+  /** @brief Returns a list of column indexes currently selected (0-based).
+   @param [in] maxColumns
+    Max rows requested (possibly from IAccessibleTable::nSelectedColumns)
+   @param [out] columns
+    array of indexes of selected columns (each index is 0-based)
+   @param [out] nColumns
+    Length of array (not more than maxColumns)
+  */
+  [propget] HRESULT selectedColumns
+    (
+     [in] long maxColumns,
+     [out, size_is(,maxColumns), length_is(,*nColumns)] long **columns,
+     [out, retval] long *nColumns
+    );
+
+  /** @brief Returns a list of row indexes currently selected (0-based).
+   @param [in] maxRows
+    Max rows requested (possibly from IAccessibleTable::nSelectedRows)
+   @param [out] rows
+    array of indexes of selected rows (each index is 0-based)
+   @param [out] nRows
+    Length of array (not more than maxRows)
+  */
+  [propget] HRESULT selectedRows
+    (
+     [in] long maxRows, 
+     [out, size_is(,maxRows), length_is(,*nRows)] long **rows, 
+     [out, retval] long *nRows 
+    );
+
+  /** @brief Returns the summary description of the table.  The returned object could be 
+    an IAccessible or an IAccessible2.
+   @param [out] accessible
+    Returns a reference to an implementation dependent accessible object 
+    representing the table's summary or a NULL pointer if the table 
+    does not support a summary.
+  */
+  [propget] HRESULT summary
+    (
+     [out, retval] IUnknown **accessible 
+    );
+
+  /** @brief Returns a boolean value indicating whether the specified column is 
+    completely selected.
+   @param [in] column
+    Index of the column for which to determine whether it is selected.
+   @param [out] isSelected
+    Returns TRUE if the specified column is selected completely and FALSE otherwise.
+  */
+  [propget] HRESULT isColumnSelected
+    (
+     [in] long column,
+     [out, retval] boolean *isSelected
+    );
+
+  /** @brief Returns a boolean value indicating whether the specified row is completely 
+    selected.
+   @param [in] row
+    Index of the row for which to determine whether it is selected.
+   @param [out] isSelected
+    Returns TRUE if the specified row is selected completely and FALSE otherwise.
+  */
+  [propget] HRESULT isRowSelected
+    (
+     [in] long row,
+     [out, retval] boolean *isSelected
+    );
+
+  /** @brief Returns a boolean value indicating whether the specified cell is selected.
+   @param [in] row
+    Index of the row for the cell to determine whether it is selected.
+   @param [in] column
+    Index of the column for the cell to determine whether it is selected.
+   @param [out] isSelected
+    Returns TRUE if the specified cell is selected and FALSE otherwise.
+  */
+  [propget] HRESULT isSelected
+    (
+     [in] long row,
+     [in] long column,
+     [out, retval] boolean *isSelected 
+    );
+
+  /** @brief Selects a row and unselects all previously selected rows.
+   @param [in] row
+    Index of the row to be selected.
+  */
+  HRESULT selectRow
+    (
+     [in] long row 
+    );
+
+  /** @brief Selects a column and unselects all previously selected columns.
+   @param [in] column
+    Index of the column to be selected.
+  */
+  HRESULT selectColumn
+    (
+     [in] long column
+    );
+
+  /** @brief Unselects one row, leaving other selected rows selected (if any).
+   @param [in] row
+    Index of the row to be selected.
+  */
+  HRESULT unselectRow
+    (
+     [in] long row
+    );
+
+  /** @brief Unselects one column, leaving other selected columns selected (if any).
+   @param [in] column
+    Index of the column to be selected.
+  */
+  HRESULT unselectColumn
+    (
+     [in] long column
+    );
+  
+  /** @brief Given a child index, gets the row and column indexes and extents of a cell 
+    and whether or not it is selected.
+
+   This is a convenience function.  It is not mandatory to implement it.
+   @param [in] index
+    Index of this child in the parent.
+   @param [out] row
+    Row index.
+   @param [out] column
+    Column index.
+   @param [out] rowExtents
+    Number of cells spanned by this cell in this row.
+   @param [out] columnExtents
+    Number of cells spanned by this cell in this column.
+   @param [out] isSelected
+    Indicates if the specified cell is selected.
+  */
+  [propget] HRESULT rowColumnExtentsAtIndex
+    (
+	 [in] long index, 
+	 [out] long *row,  
+	 [out] long *column,
+	 [out] long *rowExtents,
+	 [out] long *columnExtents,
+	 [out, retval] boolean *isSelected
+	);
+
+  /** @brief Returns the type and extents describing how a table changed.
+  
+    Provided for use by the IA2_EVENT_TABLE_MODEL_CHANGED event handler.
+   @param [out] modelChange
+    A struct of (type(insert, delete, update), firstRow, lastRow, firstColumn, lastColumn).
+  */
+  [propget] HRESULT modelChange
+    (
+	 [out, retval] IA2TableModelChange *modelChange
+    );
+
+}

Added: openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleText.idl
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleText.idl?rev=1420522&view=auto
==============================================================================
--- openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleText.idl (added)
+++ openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleText.idl Wed Dec 12 04:41:12 2012
@@ -0,0 +1,473 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+import "IA2CommonTypes.idl";
+
+/// A structure containing a substring and the start and end offsets in the enclosing string.
+typedef struct {
+  BSTR text;	///< A copy of a segment of text taken from an enclosing paragraph.
+  long start;	///< Index of the first character of the segment in the enclosing text.  
+  long end;		///< Index of the character following the last character of the segment in the enclosing text. 
+} IA2TextSegment;
+
+/** @brief Defines values to specify a text boundary type.
+
+ If one of these is not implemented, such as IA2_TEXT_BOUNDARY_SENTENCE, S_FALSE is returned.
+*/
+
+enum IA2TextBoundaryType {
+  IA2_TEXT_BOUNDARY_CHAR,		///< =0, 
+  IA2_TEXT_BOUNDARY_WORD,		///< Range is from start of one word to the start of another word.
+  IA2_TEXT_BOUNDARY_SENTENCE,	///< Range is from start of one sentence to the start of another sentence.
+  IA2_TEXT_BOUNDARY_PARAGRAPH,	///< Range is from start of one paragraph to the start of another paragraph.
+  IA2_TEXT_BOUNDARY_LINE,		/**< Range is from start of one line to the start of another line. This
+                                 often means that an end-of-line character will appear at the  end of 
+								 the range. However in the case of some apps an end-of-line character
+								 indicates the end of a paragraph and the lines composing the paragraph,
+								 other than the last line, do not contain an end of line character. */
+  IA2_TEXT_BOUNDARY_ALL			///< Using this value will cause all text to be returned.
+};
+
+/** @brief This interface gives read-only access to text.
+
+ The IAccessibleText interface should be implemented by all 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 IAccessibleEditableText interface.
+        
+ The text length, i.e. the number of characters in the text, is
+  returned by IAccessibleText::nCharacters. All methods that operate 
+  on particular characters (e.g. IAccessibleText::textAtOffset) use character 
+  indices from 0 to length-1. All methods that operate on character positions 
+  (e.g. IAccessibleText::text) use indices from 0 to length.
+
+ Please note that accessible text does not necessarily support selection.  
+  In this case it should behave as if there where no selection.  An empty 
+  selection is used for example to express the current cursor position.
+*/
+[object, uuid(24FD2FFB-3AAD-4a08-8335-A3AD89C0FB4B)]
+interface IAccessibleText : IUnknown
+{
+
+  /** @brief Adds a text selection
+   @param [in] startOffset
+    Starting offset ( 0-based).
+   @param [in] endOffset
+    Offset of first character after new selection (0-based).
+  */
+  HRESULT addSelection
+    (
+     [in] long startOffset,
+     [in] long endOffset
+    );
+
+  /** @brief Returns text attributes.
+   @param [in] offset
+    Text offset (0-based).
+   @param [out] startOffset    
+    Start of requested text range (0-based)
+   @param [out] endOffset    
+    First character after requested text range (0-based)
+   @param [out] textAttributes  
+    A string of attributes describing the text.  
+  */
+  [propget] HRESULT attributes
+    (
+     [in] long offset,	
+     [out] long *startOffset,
+     [out] long *endOffset,	
+     [out, retval] BSTR *textAttributes
+    );
+
+  /** @brief Returns the position of the caret.
+    
+   The caret is the position between two characters. Its position/offset 
+    is that of the character to the right of it.
+   @param [out] offset
+    The returned offset is relative to the text represented by this object.
+  */
+  [propget] HRESULT caretOffset
+    (
+     [out, retval] long *offset
+    );
+
+
+  /** @brief Returns the bounding box of the specified position.
+        
+   The virtual character after the last character of the represented
+    text, i.e. the one at position length is a special case. It represents the 
+    current input position and will therefore typically be queried by AT more 
+    often than other positions.  Because it does not represent an existing character 
+    its bounding box is defined in relation to preceding characters.  It should be 
+    roughly equivalent to the bounding box of some character when inserted at the 
+    end of the text.  Its height typically being the maximal height of all the
+    characters in the text or the height of the preceding character, its width being 
+    at least one pixel so that the bounding box is not degenerate.
+
+   Note that the index 'length' is not always valid.  Whether it is or not is 
+    implementation dependent.  It typically is when text is editable or otherwise 
+    when on the screen the caret can be placed behind the text.  You can be sure 
+    that the index is valid after you have received a ::IA2_EVENT_TEXT_CARET_MOVED
+    event for this index.
+   @param [in] offset
+    Index of the character for which to return its bounding box. The valid range 
+    is 0..length.
+   @param [in] coordType
+    Specifies if the coordinates are relative to the screen or to the parent window.
+   @param [out] x
+    X coordinate of the bounding box of the referenced character. 
+   @param [out] y
+    Y coordinate of the bounding box of the referenced character. 
+   @param [out] width
+    Width of the bounding box of the referenced character. 
+   @param [out] height
+    Height of the bounding box of the referenced character. 
+  */
+  [propget] HRESULT characterExtents
+    (
+     [in] long offset,
+     [in] enum IA2CoordinateType coordType,
+     [out] long *x,
+     [out] long *y,
+     [out] long *width,
+     [out, retval] long *height
+    );
+
+
+  /** @brief Returns the number of active non-contiguous selections
+   @param [out] nSelections
+  */
+  [propget] HRESULT nSelections
+    (
+     [out, retval] long *nSelections
+    );
+
+  /** @brief Returns the text position for the specified screen position.
+    
+   Given a point 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 IAccessibleText::characterExtents.
+   The method IAccessibleText::offsetAtPoint, however, can be implemented 
+   more efficiently.
+            
+   @param [in] x
+    The position's x value for which to look up the index of the character that
+	is rendered on to the display at that point.
+   @param [in] y
+    The position's y value for which to look up the index of the character that
+	is rendered on to the display at that point.            
+   @param [in] coordType
+    Screen coordinates or window coordinates.
+   @param [out] offset
+    Index of the character under the given point or -1 if the point
+    is invalid or there is no character under the point.
+    */
+  [propget] HRESULT offsetAtPoint
+    (
+     [in] long x,
+     [in] long y,
+     [in] enum IA2CoordinateType coordType,
+     [out, retval] long *offset
+    );
+
+  /** @brief Returns the character offsets of N-th active text selection
+   @param [in] selectionIndex
+    Index of selection (0-based).
+   @param [out] startOffset
+    0 based offset of first selected character
+   @param [out] endOffset
+    0 based offset of one past the last selected character.
+  */
+  [propget] HRESULT selection
+    (
+     [in] long selectionIndex, ///< index of selection (0-based)
+     [out] long *startOffset,
+     [out, retval] long *endOffset
+    );
+
+  /** @brief Returns the substring between the two given indices.
+
+   The substring starts with the character at startOffset (inclusive) and up to 
+    the character at endOffset (exclusive), if startOffset is less or equal 
+    endOffste.  If endOffset is lower than startOffset, the result is the same 
+    as a call with the two arguments being exchanged.
+
+   The whole text can be requested by passing the indices zero and 
+    IAccessibleText::nCharacters. If both indices have the same value, an empty 
+	string is returned.
+   @param [in] startOffset
+    Index of the first character to include in the returned string. The valid range 
+    is 0..length.
+   @param [in] endOffset
+    Index of the last character to exclude in the returned string. The valid range 
+    is 0..length.
+   @param [out] text
+    Returns the substring starting with the character at startOffset (inclusive) 
+    and up to the character at endOffset (exclusive), if startOffset is less than 
+    or equal to endOffset.
+
+   Note: returned string may be longer than endOffset-startOffset bytes if text 
+   contains multi-byte characters.
+  */
+  [propget] HRESULT text
+    (
+     [in] long startOffset,
+     [in] long endOffset,
+     [out, retval] BSTR *text
+    );
+
+  /** @brief Returns a text portion before the given position.
+    
+   Returns the substring of the specified text type that is located before the 
+    given character and does not include it. The result of this method should be 
+    same as a result for IAccessibleText::textAtOffset with a suitably decreased 
+    index value.
+
+   For example, if text type is ::IA2_TEXT_BOUNDARY_WORD, then the complete 
+    word that is closest to and located before offset is returned.
+
+   If the index is valid, but no suitable word (or other text type) is found, an 
+    empty text segment is returned.
+   @param [in] offset
+    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 [in] boundaryType
+    The type of the text portion to return.  See ::IA2TextBoundaryType for the 
+	complete list.
+   @param [out] startOffset
+    0 based offset of first character.
+   @param [out] endOffset
+    0 based offset of one past the last character.
+   @param [out] text
+    Returns the requested text portion.  This portion may be empty or invalid when 
+    no appropriate text portion is found or text type is invalid.
+  */
+  [propget] HRESULT textBeforeOffset
+    (
+     [in] long offset,
+     [in] enum IA2TextBoundaryType boundaryType,
+     [out] long *startOffset,
+     [out] long *endOffset,
+     [out, retval] BSTR *text
+    );
+
+  /** @brief Returns a text portion after the given position.
+    
+   Returns the substring of the specified text type that is located after the 
+    given character and does not include it. The result of this method should be 
+    same as a result for IAccessibleText::textAtOffset with a suitably decreased 
+    index value.
+
+   For example, if text type is ::IA2_TEXT_BOUNDARY_WORD, then the complete 
+    word that is closest to and located before offset is returned.
+
+   If the index is valid, but no suitable word (or other text type) is found, an 
+    empty text segment is returned.
+   @param [in] offset
+    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 [in] boundaryType
+    The type of the text portion to return.  See ::IA2TextBoundaryType for the complete 
+    list.
+   @param [out] startOffset
+    0 based offset of first character.
+   @param [out] endOffset
+    0 based offset of one past the last character.
+   @param [out] text
+    Returns the requested text portion.  This portion may be empty or invalid when 
+    no appropriate text portion is found or text type is invalid.
+  */
+  [propget] HRESULT textAfterOffset
+    (
+     [in] long offset,
+     [in] enum IA2TextBoundaryType boundaryType,
+     [out] long *startOffset,
+     [out] long *endOffset,
+     [out, retval] BSTR *text
+    );
+
+  /** @brief Returns a text portion that spans the given position.
+    
+   Returns the substring of the specified text type that the specified offset. The 
+    result of this method should be same as a result for 
+    IAccessibleText::textAtOffset with a suitably decreased index value.
+
+   For example, if text type is ::IA2_TEXT_BOUNDARY_WORD, then the complete 
+    word that is closest to and located before offset is returned.
+
+   If the index is valid, but no suitable word (or other text type) is found, an 
+    empty text segment is returned.
+   @param [in] offset
+    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 [in] boundaryType
+    The type of the text portion to return.  See ::IA2TextBoundaryType for the complete 
+    list.
+   @param [out] startOffset
+    0 based offset of first character.
+   @param [out] endOffset
+    0 based offset of one past the last character.
+   @param [out] text
+    Returns the requested text portion.  This portion may be empty or invalid when 
+    no appropriate text portion is found or text type is invalid.
+  */
+  [propget] HRESULT textAtOffset
+    (
+     [in] long offset,
+     [in] enum IA2TextBoundaryType boundaryType,
+     [out] long *startOffset,
+     [out] long *endOffset,
+     [out, retval] BSTR *text
+    );
+
+  /** @brief Unselects a range of text.
+   @param [in] selectionIndex
+    Index of selection to remove (0-based).
+  */
+  HRESULT removeSelection
+    (
+     [in] long selectionIndex
+    );
+
+  /** @brief Sets the position of the caret.
+
+   The caret is the position between two characters.  Its position/offset 
+    is that of the character to the right of it.
+
+   Setting the caret position may or may not alter the current selection.  A 
+    change of the selection is notified to the accessibility event listeners with 
+    an ::IA2_EVENT_TEXT_SELECTION_CHANGED event.
+
+   When the new caret position differs from the old one (which, of course, is the 
+    standard case) this is notified to the accessibility event listeners with an
+    ::IA2_EVENT_TEXT_CARET_MOVED event.
+   @param [in] offset
+    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 IAccessibleText::nCharacters 
+	leads to insertion after the last character.
+  */
+  HRESULT setCaretOffset
+    (
+     [in] long offset
+    );
+
+  /** @brief Changes the bounds of an existing selection.
+   @param [in] selectionIndex
+    Index of selection to change (0-based)
+   @param [in] startOffset
+    New starting offset (0-based)
+   @param [in] endOffset
+    New ending offset (0-based) - the offset of the character just past the last character of the selection.
+  */
+  HRESULT setSelection
+    (
+     [in] long selectionIndex,
+     [in] long startOffset,
+     [in] long endOffset
+    );
+
+  /** @brief Returns total number of characters.
+
+   Note: This may be different than the total number of bytes required to store the 
+    text, if the text contains multi-byte characters.
+   @param [out] nCharacters
+  */
+  [propget] HRESULT nCharacters
+    (
+     [out, retval] long *nCharacters
+    );
+
+  /** @brief Makes a specific part of string visible on screen.
+   @param [in] startIndex
+    0-based character offset.
+   @param [in] endIndex
+    0-based character offset - the offset of the character just past the last character of the string.
+   @param [in] scrollType
+    Defines where the object should be placed on the screen.
+  */
+  HRESULT scrollSubstringTo
+    (
+     [in] long startIndex,
+     [in] long endIndex,
+	 [in] enum IA2ScrollType scrollType
+    );
+
+  /** @brief Moves the top left of a substring to a specified location.
+
+   Note: S_FALSE is returned if the object is already at the specified location.
+   @param [in] startIndex
+    0-based character offset.
+   @param [in] endIndex
+    0-based character offset - the offset of the character just past the last character of the string.
+   @param [in] coordinateType
+    Specifies whether the coordinates are relative to the screen or the parent object.
+   @param [in] x
+    Defines the x coordinate.
+   @param [in] y
+    Defines the y coordinate.
+  */
+  HRESULT scrollSubstringToPoint
+    (
+     [in] long startIndex,
+     [in] long endIndex,
+     [in] enum IA2CoordinateType coordinateType,
+	 [in] long x,
+	 [in] long y 
+    );
+
+  /** @brief Returns any inserted text.
+
+   Provided for use by the ::IA2_EVENT_TEXT_INSERTED and ::IA2_EVENT_TEXT_UPDATED 
+    event handlers.
+   @param [out] newText
+    The text that was just inserted.
+  */
+  [propget] HRESULT newText
+    (
+	 [out, retval] IA2TextSegment *newText
+	);
+
+  /** @brief Returns any removed text.
+
+   Provided for use by the IA2_EVENT_TEXT_REMOVED/UPDATED event handlers.
+   @param [out] oldText
+    The text that was just removed.
+  */
+  [propget] HRESULT oldText
+    (
+	 [out, retval] IA2TextSegment *oldText
+	);
+
+}

Added: openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleValue.idl
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleValue.idl?rev=1420522&view=auto
==============================================================================
--- openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleValue.idl (added)
+++ openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/AccessibleValue.idl Wed Dec 12 04:41:12 2012
@@ -0,0 +1,101 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+
+/** @brief This interface gives access to a single numerical value.
+
+ The IAccessibleValue interface represents a single numerical value and should 
+  be implemented by any class that supports numerical value like progress bars 
+  and spin boxes.  This interface lets you access the value and its upper and 
+  lower bounds.
+*/
+[object, uuid(35855B5B-C566-4fd0-A7B1-E65465600394)]
+interface IAccessibleValue : IUnknown
+{
+
+  /** @brief Returns the value of this object as a number.
+        
+   The exact return type is implementation dependent.  Typical types are long and 
+    double.
+   @param [out] currentValue
+    Returns the current value represented by this object.
+  */
+  [propget] HRESULT currentValue
+    (
+     [out, retval] VARIANT *currentValue
+    );
+
+  /** @brief Sets the value of this object to the given number.
+        
+   The argument is clipped to the valid interval whose upper and lower 
+    bounds are returned by the methods IAccessibleValue::maximumValue and 
+	IAccessibleValue::minimumValue, i.e. if it is 	lower than the minimum 
+	value the new value will be the minimum and if it is greater than the 
+	maximum then the new value will be the maximum.
+
+   @param [out] value
+    The new value represented by this object.  The set of admissible types for 
+    this argument is implementation dependent.
+  */
+  HRESULT setCurrentValue
+    (
+     [in] VARIANT value
+    );
+
+  /** @brief Returns the maximal value that can be represented by this object.
+        
+   The type of the returned value is implementation dependent.  It does not have 
+    to be the same type as that returned by method IAccessibleValue::currentValue.
+
+   @param [out] maximumValue
+    Returns the maximal value in an implementation dependent type. If this object 
+    has no upper bound then an empty object is returned.
+  */
+  [propget] HRESULT maximumValue
+    (
+     [out, retval] VARIANT *maximumValue
+    );
+
+  /** @brief Returns the minimal value that can be represented by this object.
+        
+   The type of the returned value is implementation dependent.  It does not have 
+    to be the same type as that returned by method IAccessibleValue::currentValue.
+   
+   @param [out] minimumValue
+    Returns the minimal value in an implementation dependent type. If this object 
+    has no upper bound then an empty object is returned.
+  */
+  [propget] HRESULT minimumValue
+    (
+     [out, retval] VARIANT *minimumValue
+    );
+
+};

Added: openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/Charset.idl
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/Charset.idl?rev=1420522&view=auto
==============================================================================
--- openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/Charset.idl (added)
+++ openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/Charset.idl Wed Dec 12 04:41:12 2012
@@ -0,0 +1,40 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+const short CHARSET_DONTKNOW = 0;
+const short ANSI = 1;
+const short MAC = 2;
+const short IBMPC_437 = 3;
+const short IBMPC_850 = 4;
+const short IBMPC_860 = 5;
+const short IBMPC_861 = 6;
+const short IBMPC_863 = 7;
+const short IBMPC_865 = 8;
+const short CHARSET_SYSTEM = 9;
+const short SYMBOL = 10;

Added: openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/IA2CommonTypes.idl
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/IA2CommonTypes.idl?rev=1420522&view=auto
==============================================================================
--- openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/IA2CommonTypes.idl (added)
+++ openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/IA2CommonTypes.idl Wed Dec 12 04:41:12 2012
@@ -0,0 +1,74 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+/// These constants control the scrolling of an object or substring into a window.
+enum IA2ScrollType {
+
+  /** Scroll the top left of the object or substring to the top left of the 
+   window (or as close as possible).
+  */
+  IA2_SCROLL_TYPE_TOP_LEFT, 		
+
+  /** Scroll the bottom right of the object or substring to the bottom right of
+   the window (or as close as possible). 
+  */
+  IA2_SCROLL_TYPE_BOTTOM_RIGHT,
+
+  /** Scroll the top edge of the object or substring to the top edge of the 
+   window (or as close as possible). 
+  */
+  IA2_SCROLL_TYPE_TOP_EDGE,
+
+  /** Scroll the bottom edge of the object or substring to the bottom edge of 
+   the window (or as close as possible). 
+  */
+  IA2_SCROLL_TYPE_BOTTOM_EDGE, 
+
+  /** Scroll the left edge of the object or substring to the left edge of the 
+   window (or as close as possible). 
+  */
+  IA2_SCROLL_TYPE_LEFT_EDGE, 
+
+  /** Scroll the right edge of the object or substring to the right edge of the 
+   window (or as close as possible). 
+  */
+  IA2_SCROLL_TYPE_RIGHT_EDGE 
+};
+
+/// These constants define which coordinate system a point is located in.
+enum IA2CoordinateType {
+
+  /// The coordinates are relative to the screen.
+  IA2_COORDTYPE_SCREEN_RELATIVE, 
+
+  /** The coordinates are relative to the upper left corner of the bounding box
+   of the immediate parent.
+  */
+  IA2_COORDTYPE_PARENT_RELATIVE  
+
+};

Added: openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/IA2TypeLibrary.idl
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/IA2TypeLibrary.idl?rev=1420522&view=auto
==============================================================================
--- openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/IA2TypeLibrary.idl (added)
+++ openoffice/branches/ia2/main/winaccessibility/source/UAccCOMIDL/IA2TypeLibrary.idl Wed Dec 12 04:41:12 2012
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// This is not a standalone file.  It is to be appended to the end of the 
+// merged IDL file.
+
+cpp_quote("")
+cpp_quote("// Type Library Definitions")
+cpp_quote("")
+
+[
+    uuid(21955A1E-5C3A-4E52-8CCB-CE587E75133E),
+	helpstring("IAccessible2 Type Library"),
+    version(1.0),
+    hidden
+]
+
+library IAccessible2Lib
+{
+	importlib ("stdole2.tlb");
+	interface Accessible2;
+    interface IAccessibleAction;
+    interface IAccessibleApplication;
+    interface IAccessibleComponent;
+    interface IAccessibleEditableText;
+    interface IAccessibleEventId;
+    interface IAccessibleHyperlink;
+    interface IAccessibleHypertext;
+    interface IAccessibleImage;
+    interface IAccessibleRelation;
+    interface IAccessibleRole;
+    interface IAccessibleStates;
+    interface IAccessibleTable;
+    interface IAccessibleText;
+    interface IAccessibleValue;
+}



Mime
View raw message