summaryrefslogtreecommitdiffstats
path: root/winaccessibility/source/UAccCOM/AccTextBase.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'winaccessibility/source/UAccCOM/AccTextBase.cxx')
-rw-r--r--winaccessibility/source/UAccCOM/AccTextBase.cxx50
1 files changed, 22 insertions, 28 deletions
diff --git a/winaccessibility/source/UAccCOM/AccTextBase.cxx b/winaccessibility/source/UAccCOM/AccTextBase.cxx
index 6bed720c5389..0c7a58dbdade 100644
--- a/winaccessibility/source/UAccCOM/AccTextBase.cxx
+++ b/winaccessibility/source/UAccCOM/AccTextBase.cxx
@@ -21,7 +21,6 @@
// AccTextBase.cpp: implementation of the CAccTextBase class.
#include "stdafx.h"
-#include <string>
#include "AccTextBase.h"
@@ -110,14 +109,12 @@ STDMETHODIMP CAccTextBase::get_attributes(long offset, long * startOffset, long
if( offset < 0 || offset > GetXInterface()->getCharacterCount() )
return E_FAIL;
- std::wstring strAttrs;
-
- strAttrs += L"Version:1;";
+ OUStringBuffer strAttrs("Version:1;");
Sequence< css::beans::PropertyValue > pValues = GetXInterface()->getCharacterAttributes(offset, Sequence< rtl::OUString >());
int nCount = pValues.getLength();
- short numberingLevel = 0;
+ sal_Int16 numberingLevel = 0;
OUString numberingPrefix;
Any anyNumRule;
bool bHaveNumberingPrefixAttr = false;
@@ -150,23 +147,19 @@ STDMETHODIMP CAccTextBase::get_attributes(long offset, long * startOffset, long
}
if (bHaveNumberingLevel && bHaveNumberingRules && bHaveNumberingPrefixAttr)
{
- OLECHAR numProps[512] = {0};
- strAttrs+=L";";
+ strAttrs.append(';');
numberingPrefix = ReplaceFourChar(numberingPrefix);
- CMAccessible::get_OLECHAR4Numbering(anyNumRule,numberingLevel,numberingPrefix,numProps);
- strAttrs += numProps;
+ strAttrs.append(CMAccessible::get_String4Numbering(anyNumRule,numberingLevel,numberingPrefix));
bHaveNumberingLevel = false;
bHaveNumberingRules = false;
}
if( (bHaveNumberingPrefixAttr && i > 1 ) ||
(!bHaveNumberingPrefixAttr && i > 0 ) ) //element 0 is NumberingPrefix, not write alone
{
- strAttrs+=L";";
+ strAttrs.append(';');
}
- strAttrs += SAL_W(pValue.Name.getStr());
- strAttrs += L":";
-
- OLECHAR pTemp[2048] = {0};
+ strAttrs.append(pValue.Name);
+ strAttrs.append(':');
if (pValue.Name == "CharBackColor" ||
pValue.Name == "CharColor" ||
@@ -174,24 +167,25 @@ STDMETHODIMP CAccTextBase::get_attributes(long offset, long * startOffset, long
{
unsigned long nColor;
pValue.Value >>= nColor;
- OLECHAR pBuf[64];
- swprintf( pBuf, L"%08lX", nColor );
- pTemp[0]=L'#';
- wcscat( pTemp, pBuf );
-
+ strAttrs.append('#');
+ auto const hex = OUString::number(nColor, 16).toAsciiUpperCase();
+ for (sal_Int32 j = hex.getLength(); j < 8; ++j) {
+ strAttrs.append('0');
+ }
+ strAttrs.append(hex);
}
else
{
- CMAccessible::get_OLECHARFromAny(pValue.Value,pTemp);
+ strAttrs.append(CMAccessible::get_StringFromAny(pValue.Value));
}
-
- strAttrs +=pTemp;
}
- strAttrs +=L";";
+ strAttrs.append(';');
// #CHECK#
if(*textAttributes)
SysFreeString(*textAttributes);
- *textAttributes = SysAllocString(strAttrs.c_str());
+ *textAttributes = SysAllocString(
+ reinterpret_cast<wchar_t const *>(
+ strAttrs.makeStringAndClear().getStr()));
if( offset < GetXInterface()->getCharacterCount() )
{
@@ -499,7 +493,7 @@ STDMETHODIMP CAccTextBase::get_text(long startOffset, long endOffset, BSTR * tex
}
SysFreeString(*text);
- *text = SysAllocString(SAL_W(ouStr.getStr()));
+ *text = SysAllocString(reinterpret_cast<wchar_t const *>(ouStr.getStr()));
return S_OK;
LEAVE_PROTECTED_BLOCK
@@ -584,7 +578,7 @@ STDMETHODIMP CAccTextBase::get_textBeforeOffset(long offset, IA2TextBoundaryType
TextSegment segment = GetXInterface()->getTextBeforeIndex( offset, sal_Int16(lUnoBoundaryType));
::rtl::OUString ouStr = segment.SegmentText;
SysFreeString(*text);
- *text = SysAllocString(SAL_W(ouStr.getStr()));
+ *text = SysAllocString(reinterpret_cast<wchar_t const *>(ouStr.getStr()));
*startOffset = segment.SegmentStart;
*endOffset = segment.SegmentEnd;
@@ -670,7 +664,7 @@ STDMETHODIMP CAccTextBase::get_textAfterOffset(long offset, IA2TextBoundaryType
TextSegment segment = GetXInterface()->getTextBehindIndex( offset, sal_Int16(lUnoBoundaryType));
::rtl::OUString ouStr = segment.SegmentText;
SysFreeString(*text);
- *text = SysAllocString(SAL_W(ouStr.getStr()));
+ *text = SysAllocString(reinterpret_cast<wchar_t const *>(ouStr.getStr()));
*startOffset = segment.SegmentStart;
*endOffset = segment.SegmentEnd;
@@ -757,7 +751,7 @@ STDMETHODIMP CAccTextBase::get_textAtOffset(long offset, IA2TextBoundaryType bou
TextSegment segment = GetXInterface()->getTextAtIndex( offset, sal_Int16(lUnoBoundaryType));
::rtl::OUString ouStr = segment.SegmentText;
SysFreeString(*text);
- *text = SysAllocString(SAL_W(ouStr.getStr()));
+ *text = SysAllocString(reinterpret_cast<wchar_t const *>(ouStr.getStr()));
*startOffset = segment.SegmentStart;
*endOffset = segment.SegmentEnd;