|
|
1.1 ! root 1: /* ! 2: Copyright (c) 2008 TrueCrypt Foundation. All rights reserved. ! 3: ! 4: Governed by the TrueCrypt License 2.4 the full text of which is contained ! 5: in the file License.txt included in TrueCrypt binary and source code ! 6: distribution packages. ! 7: */ ! 8: ! 9: #ifndef TC_HEADER_Main_StringFormatter ! 10: #define TC_HEADER_Main_StringFormatter ! 11: ! 12: #include "System.h" ! 13: #include "Main.h" ! 14: ! 15: namespace TrueCrypt ! 16: { ! 17: class StringFormatterArg ! 18: { ! 19: public: ! 20: StringFormatterArg () : Empty (true) { } ! 21: ! 22: StringFormatterArg (const char c) : Empty (false) { string s; s += c; StringArg = StringConverter::ToWide (s); } ! 23: StringFormatterArg (const wchar_t c) : Empty (false), Referenced (false), StringArg (c) { } ! 24: StringFormatterArg (const char *str) : Empty (false), Referenced (false), StringArg (StringConverter::ToWide (str)) { } ! 25: StringFormatterArg (const wchar_t *str) : Empty (false), Referenced (false), StringArg (str) { } ! 26: StringFormatterArg (const string &str) : Empty (false), Referenced (false), StringArg (StringConverter::ToWide (str)) { } ! 27: StringFormatterArg (const wstring &str) : Empty (false), Referenced (false), StringArg (str) { } ! 28: StringFormatterArg (const wxString &str) : Empty (false), Referenced (false), StringArg (str) { } ! 29: StringFormatterArg (int number) : Empty (false), Referenced (false), StringArg (StringConverter::FromNumber (number)) { } ! 30: StringFormatterArg (int64 number) : Empty (false), Referenced (false), StringArg (StringConverter::FromNumber (number)) { } ! 31: StringFormatterArg (long number) : Empty (false), Referenced (false), StringArg (StringConverter::FromNumber (number)) { } ! 32: StringFormatterArg (unsigned int number) : Empty (false), Referenced (false), StringArg (StringConverter::FromNumber (number)) { } ! 33: StringFormatterArg (unsigned long number) : Empty (false), Referenced (false), StringArg (StringConverter::FromNumber (number)) { } ! 34: StringFormatterArg (uint64 number) : Empty (false), Referenced (false), StringArg (StringConverter::FromNumber (number)) { } ! 35: ! 36: operator wxString () { Referenced = true; return StringArg; } ! 37: ! 38: bool IsEmpty () const { return Empty; } ! 39: bool WasReferenced() const { return Referenced; } ! 40: ! 41: protected: ! 42: bool Empty; ! 43: bool Referenced; ! 44: wxString StringArg; ! 45: }; ! 46: ! 47: class StringFormatter ! 48: { ! 49: public: ! 50: StringFormatter (const wxString &format, StringFormatterArg arg0 = StringFormatterArg(), StringFormatterArg arg1 = StringFormatterArg(), StringFormatterArg arg2 = StringFormatterArg(), StringFormatterArg arg3 = StringFormatterArg(), StringFormatterArg arg4 = StringFormatterArg(), StringFormatterArg arg5 = StringFormatterArg(), StringFormatterArg arg6 = StringFormatterArg(), StringFormatterArg arg7 = StringFormatterArg(), StringFormatterArg arg8 = StringFormatterArg(), StringFormatterArg arg9 = StringFormatterArg()); ! 51: virtual ~StringFormatter (); ! 52: ! 53: operator wstring () const { return wstring (FormattedString); } ! 54: operator wxString () const { return FormattedString; } ! 55: operator StringFormatterArg () const { return FormattedString; } ! 56: ! 57: protected: ! 58: wxString FormattedString; ! 59: ! 60: private: ! 61: StringFormatter (const StringFormatter &); ! 62: StringFormatter &operator= (const StringFormatter &); ! 63: }; ! 64: } ! 65: ! 66: #endif // TC_HEADER_Main_StringFormatter
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.