home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / share / idl / at-spi-1.0 / Accessibility_Text.idl < prev    next >
Encoding:
Text File  |  2006-08-22  |  27.4 KB  |  464 lines

  1. /* 
  2.  * AT-SPI - Assistive Technology Service Provider Interface 
  3.  * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
  4.  *
  5.  * Copyright 2001 Sun Microsystems, Inc.
  6.  *
  7.  * This library is free software; you can redistribute it and/or
  8.  * modify it under the terms of the GNU Library General Public
  9.  * License as published by the Free Software Foundation; either
  10.  * version 2 of the License, or (at your option) any later version.
  11.  *
  12.  * This library is distributed in the hope that it will be useful,
  13.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15.  * Library General Public License for more details.
  16.  *
  17.  * You should have received a copy of the GNU Library General Public
  18.  * License along with this library; if not, write to the
  19.  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  20.  * Boston, MA 02111-1307, USA.
  21.  */
  22.  
  23. module Accessibility {
  24.  
  25.   /**
  26.    * Specifies the boundary conditions determining a run of text as returned from
  27.    * getTextAtOffset, getTextAfterOffset, and getTextBeforeOffset.
  28.    */
  29.   enum TEXT_BOUNDARY_TYPE {
  30.     TEXT_BOUNDARY_CHAR,/**< Text is bounded by this character only. 
  31.             * Start and end offsets differ by one, by definition, for this value. 
  32.             */
  33.     TEXT_BOUNDARY_WORD_START,/**< Boundary condition is start of a word; i.e. range is from start of
  34.                   * one word to the start of another word. 
  35.                   */
  36.     TEXT_BOUNDARY_WORD_END,/**< Boundary condition is the end of a word; i.e. range is from 
  37.                 * the end of one word to the end of another. 
  38.                 * @note some locales may not distinguish between words and
  39.                 * characters or glyphs, in particular those locales which use
  40.                 * wholly or partially ideographic character sets.  In these cases,
  41.                 * characters may be returned in lieu of multi-character substrings.
  42.                 */
  43.     TEXT_BOUNDARY_SENTENCE_START,/**< Boundary condition is start of a sentence, as determined 
  44.                 *  by the application. 
  45.                 *  @note Some locales or character sets may not include explicit sentence
  46.                 *  delimiters, so this boundary type can not always be honored.
  47.                 *  Some locales will return lines of text instead of grammatical sentences.
  48.                   */
  49.     TEXT_BOUNDARY_SENTENCE_END,/**< Boundary condition is end of a sentence, as determined by the application, 
  50.                 *  including the sentence-delimiting character, for instance '.'
  51.                 *  @note Some locales or character sets may not include explicit sentence
  52.                 *  delimiters, so this boundary type can not always be honored.
  53.                 *  Some locales will return lines of text instead of grammatical sentences.
  54.                 */
  55.     TEXT_BOUNDARY_LINE_START,/**< Boundary condition is the start of a line; i.e. range is 
  56.                   * from start of one line to the start of another.  This generally 
  57.                   * means that an end-of-line character will appear at the end of the range. 
  58.                   */
  59.     TEXT_BOUNDARY_LINE_END /**< Boundary condition is the end of a line; i.e. range is
  60.                 * from start of one line to the start of another.  This generally 
  61.                 * means that an end-of-line character will be the first character of the range. 
  62.                 */
  63.   };
  64.  
  65.   /**
  66.    * TEXT_CLIP_TYPE:
  67.    * CLIP_MIN means text clipped by min coordinate is omitted,
  68.    * CLIP_MAX clips text interescted by the max coord, and CLIP_BOTH
  69.    * will retain only text falling fully within the min/max bounds.
  70.    *
  71.    **/
  72.   enum TEXT_CLIP_TYPE {
  73.     TEXT_CLIP_NONE,
  74.     TEXT_CLIP_MIN,/**< characters/glyphs clipped by the minimum coordinate are omitted */
  75.     TEXT_CLIP_MAX,/**< characters/glyphs which intersect the maximum coordinate are omitted */
  76.     TEXT_CLIP_BOTH /**< only glyphs falling entirely within the region bounded by min and max are retained. */
  77.   };
  78.  
  79.     /** 
  80.      * The text interface should be implemented by objects which place textual information onscreen as character
  81.      * strings or glyphs.  The text interface allows access to textual content, including display attributes and
  82.      * semantic hints associated with runs of text, and access to bounding box information for glyphs and substrings.
  83.      * It also allows portions of textual content to be selected, if the object's StateSet includes
  84.      * STATE_SELECTABLE_TEXT. 
  85.      *
  86.      * In some cases a Text object may have, as its content, an empty string.  In particular this can
  87.      * occur in the case of Hypertext objects which do not display explicitly textual information onscreen,
  88.      * as Hypertext is derived from the Text interface.  @see Hypertext.
  89.      *
  90.      * Typographic and semantic attributes of onscreen textual content, for instance typeface, weight, 
  91.      * language, and such qualities as 'emphasis' or 'blockquote', are represented as text attributes.
  92.      * Contiguous sequences of characters over which these attributes are unchanged are referred to as
  93.      * "attribute runs", and are available via Text::getAttributeRun.  Where possible, implementing clients
  94.      * will report textual attributes which are the same over the entire text object, for instance those
  95.      * inherited from a default or document-scope style, via getDefaultAttributes instead of reporting them
  96.      * explicitly for each character.  Therefore, for any span of text, the attributes in effect are the union
  97.      * of the set returned by Text::getDefaultAttributes, and the set returned at a particular character
  98.      * offset via Text::getAttributeRun.
  99.      *
  100.      * @note Events that may be emitted by instances of Text include:
  101.      * \li \c "object:text-attributes-changed" The attributes of a range of text, or the range over 
  102.      *         which attributes apply, has changed.
  103.      * \li \c "object:text-changed" The text content of this object has changed.
  104.      * \li \c "object:text-bounds-changed" The character bounds of a text object have changed, 
  105.      *         for instance in response to a reformatting or reflow operation.
  106.      * \li \c "object:text-caret-moved" The character offset of the text caret (visible or notional) within
  107.      *         this object has changed.  Events of this type may also be generated when an onscreen
  108.      *         text caret appears or disappears.
  109.      * \li \c "object:text-selection-changed" The range or number of text selections within this text object
  110.      *         has changed.
  111.      *
  112.      * @note In some cases, objects which are not onscreen may implement Text, but if such objects
  113.      * implement Component, their potential visibility should be examined (via comparison with STATE_VISIBLE 
  114.      * and STATE_SHOWING) before exposing them to the user.  Objects which implement Text but not Component 
  115.      * may be encountered in special-purpose interfaces or as special ┬¿accessibility┬¿ extensions to visual 
  116.      * interfaces to allow non-graphical access to application features.  These instances should be considered 
  117.      * the exception, rather than the rule.
  118.      */
  119.   interface Text : Bonobo::Unknown {
  120.  
  121.     /** A structure used to define a continguous range of text, including its 
  122.      * (unattributed) textual content. 
  123.      **/
  124.     struct Range {
  125.       long startOffset;
  126.       long endOffset; 
  127.       string content;
  128.       any  data;
  129.     };
  130.     
  131.     typedef sequence<Range> RangeList;
  132.  
  133.     /** The total current number of characters in the Text object, 
  134.      * including whitespace and non-spacing characters.  
  135.      **/
  136.     readonly attribute long characterCount;
  137.  
  138.     /** The current offset of the text caret in the Text object.  
  139.      * This caret may be virtual, e.g. non-visual and notional-only, but if an
  140.      * onscreen representation of the caret position is visible, it will correspond to this offset.
  141.      * The caret offset is given as a character offset, as opposed to a byte offset into 
  142.      * a text buffer or a column offset. 
  143.      **/
  144.     readonly attribute long caretOffset;
  145.  
  146.       /**
  147.        * Obtain all or part of the onscreen textual content of a Text object.  If endOffset is specified as 
  148.        * "-1", then this method will return the entire onscreen textual contents of the Text object.
  149.        * @note 'onscreen' in this context means "potentially onscreen", this method does not perform any sort 
  150.        * of coordinate visibility clipping or window-stack-ordering clipping.  The text thus reported 
  151.        * corresponds to the text which would be presented onscreen if the object implementing the Text interface
  152.        * were entirely unobscured. 
  153.        * @returns the textual content of the current Text object beginning startOffset (inclusive) 
  154.        * up to but not including the character at endOffset.
  155.        **/
  156.     string getText (in long startOffset, in long endOffset);
  157.  
  158.       /** Programmatically move the text caret (visible or virtual, as above) to a given position. 
  159.        * @param offset a long int indicating the desired character offset.  Not all implementations of
  160.        * Text will honor setCaretOffset requests, so the return value below should be checked by the client.
  161.        * @returns \c TRUE if the request was carried out, or \c FALSE if the caret could not be moved to 
  162.        * the requested position.
  163.        **/
  164.     boolean setCaretOffset (in long offset);
  165.  
  166.       /**
  167.        * Obtain a subset of the text content of an object which entirely precedes \c offset,
  168.        * delimited by character, word, line, or sentence boundaries as specified by \c type.  The
  169.        * starting and ending offsets of the resulting substring are returned in \c startOffset
  170.        * and \c endOffset.  By definition, if such a substring exists, \c endOffset is less than or
  171.        * equal to \c offset.
  172.        * @param offset the offset from which the substring search begins.
  173.        * @param type the text-boundary delimiter which determines whether the returned text constitures
  174.        *        a character, word, line, or sentence (and possibly attendant whitespace), 
  175.        *        and whether the start or ending of such a substring forms the boundary condition.
  176.        * @param startOffset back-filled with the starting offset of the resulting substring, if one exists.
  177.        * @param endOffset back-filled with the offset of the character immediately following the resulting
  178.        *                  substring, if one exists.
  179.        * @see TEXT_BOUNDARY_TYPE
  180.        * @returns a string which is a substring of the text content of the object, delimited by the
  181.        * specified boundary condition.
  182.        */
  183.     string getTextBeforeOffset (in long offset, in TEXT_BOUNDARY_TYPE type,
  184.                 out long startOffset, out long endOffset);
  185.       /**
  186.        * Obtain a subset of the text content of an object which includes the specified \c offset, 
  187.        * delimited by character, word, line, or sentence boundaries as specified by \c type.  The
  188.        * starting and ending offsets of the resulting substring are returned in \c startOffset
  189.        * and \c endOffset.  
  190.        * @param offset the offset from which the substring search begins, and which must 
  191.        *        lie within the returned substring.
  192.        * @param type the text-boundary delimiter which determines whether the returned text constitures
  193.        *        a character, word, line, or sentence (and possibly attendant whitespace), 
  194.        *        and whether the start or ending of such a substring forms the boundary condition.
  195.        * @param startOffset back-filled with the starting offset of the resulting substring, if one exists.
  196.        * @param endOffset back-filled with the offset of the character immediately following the resulting
  197.        *                  substring, if one exists.
  198.        * @see TEXT_BOUNDARY_TYPE
  199.        * @returns a string which is a substring of the text content of the object, delimited by the
  200.        * specified boundary condition.
  201.        */
  202.     string getTextAtOffset (in long offset, in TEXT_BOUNDARY_TYPE type,
  203.                                 out long startOffset, out long endOffset);
  204.       /**
  205.        * Obtain a subset of the text content of an object which entirely follows \c offset,
  206.        * delimited by character, word, line, or sentence boundaries as specified by \c type.  The
  207.        * starting and ending offsets of the resulting substring are returned in \c startOffset
  208.        * and \c endOffset.  By definition, if such a substring exists, \c startOffset must be greater than
  209.        * \c offset.
  210.        * @param offset the offset from which the substring search begins, and which must 
  211.        *        lie before the returned substring.
  212.        * @param type the text-boundary delimiter which determines whether the returned text constitures
  213.        *        a character, word, line, or sentence (and possibly attendant whitespace), 
  214.        *        and whether the start or ending of such a substring forms the boundary condition.
  215.        * @param startOffset back-filled with the starting offset of the resulting substring, if one exists.
  216.        * @param endOffset back-filled with the offset of the character immediately following the resulting
  217.        *                  substring, if one exists.
  218.        * @see TEXT_BOUNDARY_TYPE
  219.        * @returns a string which is a substring of the text content of the object, delimited by the
  220.        * specified boundary condition.
  221.        */
  222.     string getTextAfterOffset (in long offset, in TEXT_BOUNDARY_TYPE type,
  223.                                    out long startOffset, out long endOffset);
  224.       /**
  225.        * @returns an unsigned long integer whose value corresponds to the UCS-4 representation of the
  226.        * character at the specified text offset, or 0 if offset is out of range.
  227.        */
  228.     unsigned long getCharacterAtOffset (in long offset);  /* long instead of wchar, 
  229.                                * to allow unicode chars > 16 bits 
  230.                                */
  231.     /** 
  232.      * Get the string value of a named attribute at a given offset, if defined.
  233.      * @param offset the offset of the character for which the attribute run is to be obtained.
  234.      * @param attributeName the name of the attribute for which the value is to be returned, if defined.
  235.      * @param startOffset back-filled with the offset of the first character in the attribute run
  236.      * containing the character at \c offset.
  237.      * @param endOffset back-filled with the offset of the first character past the end of the
  238.      * attribute run containing the character at \c offset.
  239.      * @param defined back-filled with \c True if the attributeName has a defined value at \c offset,
  240.      * \c False otherwise.
  241.      * @returns the value of attribute (name-value pair) corresponding to "name", if defined. 
  242.      **/
  243.     string getAttributeValue (in long offset, in string attributeName,
  244.                   out long startOffset,
  245.                   out long endOffset,
  246.                   out boolean defined);
  247.     /** 
  248.      * getAttributes is deprecated in favor of getAttributeRun.
  249.      * @returns the attributes at offset, as a semicolon-delimited set of colon-delimited name-value pairs. 
  250.      * @see getAttributeRun
  251.      **/
  252.     string getAttributes (in long offset,
  253.               out long startOffset, out long endOffset);
  254.       /** 
  255.        * Deprecated in favor of getDefaultAttributeSet.
  256.        * @returns the attributes which apply to the entire text content, but which were not explicitly
  257.        * specified by the content creator.
  258.        * @see getDefaultAttributeSet
  259.        **/
  260.     string getDefaultAttributes ();
  261.       /**
  262.        * Obtain a the bounding box, as x, y, width, and height, of the character or glyph at a particular 
  263.        * character offset in this object's text content.  The coordinate system in which the results are
  264.        * reported is specified by coordType.  If an onscreen glyph corresponds to multiple character offsets,
  265.        * for instance if the glyph is a ligature, the bounding box reported will include the entire glyph and
  266.        * therefore may apply to more than one character offset.
  267.        * @param offset the character offset of the character or glyph being queried.
  268.        * @param x the minimum horizontal coordinate of the bounding box of the glyph representing 
  269.        *          the character at \c offset.
  270.        * @param y the minimum vertical coordinate of the bounding box of the glyph representing 
  271.        *          the character at \c offset.
  272.        * @param width the horizontal extent of the bounding box of the glyph representing 
  273.        *          the character at \c offset.
  274.        * @param height the vertical extent of the bounding box of the glyph representing 
  275.        *          the character at \c offset.
  276.        * @param coordType If 0, the results will be reported in screen coordinates, i.e. in pixels
  277.        *                  relative to the upper-left corner of the screen, with the x axis pointing right
  278.        *                  and the y axis pointing down.
  279.        *                  If 1, the results will be reported relative to the containing toplevel window,
  280.        *                  with the x axis pointing right and the y axis pointing down.
  281.        **/
  282.     void getCharacterExtents (in long offset, out long x, out long y, out long width, out long height, in short coordType);
  283.       /** 
  284.        * Get the offset of the character at a given onscreen coordinate.  The coordinate system used to interpret
  285.        * x and y is determined by parameter coordType.
  286.        * @param x
  287.        * @param y
  288.        * @param coordType if 0, the input coordinates are interpreted relative to the entire screen, if 1,
  289.        *                  they are relative to the toplevel window containing this Text object.
  290.        * @returns the text offset (as an offset into the character array) of the glyph whose onscreen bounds contain the point x,y, or -1 if the point is outside the bounds of any glyph.
  291.        **/
  292.     long getOffsetAtPoint (in long x, in long y, in short coordType);
  293.       /**
  294.        * Obtain the number of separate, contiguous selections in the current Text object.
  295.        * Text objects which do not implement selection of discontiguous text regions will always
  296.        * return '0' or '1'.  Note that "contiguous" is defined by continuity of the offsets, i.e.
  297.        * a text 'selection' is defined by a start/end offset pair.  In the case of bidirectional text,
  298.        * this means that a continguous selection may appear visually discontiguous, and vice-versa.
  299.        *
  300.        * @returns the number of contiguous selections in the current Text object.
  301.        **/
  302.     long getNSelections ();
  303.       /**
  304.        * The result of calling getSelection with an out-of-range selectionNum (i.e. for a selection 
  305.        * which does not exist) is not strictly defined, but should set endOffset equal to startOffset.
  306.        **/
  307.     void getSelection (in long selectionNum, out long startOffset, out long endOffset);
  308.       /**
  309.        * The result of calling addSelection on objects which already have one selection present, and which
  310.        * do not include STATE_MULTISELECTABLE, is undefined, other than the return value.
  311.        * @returns \c True of the selection was successfully added, \c False otherwise. Selection may
  312.        * fail if the object does not support selection of text (see STATE_SELECTABLE_TEXT), if the
  313.        * object does not support multiple selections and a selection is already defined, or for other reasons
  314.        * (for instance if the user does not have permission to copy the text into the relevant selection 
  315.        * buffer).
  316.        **/
  317.     boolean addSelection (in long startOffset, in long endOffset);
  318.       /**
  319.        * Deselect the text contained in the specified selectionNum, if such a selection
  320.        * exists, otherwise do nothing.  Removal of a non-existant selectionNum has no effect.
  321.        * @returns \c True if the selection was successfully removed, \c False otherwise.
  322.        **/
  323.     boolean removeSelection (in long selectionNum);
  324.       /**
  325.        * Modify an existing selection's start or ending offset. 
  326.        *
  327.        * Calling setSelection for a selectionNum that is not already defined has no effect.
  328.        * The result of calling setSelection with a selectionNum greater than 0 for objects that
  329.        * do not include STATE_MULTISELECTABLE is undefined.
  330.        * @param selectionNum indicates which of a set of non-contiguous selections to modify.
  331.        * @param startOffset the new starting offset for the selection
  332.        * @param endOffset the new ending offset for the selection
  333.        * @returns \c True if the selection corresponding to selectionNum is successfully modified, 
  334.        *             \c False otherwise.
  335.        **/
  336.     boolean setSelection (in long selectionNum, in long startOffset, in long endOffset);
  337.       /**
  338.        * Obtain the bounding box which entirely contains a given text range.
  339.        * Negative values may be returned for the bounding box parameters in the event
  340.        * that all or part of the text range is offscreen or not mapped to the screen.
  341.        * @param startOffset the offset of the first character in the specified range.
  342.        * @param endOffset the offset of the character immediately after the last 
  343.        *        character in the specified range.
  344.        * @param x an integer parameter which is back-filled with the minimum
  345.        *        horizontal coordinate of the resulting bounding box.
  346.        * @param y an integer parameter which is back-filled with the minimum
  347.        *        vertical coordinate of the resulting bounding box.
  348.        * @param width an integer parameter which is back-filled with the
  349.        *        horizontal extent of the bounding box.
  350.        * @param height an integer parameter which is back-filled with the
  351.        *        vertical extent of the bounding box.
  352.        * @param coordType If 0, the above coordinates are reported in pixels relative to
  353.        *        corner of the screen; if 1, the coordinates are reported relative to the
  354.        *        corner of the containing toplevel window.
  355.        **/
  356.     void    getRangeExtents (in long startOffset, in long endOffset, 
  357.                  out long x, out long y, 
  358.                  out long width, out long height, in short coordType);
  359.  
  360.       /**
  361.        * Return the text content within a bounding box, 
  362.        * as a list of Range structures.
  363.        * Depending on the TEXT_CLIP_TYPE parameters, glyphs which are clipped by the
  364.        * bounding box (i.e. which lie partially inside and partially outside it)
  365.        * may or may not be included in the ranges returned.  
  366.        * @note This method may be of particular interest to screen review algorithms.
  367.        * @see TEXT_CLIP_TYPE.
  368.        * @param x the minimum x ( i.e. leftmost)  coordinate of the bounding box.
  369.        * @param y the minimum y coordinate of the bounding box.
  370.        * @param width the horizontal size of the bounding box.  The rightmost bound of the bounding box
  371.        *        is (x + width);
  372.        * @param height the vertical size of the bounding box.  The maximum y value of the bounding box
  373.        *        is (y + height);
  374.        * @param coordType If 0, the above coordinates are interpreted as pixels relative to
  375.        *        corner of the screen; if 1, the coordinates are interpreted as pixels relative to the
  376.        *        corner of the containing toplevel window.
  377.        * @param xClipType determines whether text which intersects the bounding box in the x direction
  378.        *        is included.
  379.        * @param yClipType determines whether text which intersects the bounding box in the y direction
  380.        *        is included.
  381.        **/
  382.     RangeList getBoundedRanges (in long x, in long y, 
  383.                 in long width, in long height, 
  384.                 in short coordType, 
  385.                 in TEXT_CLIP_TYPE xClipType, 
  386.                 in TEXT_CLIP_TYPE yClipType);
  387.  
  388.     /** 
  389.      * Query a particular text object for the text attributes defined at a given offset, 
  390.      * obtaining the start and end of the "attribute run" over which these attributes are currently 
  391.      * invariant.  Text attributes are those presentational, typographic, or semantic attributes or 
  392.      * qualitites which apply to a range of text specifyable by starting and ending offsets.  
  393.      * Attributes relevant to localization should be provided in 
  394.      * accordance with the w3c "Internationalization and Localization Markup Requirements", 
  395.      * http://www.w3.org/TR/2005/WD-itsreq-20051122/
  396.      * Other text attributes should choose their names and value semantics in accordance with relevant
  397.      * standards such as CSS level 2 (http://www.w3.org/TR/1998/REC-CSS2-19980512), 
  398.      * XHTML 1.0 (http://www.w3.org/TR/2002/REC-xhtml1-20020801), and
  399.      * WICD (http://www.w3.org/TR/2005/WD-WICD-20051121/).  Those attributes from the aforementioned
  400.      * specifications and recommendations which do not concern typographic, presentational, or 
  401.      * semantic aspects of text should be exposed via the more general Accessible::getAttributes() API
  402.      * (if at all).
  403.      *
  404.      * For example, CSS attributes which should be exposed on text (either as default attributes, or 
  405.      * as explicitly-set attributes when non-default values are specified in the content view) include
  406.      * the Font attributes (i.e. "css2:font-weight", "css2:font-style"), 
  407.      * the "css2:color" and "css2:background-color" attributes, and "css2:text-decoration" attribute. 
  408.      * 
  409.      * If includeDefaults is TRUE, then this AttributeSet should include the default
  410.      * attributes as well as those which are explicitly assigned to the attribute run in question.
  411.      * startOffset and endOffset will be back-filled to indicate the start and end of the attribute run
  412.      * which contains 'offset' - an attribute run is a contiguous section of text whose attributes are
  413.      * homogeneous.
  414.      * @param offset the offset of the character whose attributes will be reported.
  415.      * @param startOffset backfilled with the starting offset of the character range over which all
  416.      *                    text attributes match those of \c offset, i.e. the start of the homogeneous
  417.      *                    attribute run including \c offset.
  418.      * @param endOffset backfilled with the offset of the first character past the character range over which all
  419.      *                    text attributes match those of \c offset, i.e. the character immediately after 
  420.      *                    the homogeneous attribute run including \c offset.
  421.      * @param includeDefaults if False, the call should only return those attributes which are
  422.      * explicitly set on the current attribute run, omitting any attributes which are inherited from 
  423.      * the default values.  See also Text::getDefaultAttributes.
  424.      *
  425.      * @note Clients seeking annotations or properties of a more general nature, which 
  426.      * are not specific to the onscreen textual content of objects and cannot logically be applied
  427.      * to specific character offset ranges,
  428.      * should use Accessible::getAttributes instead.
  429.      * The attributes returned by Text::getAttributeRun (with or without 'default attributes'), 
  430.      * are distinct from the properties/attributes returned by Accessible::getAttributes.
  431.      * 
  432.      * @see Accessible::getAttributes
  433.      *
  434.      * @returns the AttributeSet defined at offset, optionally including the 'default' attributes. 
  435.      *
  436.      * @since AT-SPI 1.7.0
  437.      **/
  438.     AttributeSet getAttributeRun (in long offset,
  439.                   out long startOffset, 
  440.                   out long endOffset,
  441.                   in boolean includeDefaults);
  442.       /** 
  443.        * Return an ::AttributeSet containing the text attributes which apply to all text in the object
  444.        * by virtue of the default settings of the document, view, or user agent; e.g. those
  445.        * attributes which are implied rather than explicitly applied to the text object.
  446.        * For instance, an object whose entire text content has been explicitly marked as 'bold' will
  447.        * report the 'bold' attribute via getAttributeRun(), whereas an object whose text weight is
  448.        * inspecified may report the default or implied text weight in the default AttributeSet.
  449.        * 
  450.        * @since AT-SPI 1.7.0
  451.        **/
  452.     AttributeSet getDefaultAttributeSet ();
  453.  
  454.     /** \cond
  455.      * unImplemented:
  456.      *
  457.      * placeholders for future expansion.
  458.      */
  459.     void unImplemented ();
  460.     void unImplemented2 ();
  461.     /** \endcond **/
  462.   };
  463. };
  464.