1*3a700b0aSSteve Yin /**************************************************************
2*3a700b0aSSteve Yin  *
3*3a700b0aSSteve Yin  * Licensed to the Apache Software Foundation (ASF) under one
4*3a700b0aSSteve Yin  * or more contributor license agreements.  See the NOTICE file
5*3a700b0aSSteve Yin  * distributed with this work for additional information
6*3a700b0aSSteve Yin  * regarding copyright ownership.  The ASF licenses this file
7*3a700b0aSSteve Yin  * to you under the Apache License, Version 2.0 (the
8*3a700b0aSSteve Yin  * "License"); you may not use this file except in compliance
9*3a700b0aSSteve Yin  * with the License.  You may obtain a copy of the License at
10*3a700b0aSSteve Yin  *
11*3a700b0aSSteve Yin  *   http://www.apache.org/licenses/LICENSE-2.0
12*3a700b0aSSteve Yin  *
13*3a700b0aSSteve Yin  * Unless required by applicable law or agreed to in writing,
14*3a700b0aSSteve Yin  * software distributed under the License is distributed on an
15*3a700b0aSSteve Yin  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*3a700b0aSSteve Yin  * KIND, either express or implied.  See the License for the
17*3a700b0aSSteve Yin  * specific language governing permissions and limitations
18*3a700b0aSSteve Yin  * under the License.
19*3a700b0aSSteve Yin  *
20*3a700b0aSSteve Yin  *************************************************************/
215fdc4257SSteve Yin 
225fdc4257SSteve Yin #include "stdafx.h"
235fdc4257SSteve Yin #include "UAccCOM2.h"
245fdc4257SSteve Yin #include "AccText.h"
255fdc4257SSteve Yin 
265fdc4257SSteve Yin using namespace com::sun::star::accessibility;
275fdc4257SSteve Yin using namespace com::sun::star::uno;
285fdc4257SSteve Yin 
295fdc4257SSteve Yin /**
305fdc4257SSteve Yin    * Get special selection.
315fdc4257SSteve Yin    * @param startOffset Start selection offset.
325fdc4257SSteve Yin    * @param endOffset   End selection offset.
335fdc4257SSteve Yin    * @param success     Variant to accept the result of if the method call is successful.
345fdc4257SSteve Yin    * @return Result.
355fdc4257SSteve Yin */
addSelection(long startOffset,long endOffset)365fdc4257SSteve Yin STDMETHODIMP CAccText::addSelection(long startOffset, long endOffset)//, unsigned char * success)
375fdc4257SSteve Yin {
385fdc4257SSteve Yin 
395fdc4257SSteve Yin     return CAccTextBase::get_addSelection(startOffset, endOffset);//, success);
405fdc4257SSteve Yin }
415fdc4257SSteve Yin 
425fdc4257SSteve Yin /**
435fdc4257SSteve Yin    * Get special attributes.
445fdc4257SSteve Yin    * @param offset Offset.
455fdc4257SSteve Yin    * @param startOffset Variant to accept start offset.
465fdc4257SSteve Yin    * @param endOffset   Variant to accept end offset.
475fdc4257SSteve Yin    * @param textAttributes     Variant to accept attributes.
485fdc4257SSteve Yin    * @return Result.
495fdc4257SSteve Yin */
get_attributes(long offset,long * startOffset,long * endOffset,BSTR * textAttributes)505fdc4257SSteve Yin STDMETHODIMP CAccText::get_attributes(long offset, long * startOffset, long * endOffset, BSTR * textAttributes)
515fdc4257SSteve Yin {
525fdc4257SSteve Yin 
535fdc4257SSteve Yin     return CAccTextBase::get_attributes(offset, startOffset, endOffset, textAttributes);
545fdc4257SSteve Yin }
555fdc4257SSteve Yin 
565fdc4257SSteve Yin /**
575fdc4257SSteve Yin    * Get caret position.
585fdc4257SSteve Yin    * @param offset     Variant to accept caret offset.
595fdc4257SSteve Yin    * @return Result.
605fdc4257SSteve Yin */
get_caretOffset(long * offset)615fdc4257SSteve Yin STDMETHODIMP CAccText::get_caretOffset(long * offset)
625fdc4257SSteve Yin {
635fdc4257SSteve Yin 
645fdc4257SSteve Yin     return CAccTextBase::get_caretOffset(offset);
655fdc4257SSteve Yin }
665fdc4257SSteve Yin 
675fdc4257SSteve Yin /**
685fdc4257SSteve Yin    * Get character count.
695fdc4257SSteve Yin    * @param nCharacters  Variant to accept character count.
705fdc4257SSteve Yin    * @return Result.
715fdc4257SSteve Yin */
get_characterCount(long * nCharacters)725fdc4257SSteve Yin STDMETHODIMP CAccText::get_characterCount(long * nCharacters)
735fdc4257SSteve Yin {
745fdc4257SSteve Yin 
755fdc4257SSteve Yin     return CAccTextBase::get_characterCount(nCharacters);
765fdc4257SSteve Yin }
775fdc4257SSteve Yin 
785fdc4257SSteve Yin /**
795fdc4257SSteve Yin    * Get character extents.
805fdc4257SSteve Yin    * @param offset  Offset.
815fdc4257SSteve Yin    * @param x Variant to accpet x position.
825fdc4257SSteve Yin    * @param y Variant to accpet y position.
835fdc4257SSteve Yin    * @param width Variant to accpet width.
845fdc4257SSteve Yin    * @param Height Variant to accpet height.
855fdc4257SSteve Yin    * @return Result.
865fdc4257SSteve Yin */
get_characterExtents(long offset,IA2CoordinateType coordType,long * x,long * y,long * width,long * height)875fdc4257SSteve Yin STDMETHODIMP CAccText::get_characterExtents(long offset, IA2CoordinateType coordType, long * x, long * y, long * width, long * height)
885fdc4257SSteve Yin {
895fdc4257SSteve Yin 
905fdc4257SSteve Yin     return CAccTextBase::get_characterExtents(offset, coordType, x, y, width, height);
915fdc4257SSteve Yin }
925fdc4257SSteve Yin 
935fdc4257SSteve Yin /**
945fdc4257SSteve Yin    * Get slections count.
955fdc4257SSteve Yin    * @param nSelections Variant to accpet slections count.
965fdc4257SSteve Yin    * @return Result.
975fdc4257SSteve Yin */
get_nSelections(long * nSelections)985fdc4257SSteve Yin STDMETHODIMP CAccText::get_nSelections(long * nSelections)
995fdc4257SSteve Yin {
1005fdc4257SSteve Yin 
1015fdc4257SSteve Yin     return CAccTextBase::get_nSelections(nSelections);
1025fdc4257SSteve Yin }
1035fdc4257SSteve Yin 
1045fdc4257SSteve Yin /**
1055fdc4257SSteve Yin    * Get offset of some special point.
1065fdc4257SSteve Yin    * @param x X position of one point.
1075fdc4257SSteve Yin    * @param x Y position of one point.
1085fdc4257SSteve Yin    * @param coordType Type.
1095fdc4257SSteve Yin    * @param offset Variant to accept offset.
1105fdc4257SSteve Yin    * @return Result.
1115fdc4257SSteve Yin */
1125fdc4257SSteve Yin 
get_offsetAtPoint(long x,long y,IA2CoordinateType coordType,long * offset)1135fdc4257SSteve Yin STDMETHODIMP CAccText::get_offsetAtPoint(long x, long y, IA2CoordinateType coordType, long * offset)
1145fdc4257SSteve Yin {
1155fdc4257SSteve Yin 
1165fdc4257SSteve Yin     return CAccTextBase::get_offsetAtPoint(x, y, coordType, offset);
1175fdc4257SSteve Yin }
1185fdc4257SSteve Yin 
1195fdc4257SSteve Yin /**
1205fdc4257SSteve Yin    * Get selection range.
1215fdc4257SSteve Yin    * @param selection selection count.
1225fdc4257SSteve Yin    * @param startOffset Variant to accept the start offset of special selection.
1235fdc4257SSteve Yin    * @param endOffset Variant to accept the end offset of special selection.
1245fdc4257SSteve Yin    * @return Result.
1255fdc4257SSteve Yin */
get_selection(long selection,long * startOffset,long * endOffset)1265fdc4257SSteve Yin STDMETHODIMP CAccText::get_selection(long selection, long * startOffset, long * endOffset)
1275fdc4257SSteve Yin {
1285fdc4257SSteve Yin 
1295fdc4257SSteve Yin     return CAccTextBase::get_selection(selection, startOffset, endOffset);
1305fdc4257SSteve Yin }
1315fdc4257SSteve Yin 
1325fdc4257SSteve Yin /**
1335fdc4257SSteve Yin    * Get special text.
1345fdc4257SSteve Yin    * @param startOffset Start position of special range.
1355fdc4257SSteve Yin    * @param endOffset   End position of special range.
1365fdc4257SSteve Yin    * @param text        Variant to accept the text of special range.
1375fdc4257SSteve Yin    * @return Result.
1385fdc4257SSteve Yin */
get_text(long startOffset,long endOffset,BSTR * text)1395fdc4257SSteve Yin STDMETHODIMP CAccText::get_text(long startOffset, long endOffset, BSTR * text)
1405fdc4257SSteve Yin {
1415fdc4257SSteve Yin 
1425fdc4257SSteve Yin     return CAccTextBase::get_text(startOffset, endOffset, text);
1435fdc4257SSteve Yin }
1445fdc4257SSteve Yin 
1455fdc4257SSteve Yin /**
1465fdc4257SSteve Yin    * Get special text before some position.
1475fdc4257SSteve Yin    * @param offset Special position.
1485fdc4257SSteve Yin    * @param boundaryType Boundary type.
1495fdc4257SSteve Yin    * @param startOffset Variant to accept the start offset.
1505fdc4257SSteve Yin    * @param endOffset   Variant to accept the end offset.
1515fdc4257SSteve Yin    * @param text        Variant to accept the special text.
1525fdc4257SSteve Yin    * @return Result.
1535fdc4257SSteve Yin */
get_textBeforeOffset(long offset,IA2TextBoundaryType boundaryType,long * startOffset,long * endOffset,BSTR * text)1545fdc4257SSteve Yin STDMETHODIMP CAccText::get_textBeforeOffset(long offset, IA2TextBoundaryType boundaryType, long * startOffset, long * endOffset, BSTR * text)
1555fdc4257SSteve Yin {
1565fdc4257SSteve Yin 
1575fdc4257SSteve Yin     return CAccTextBase::get_textBeforeOffset(offset, boundaryType,
1585fdc4257SSteve Yin             startOffset, endOffset, text);
1595fdc4257SSteve Yin }
1605fdc4257SSteve Yin 
1615fdc4257SSteve Yin /**
1625fdc4257SSteve Yin    * Get special text after some position.
1635fdc4257SSteve Yin    * @param offset Special position.
1645fdc4257SSteve Yin    * @param boundaryType Boundary type.
1655fdc4257SSteve Yin    * @param startOffset Variant to accept the start offset.
1665fdc4257SSteve Yin    * @param endOffset   Variant to accept the end offset.
1675fdc4257SSteve Yin    * @param text        Variant to accept the special text.
1685fdc4257SSteve Yin    * @return Result.
1695fdc4257SSteve Yin */
get_textAfterOffset(long offset,IA2TextBoundaryType boundaryType,long * startOffset,long * endOffset,BSTR * text)1705fdc4257SSteve Yin STDMETHODIMP CAccText::get_textAfterOffset(long offset, IA2TextBoundaryType boundaryType, long * startOffset, long * endOffset, BSTR * text)
1715fdc4257SSteve Yin {
1725fdc4257SSteve Yin 
1735fdc4257SSteve Yin     return CAccTextBase::get_textAfterOffset(offset, boundaryType,
1745fdc4257SSteve Yin             startOffset, endOffset, text);
1755fdc4257SSteve Yin }
1765fdc4257SSteve Yin 
1775fdc4257SSteve Yin /**
1785fdc4257SSteve Yin    * Get special text at some position.
1795fdc4257SSteve Yin    * @param offset Special position.
1805fdc4257SSteve Yin    * @param boundaryType Boundary type.
1815fdc4257SSteve Yin    * @param startOffset Variant to accept the start offset.
1825fdc4257SSteve Yin    * @param endOffset   Variant to accept the end offset.
1835fdc4257SSteve Yin    * @param text        Variant to accept the special text.
1845fdc4257SSteve Yin    * @return Result.
1855fdc4257SSteve Yin */
get_textAtOffset(long offset,IA2TextBoundaryType boundaryType,long * startOffset,long * endOffset,BSTR * text)1865fdc4257SSteve Yin STDMETHODIMP CAccText::get_textAtOffset(long offset, IA2TextBoundaryType boundaryType, long * startOffset, long * endOffset, BSTR * text)
1875fdc4257SSteve Yin {
1885fdc4257SSteve Yin 
1895fdc4257SSteve Yin     return CAccTextBase::get_textAtOffset(offset, boundaryType,
1905fdc4257SSteve Yin                                           startOffset, endOffset, text);
1915fdc4257SSteve Yin }
1925fdc4257SSteve Yin 
1935fdc4257SSteve Yin /**
1945fdc4257SSteve Yin    * Remove selection.
1955fdc4257SSteve Yin    * @param selectionIndex Special selection index
1965fdc4257SSteve Yin    * @param success Variant to accept the memthod called result.
1975fdc4257SSteve Yin    * @return Result.
1985fdc4257SSteve Yin */
removeSelection(long selectionIndex)1995fdc4257SSteve Yin STDMETHODIMP CAccText::removeSelection(long selectionIndex)//, unsigned char * success)
2005fdc4257SSteve Yin {
2015fdc4257SSteve Yin 
2025fdc4257SSteve Yin     return CAccTextBase::removeSelection(selectionIndex);//, success);
2035fdc4257SSteve Yin }
2045fdc4257SSteve Yin 
2055fdc4257SSteve Yin /**
2065fdc4257SSteve Yin    * Set caret position.
2075fdc4257SSteve Yin    * @param offset Special position.
2085fdc4257SSteve Yin    * @param success Variant to accept the memthod called result.
2095fdc4257SSteve Yin    * @return Result.
2105fdc4257SSteve Yin */
setCaretOffset(long offset)2115fdc4257SSteve Yin STDMETHODIMP CAccText::setCaretOffset(long offset)
2125fdc4257SSteve Yin {
2135fdc4257SSteve Yin 
2145fdc4257SSteve Yin     return CAccTextBase::setCaretOffset(offset);
2155fdc4257SSteve Yin }
2165fdc4257SSteve Yin 
2175fdc4257SSteve Yin /**
2185fdc4257SSteve Yin    * Set special selection.
2195fdc4257SSteve Yin    * @param selectionIndex Special selection index.
2205fdc4257SSteve Yin    * @param startOffset start position.
2215fdc4257SSteve Yin    * @param endOffset end position.
2225fdc4257SSteve Yin    * @param success Variant to accept the memthod called result.
2235fdc4257SSteve Yin    * @return Result.
2245fdc4257SSteve Yin */
2255fdc4257SSteve Yin 
setSelection(long selectionIndex,long startOffset,long endOffset)2265fdc4257SSteve Yin STDMETHODIMP CAccText::setSelection(long selectionIndex, long startOffset, long endOffset)
2275fdc4257SSteve Yin {
2285fdc4257SSteve Yin 
2295fdc4257SSteve Yin     return CAccTextBase::setSelection(selectionIndex, startOffset,
2305fdc4257SSteve Yin                                       endOffset);
2315fdc4257SSteve Yin }
2325fdc4257SSteve Yin 
2335fdc4257SSteve Yin /**
2345fdc4257SSteve Yin    * Get characters count.
2355fdc4257SSteve Yin    * @param nCharacters Variant to accept the characters count.
2365fdc4257SSteve Yin    * @return Result.
2375fdc4257SSteve Yin */
get_nCharacters(long * nCharacters)2385fdc4257SSteve Yin STDMETHODIMP CAccText::get_nCharacters(long * nCharacters)
2395fdc4257SSteve Yin {
2405fdc4257SSteve Yin 
2415fdc4257SSteve Yin     return CAccTextBase::get_nCharacters(nCharacters);
2425fdc4257SSteve Yin }
2435fdc4257SSteve Yin 
get_newText(IA2TextSegment * newText)2445fdc4257SSteve Yin STDMETHODIMP CAccText::get_newText( IA2TextSegment *newText)
2455fdc4257SSteve Yin {
2465fdc4257SSteve Yin     return CAccTextBase::get_newText(newText);
2475fdc4257SSteve Yin }
2485fdc4257SSteve Yin 
get_oldText(IA2TextSegment * oldText)2495fdc4257SSteve Yin STDMETHODIMP CAccText::get_oldText( IA2TextSegment *oldText)
2505fdc4257SSteve Yin {
2515fdc4257SSteve Yin     return CAccTextBase::get_oldText(oldText);
2525fdc4257SSteve Yin }
2535fdc4257SSteve Yin 
2545fdc4257SSteve Yin /**
2555fdc4257SSteve Yin    * Scroll to special sub-string .
2565fdc4257SSteve Yin    * @param startIndex Start index of sub string.
2575fdc4257SSteve Yin    * @param endIndex   End index of sub string.
2585fdc4257SSteve Yin    * @return Result.
2595fdc4257SSteve Yin */
scrollSubstringToPoint(long startIndex,long endIndex,enum IA2CoordinateType coordinateType,long x,long y)2605fdc4257SSteve Yin STDMETHODIMP CAccText::scrollSubstringToPoint(long startIndex, long endIndex,enum IA2CoordinateType coordinateType, long x, long y )
2615fdc4257SSteve Yin {
2625fdc4257SSteve Yin 
2635fdc4257SSteve Yin     return CAccTextBase::scrollSubstringToPoint(startIndex, endIndex, coordinateType, x, y);
2645fdc4257SSteve Yin }
2655fdc4257SSteve Yin 
scrollSubstringTo(long startIndex,long endIndex,enum IA2ScrollType scrollType)2665fdc4257SSteve Yin STDMETHODIMP CAccText::scrollSubstringTo(long startIndex, long endIndex,enum IA2ScrollType scrollType)
2675fdc4257SSteve Yin {
2685fdc4257SSteve Yin 
2695fdc4257SSteve Yin     return CAccTextBase::scrollSubstringTo(startIndex, endIndex,scrollType);
2705fdc4257SSteve Yin }
2715fdc4257SSteve Yin 
2725fdc4257SSteve Yin /**
2735fdc4257SSteve Yin    * Put UNO interface.
2745fdc4257SSteve Yin    * @param pXInterface UNO interface.
2755fdc4257SSteve Yin    * @return Result.
2765fdc4257SSteve Yin */
put_XInterface(long pXInterface)2775fdc4257SSteve Yin STDMETHODIMP CAccText::put_XInterface(long pXInterface)
2785fdc4257SSteve Yin {
2795fdc4257SSteve Yin 
2805fdc4257SSteve Yin     return CAccTextBase::put_XInterface(pXInterface);
2815fdc4257SSteve Yin }
2825fdc4257SSteve Yin 
283