VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Main/StringFormatter.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Main/StringFormatter.h')
-rw-r--r--src/Main/StringFormatter.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/Main/StringFormatter.h b/src/Main/StringFormatter.h
new file mode 100644
index 00000000..aa09131f
--- /dev/null
+++ b/src/Main/StringFormatter.h
@@ -0,0 +1,64 @@
+/*
+ Copyright (c) 2008 TrueCrypt Developers Association. All rights reserved.
+
+ Governed by the TrueCrypt License 3.0 the full text of which is contained in
+ the file License.txt included in TrueCrypt binary and source code distribution
+ packages.
+*/
+
+#ifndef TC_HEADER_Main_StringFormatter
+#define TC_HEADER_Main_StringFormatter
+
+#include "System.h"
+#include "Main.h"
+
+namespace TrueCrypt
+{
+ class StringFormatterArg
+ {
+ public:
+ StringFormatterArg () : Empty (true) { }
+
+ StringFormatterArg (const char c) : Empty (false) { string s; s += c; StringArg = StringConverter::ToWide (s); }
+ StringFormatterArg (const wchar_t c) : Empty (false), Referenced (false), StringArg (c) { }
+ StringFormatterArg (const char *str) : Empty (false), Referenced (false), StringArg (StringConverter::ToWide (str)) { }
+ StringFormatterArg (const wchar_t *str) : Empty (false), Referenced (false), StringArg (str) { }
+ StringFormatterArg (const string &str) : Empty (false), Referenced (false), StringArg (StringConverter::ToWide (str)) { }
+ StringFormatterArg (const wstring &str) : Empty (false), Referenced (false), StringArg (str) { }
+ StringFormatterArg (const wxString &str) : Empty (false), Referenced (false), StringArg (str) { }
+ StringFormatterArg (int32 number) : Empty (false), Referenced (false), StringArg (StringConverter::FromNumber (number)) { }
+ StringFormatterArg (uint32 number) : Empty (false), Referenced (false), StringArg (StringConverter::FromNumber (number)) { }
+ StringFormatterArg (int64 number) : Empty (false), Referenced (false), StringArg (StringConverter::FromNumber (number)) { }
+ StringFormatterArg (uint64 number) : Empty (false), Referenced (false), StringArg (StringConverter::FromNumber (number)) { }
+
+ operator wxString () { Referenced = true; return StringArg; }
+
+ bool IsEmpty () const { return Empty; }
+ bool WasReferenced() const { return Referenced; }
+
+ protected:
+ bool Empty;
+ bool Referenced;
+ wxString StringArg;
+ };
+
+ class StringFormatter
+ {
+ public:
+ 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());
+ virtual ~StringFormatter ();
+
+ operator wstring () const { return wstring (FormattedString); }
+ operator wxString () const { return FormattedString; }
+ operator StringFormatterArg () const { return FormattedString; }
+
+ protected:
+ wxString FormattedString;
+
+ private:
+ StringFormatter (const StringFormatter &);
+ StringFormatter &operator= (const StringFormatter &);
+ };
+}
+
+#endif // TC_HEADER_Main_StringFormatter