35#ifndef AAX_CBINARYDISPLAYDELEGATE_H
36#define AAX_CBINARYDISPLAYDELEGATE_H
81 virtual void AddShortenedStrings(
const char* falseString,
const char* trueString,
int iStrLength);
88 uint32_t mMaxStrLength;
96 static bool StringTableSortFunc(
struct StringTable i,
struct StringTable j)
98 return (i.mStrLength < j.mStrLength);
101 std::vector<struct StringTable> mShortenedStrings;
107 mFalseString(falseString),
108 mTrueString(trueString),
111 mMaxStrLength = (std::max)(mMaxStrLength, mFalseString.
Length());
112 mMaxStrLength = (std::max)(mMaxStrLength, mTrueString.
Length());
117 mFalseString(other.mFalseString),
118 mTrueString(other.mTrueString),
119 mMaxStrLength(other.mMaxStrLength)
121 if ( other.mShortenedStrings.size() > 0 )
123 for (
size_t i = 0; i < other.mShortenedStrings.size(); i++ )
124 mShortenedStrings.push_back( other.mShortenedStrings.at(i) );
131 struct StringTable shortendTable;
132 shortendTable.mStrLength = iStrLength;
133 shortendTable.mFalseString =
AAX_CString(falseString);
134 shortendTable.mTrueString =
AAX_CString(trueString);
135 mShortenedStrings.push_back(shortendTable);
138 std::sort(mShortenedStrings.begin(), mShortenedStrings.end(), AAX_CBinaryDisplayDelegate::StringTableSortFunc );
152 *valueString = mTrueString;
154 *valueString = mFalseString;
162 if ( mShortenedStrings.size() == 0 )
163 return this->ValueToString(value, valueString);
166 const uint32_t maxNumCharsUnsigned = (0 <= maxNumChars) ?
static_cast<uint32_t
>(maxNumChars) : 0;
167 if ( maxNumCharsUnsigned >= mMaxStrLength )
170 *valueString = mTrueString;
172 *valueString = mFalseString;
178 for (
int i =
static_cast<int>(mShortenedStrings.size())-1; i >= 0; i-- )
180 struct StringTable shortStrings = mShortenedStrings.at(
static_cast<unsigned int>(i));
181 if ( shortStrings.mStrLength <= maxNumChars )
184 *valueString = shortStrings.mTrueString;
186 *valueString = shortStrings.mFalseString;
192 struct StringTable shortestStrings = mShortenedStrings.at(0);
194 *valueString = shortestStrings.mTrueString;
196 *valueString = shortestStrings.mFalseString;
204 if (valueString == mTrueString)
209 if (valueString == mFalseString)
A generic AAX string class with similar functionality to std::string.
Defines the display behavior for a parameter.
#define AAX_OVERRIDE
override keyword macro
Definition: AAX.h:164
A binary display format conforming to AAX_IDisplayDelegate.
Definition: AAX_CBinaryDisplayDelegate.h:61
bool ValueToString(T value, AAX_CString *valueString) const AAX_OVERRIDE
Converts a real parameter value to a string representation.
Definition: AAX_CBinaryDisplayDelegate.h:149
virtual void AddShortenedStrings(const char *falseString, const char *trueString, int iStrLength)
Definition: AAX_CBinaryDisplayDelegate.h:129
AAX_IDisplayDelegate< T > * Clone() const AAX_OVERRIDE
Constructs and returns a copy of the display delegate.
Definition: AAX_CBinaryDisplayDelegate.h:143
bool StringToValue(const AAX_CString &valueString, T *value) const AAX_OVERRIDE
Converts a string to a real parameter value.
Definition: AAX_CBinaryDisplayDelegate.h:202
A generic AAX string class with similar functionality to std::string
Definition: AAX_CString.h:57
uint32_t Length() const AAX_OVERRIDE
Definition: AAX_IDisplayDelegate.h:79