aboutsummaryrefslogtreecommitdiff
path: root/Src/pfc/string_unicode.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/pfc/string_unicode.h')
-rw-r--r--Src/pfc/string_unicode.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/Src/pfc/string_unicode.h b/Src/pfc/string_unicode.h
new file mode 100644
index 00000000..7c690e0f
--- /dev/null
+++ b/Src/pfc/string_unicode.h
@@ -0,0 +1,60 @@
+#ifndef _PFC_STRING_UNICODE_H_
+#define _PFC_STRING_UNICODE_H_
+
+#include "string.h"
+
+class string_w : public string_base<WCHAR>
+{
+public:
+ string_w() {}
+ string_w(HWND w) {s_GetWindowText(w);}
+ string_w(const WCHAR * z) {set_string(z);}
+ void add_string_a(const char * c);
+ void set_string_a(const char * c);
+ string_w(const char * z) {set_string_a(z);}
+ string_w(const string_w & z) {set_string(z);}
+ string_w(const string_a & z) {set_string_a(z);}
+ void add_string_utf8(const char * z);
+ void set_string_utf8(const char * z);
+ void s_GetWindowText(HWND w);
+ inline void from_window(HWND w) {s_GetWindowText(w);}
+ void s_SetWindowText(HWND w);
+ const WCHAR * operator=(const WCHAR * s) {set_string(s);return get_ptr();}
+ const WCHAR * operator+=(const WCHAR * s) {add_string(s);return get_ptr();}
+ const WCHAR * operator=(const char * s) {set_string_a(s);return get_ptr();}
+ const WCHAR * operator+=(const char * s) {add_string_a(s);return get_ptr();}
+ const WCHAR * operator=(string_w & s) {set_string(s);return get_ptr();}
+ const WCHAR * operator+=(string_w & s) {add_string(s);return get_ptr();}
+ inline void s_GetDlgItemText(HWND w,int id) {s_GetWindowText(GetDlgItem(w,id));}
+ inline void s_SetDlgItemText(HWND w,int id) {s_SetWindowText(GetDlgItem(w,id));}
+ bool reg_read(HKEY hk,const WCHAR * name);
+ void reg_write(HKEY hk,const WCHAR * name);
+
+ static bool test_os();
+};
+
+class string_reg : public string_w
+{
+public:
+ string_reg(HKEY hk,const WCHAR * name) {reg_read(hk,name);}
+ string_reg(HKEY hk,const char * name) {reg_read(hk,string_w(name));}
+};
+
+
+class string_printf_w : public string_w
+{
+public:
+ string_printf_w(const WCHAR * fmt,...);
+};
+
+
+class string_utf8 : public string_a
+{
+private:
+ void convert(const WCHAR * foo);
+public:
+ string_utf8(const WCHAR * foo) {convert(foo);}
+ string_utf8(const char * foo) {convert(string_w(foo));}
+};
+
+#endif //_PFC_STRING_UNICODE_H_ \ No newline at end of file