27 #include "K2Debugging.h" 28 #include "K2TypeTraits.h" 30 #include "UnicodeSavvyString.h" 32 #include <adobe/move.hpp> 33 #include <adobe/typeinfo.hpp> 39 #include "PlatformChar.h" 40 #include "Invariant.h" 44 #define DEPRECATED_PLATFORM_BUFFER 1 93 PMString(
const UTF16TextChar *
string, int32 nDblBytes);
101 explicit PMString(
const wchar_t* s);
109 PMString(
const wchar_t* s,
size_t len);
115 fEncoding(other.source.fEncoding),
116 fShouldTranslate(other.source.fShouldTranslate), fHasTranslated(other.source.fHasTranslated)
118 ,fFormatNumber(other.source.fFormatNumber)
125 fEncoding(other.fEncoding),
126 fShouldTranslate(other.fShouldTranslate), fHasTranslated(other.fHasTranslated)
128 , fFormatNumber(other.fFormatNumber)
169 void SetXString(
const UTF16TextChar* x, int32 nDblBytes);
184 fShouldTranslate = kFalse;
185 fHasTranslated = kFalse;
186 return assign_impl(s, len,
wchar_size<
sizeof(
wchar_t)>());
189 #if 0// routine defined in UnicodeSavvyString.h included here for reference 218 CFStringRef CreateCFString()
const;
224 void SetCFString(CFStringRef cfstring);
231 TCHAR* GrabTString(
void)
238 const TCHAR* GrabTString(
void)
const 245 void SetTString(
const TCHAR* x);
250 uint32 GetTLength()
const;
272 #if 0// routine defined in UnicodeSavvyString.h included here for reference 290 bool16
empty()
const;
303 void Append(
const PMString &s, CharCounter nCharacters = kMaxInt32);
314 void AppendW(
const UTF16TextChar * ws, int32 nDblBytes = kMaxInt32);
326 void append(
const wchar_t *s);
338 void Insert(
const PMString &s, CharCounter pos = 0, CharCounter nCharacters = kMaxInt32);
345 void InsertW(
const UTF16TextChar *ws, int32 nDblBytes = kMaxInt32, int32 pos = 0);
379 void Remove(CharCounter pos, CharCounter count = 1);
384 void Truncate(CharCounter count = 1);
474 bool16
IsEqual(
const PMString &s, bool8 casesensitive = kTrue, bool8 limitCompareToShorterLength = kFalse)
const;
562 uint32
Hash(
void)
const;
576 void AppendNumber(
const PMReal& r,int32 digitsPrecision = -1, bool16 round = kFalse, bool16 eliminateTrailingZeros = kFalse);
590 void AsNumber(
const PMReal& r,int32 digitsPrecision = -1, bool16 round = kFalse, bool16 eliminateTrailingZeros = kFalse);
779 kUnknownEncoding = -1
954 #ifdef DEPRECATED_PLATFORM_BUFFER 1029 bool16
IsNull(
void)
const;
1054 void AssignToPlatformBuffer(ConstCString src, int32 lengthInBytes);
1057 mutable InvariantCount fInvariant;
1059 void Invariant()
const;
1062 int32 CountChars()
const;
1070 inline PMString& assign_impl(
const wchar_t* s,
size_t len, wchar_size<2>)
1072 SetXString(reinterpret_cast<const UTF16TextChar*>(s), static_cast<int32>(len));
1076 PMString& assign_impl(
const wchar_t* s,
size_t len, wchar_size<4>);
1078 inline PMString& append_dispatch(
const wchar_t* s,
size_t len)
1080 return append_impl(s, len, wchar_size<
sizeof(
wchar_t)>());
1083 inline PMString& append_impl(
const wchar_t* s,
size_t len, wchar_size<2>)
1085 AppendW(reinterpret_cast<const UTF16TextChar*>(s), static_cast<int32>(len));
1089 PMString& append_impl(
const wchar_t* s,
size_t len, wchar_size<4>);
1092 bool16 fShouldTranslate;
1093 bool16 fHasTranslated;
1097 uchar fFormatNumber;
1116 swap(static_cast<UnicodeSavvyString&>(left), static_cast<UnicodeSavvyString&>(right));
1118 std::swap(left.fEncoding, right.fEncoding);
1119 std::swap(left.fShouldTranslate, right.fShouldTranslate);
1120 std::swap(left.fHasTranslated, right.fHasTranslated);
1122 std::swap(left.fFormatNumber, right.fFormatNumber);
1127 ADOBE_NAME_TYPE_0(
"pmstring:indesign:adobe",
PMString);