2003-06-25 Padraig O'Briain <padraig.obriain@sun.com>
[platform/core/uifw/at-spi2-atk.git] / idl / Accessibility_Text.idl
index f472c76..49fe577 100644 (file)
@@ -24,31 +24,77 @@ module Accessibility {
 
   enum TEXT_BOUNDARY_TYPE {
     TEXT_BOUNDARY_CHAR,
-    TEXT_BOUNDARY_CURSOR_POS,
     TEXT_BOUNDARY_WORD_START,
     TEXT_BOUNDARY_WORD_END,
     TEXT_BOUNDARY_SENTENCE_START,
     TEXT_BOUNDARY_SENTENCE_END,
     TEXT_BOUNDARY_LINE_START,
     TEXT_BOUNDARY_LINE_END
-};
+  };
+
+  /**
+   * TEXT_CLIP_TYPE:
+   * CLIP_MIN means text clipped by min coordinate is omitted,
+   * CLIP_MAX clips text interescted by the max coord, and CLIP_BOTH
+   * will retain only text falling fully within the min/max bounds.
+   *
+   **/
+  enum TEXT_CLIP_TYPE {
+    TEXT_CLIP_NONE,
+    TEXT_CLIP_MIN,
+    TEXT_CLIP_MAX,
+    TEXT_CLIP_BOTH
+  };
+
+  interface Text : Bonobo::Unknown {
 
-  interface Text {
-        long getCharacterCount ();
-        string getText (in long startOfffset, in long endOffset);
-        long getCaretOffset ();
-        boolean setCaretOffset (in long offset);
-        string getTextBeforeOffset (in long offset, in TEXT_BOUNDARY_TYPE type);
-        string getTextAtOffset (in long offset, in TEXT_BOUNDARY_TYPE type);
-        string getTextAfterOffset (in long offset, in TEXT_BOUNDARY_TYPE type);
-        /* could be string instead, to allow unicode chars > 16 bits */
-        wchar getCharacterAtOffset (in long offset);
-        void getRowColAtOffset (in long offset, out long row, out long column);
-        string getAttributes (in long startOffset, in long endOffset);
-        boolean getCharacterExtents (in long offset, out long x, out long y, out long length, out long width);
-        long getOffsetAtPoint (in long x, in long y);
-        string getSelectedText ();
-        void getSelectionBounds (out long startOffset, out long endOffset);
-        boolean setSelectionBounds (in long startOffset, in long endOffset);
+    struct Range {
+      long startOffset;
+      long endOffset; 
+      string content;
+      any  data;
+    };
+    
+    typedef sequence<Range> RangeList;
+    
+    readonly attribute long characterCount;
+    readonly attribute long caretOffset;
+    string getText (in long startOffset, in long endOffset);
+    boolean setCaretOffset (in long offset);
+    string getTextBeforeOffset (in long offset, in TEXT_BOUNDARY_TYPE type,
+                               out long startOffset, out long endOffset);
+    string getTextAtOffset (in long offset, in TEXT_BOUNDARY_TYPE type,
+                                                       out long startOffset, out long endOffset);
+    string getTextAfterOffset (in long offset, in TEXT_BOUNDARY_TYPE type,
+                                                       out long startOffset, out long endOffset);
+    unsigned long getCharacterAtOffset (in long offset);  /* long instead of wchar, 
+                                                          * to allow unicode chars > 16 bits 
+                                                          */
+    string getAttributes (in long offset,
+                         out long startOffset, out long endOffset);
+    void getCharacterExtents (in long offset, out long x, out long y, out long width, out long height, in short coordType);
+    long getOffsetAtPoint (in long x, in long y, in short coordType);
+    long getNSelections ();
+    void getSelection (in long selectionNum, out long startOffset, out long endOffset);
+    boolean addSelection (in long startOffset, in long endOffset);
+    boolean removeSelection (in long selectionNum);
+    boolean setSelection (in long selectionNum, in long startOffset, in long endOffset);
+    void    getRangeExtents (in long startOffset, in long endOffset, 
+                            out long x, out long y, 
+                            out long width, out long height, in short coordType);
+    RangeList getBoundedRanges (in long x, in long y, 
+                               in long width, in long height, 
+                               in short coordType, 
+                               in TEXT_CLIP_TYPE xClipType, 
+                               in TEXT_CLIP_TYPE yClipType);
+    /**
+     * unImplemented:
+     *
+     * placeholders for future expansion.
+     */
+    void unImplemented ();
+    void unImplemented2 ();
+    void unImplemented3 ();
+    void unImplemented4 ();
   };
 };