22#ifndef AAX_CBINARYDISPLAYDELEGATE_H
23#define AAX_CBINARYDISPLAYDELEGATE_H
68 virtual void AddShortenedStrings(
const char* falseString,
const char* trueString,
int iStrLength);
75 uint32_t mMaxStrLength;
83 static bool StringTableSortFunc(
struct StringTable i,
struct StringTable j)
85 return (i.mStrLength < j.mStrLength);
88 std::vector<struct StringTable> mShortenedStrings;
94 mFalseString(falseString),
95 mTrueString(trueString),
98 mMaxStrLength = (std::max)(mMaxStrLength, mFalseString.
Length());
99 mMaxStrLength = (std::max)(mMaxStrLength, mTrueString.
Length());
104 mFalseString(other.mFalseString),
105 mTrueString(other.mTrueString),
106 mMaxStrLength(other.mMaxStrLength)
108 if ( other.mShortenedStrings.size() > 0 )
110 for (
size_t i = 0; i < other.mShortenedStrings.size(); i++ )
111 mShortenedStrings.push_back( other.mShortenedStrings.at(i) );
118 struct StringTable shortendTable;
119 shortendTable.mStrLength = iStrLength;
120 shortendTable.mFalseString =
AAX_CString(falseString);
121 shortendTable.mTrueString =
AAX_CString(trueString);
122 mShortenedStrings.push_back(shortendTable);
125 std::sort(mShortenedStrings.begin(), mShortenedStrings.end(), AAX_CBinaryDisplayDelegate::StringTableSortFunc );
139 *valueString = mTrueString;
141 *valueString = mFalseString;
149 if ( mShortenedStrings.size() == 0 )
150 return this->ValueToString(value, valueString);
153 const uint32_t maxNumCharsUnsigned = (0 <= maxNumChars) ?
static_cast<uint32_t
>(maxNumChars) : 0;
154 if ( maxNumCharsUnsigned >= mMaxStrLength )
157 *valueString = mTrueString;
159 *valueString = mFalseString;
165 for (
int i =
static_cast<int>(mShortenedStrings.size())-1; i >= 0; i-- )
167 struct StringTable shortStrings = mShortenedStrings.at(
static_cast<unsigned int>(i));
168 if ( shortStrings.mStrLength <= maxNumChars )
171 *valueString = shortStrings.mTrueString;
173 *valueString = shortStrings.mFalseString;
179 struct StringTable shortestStrings = mShortenedStrings.at(0);
181 *valueString = shortestStrings.mTrueString;
183 *valueString = shortestStrings.mFalseString;
191 if (valueString == mTrueString)
196 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:151
A binary display format conforming to AAX_IDisplayDelegate.
Definition: AAX_CBinaryDisplayDelegate.h:48
bool ValueToString(T value, AAX_CString *valueString) const AAX_OVERRIDE
Converts a real parameter value to a string representation.
Definition: AAX_CBinaryDisplayDelegate.h:136
virtual void AddShortenedStrings(const char *falseString, const char *trueString, int iStrLength)
Definition: AAX_CBinaryDisplayDelegate.h:116
AAX_IDisplayDelegate< T > * Clone() const AAX_OVERRIDE
Constructs and returns a copy of the display delegate.
Definition: AAX_CBinaryDisplayDelegate.h:130
bool StringToValue(const AAX_CString &valueString, T *value) const AAX_OVERRIDE
Converts a string to a real parameter value.
Definition: AAX_CBinaryDisplayDelegate.h:189
A generic AAX string class with similar functionality to std::string
Definition: AAX_CString.h:44
uint32_t Length() const AAX_OVERRIDE
Definition: AAX_IDisplayDelegate.h:66