|
|
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.