annotate dwtestoo.cpp @ 2914:8af64b6d75a9

C++: Start rewriting dwtest in C++ as dwtestoo. Only the lambda version currently, so will break on old compilers. Only the main window and first page is implemented so far but... the first page works on MacOS at least. Fill in some missing pieces I ran into while porting dwtest to C++.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Wed, 28 Dec 2022 01:00:12 +0000
parents 5a6bf6bd3001
children 0cde119fc945
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2869
c873b6f862b9 C++: Add text widget and packing to the window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2868
diff changeset
1 /*
c873b6f862b9 C++: Add text widget and packing to the window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2868
diff changeset
2 * Simple C++ Dynamic Windows Example
c873b6f862b9 C++: Add text widget and packing to the window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2868
diff changeset
3 */
2871
4b7c4cd7a11d OS2: Fix building the C++ bindings on OS/2 with GCC.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2869
diff changeset
4 #include "dw.hpp"
2861
ef7a414f9b71 Add initial C++ binding header and example program.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
6 /* Select a fixed width font for our platform */
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
7 #ifdef __OS2__
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
8 #define FIXEDFONT "5.System VIO"
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
9 #define PLATFORMFOLDER "os2\\"
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
10 #elif defined(__WIN32__)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
11 #define FIXEDFONT "10.Lucida Console"
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
12 #define PLATFORMFOLDER "win\\"
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
13 #elif defined(__MAC__)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
14 #define FIXEDFONT "9.Monaco"
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
15 #define PLATFORMFOLDER "mac/"
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
16 #elif defined(__IOS__)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
17 #define FIXEDFONT "9.Monaco"
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
18 #elif defined(__ANDROID__)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
19 #define FIXEDFONT "10.Monospace"
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
20 #elif GTK_MAJOR_VERSION > 1
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
21 #define FIXEDFONT "10.monospace"
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
22 #define PLATFORMFOLDER "gtk/"
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
23 #else
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
24 #define FIXEDFONT "fixed"
2882
99311a9091af C++: Add lambda support via Connect functions on C++11, on older compilers
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2873
diff changeset
25 #endif
99311a9091af C++: Add lambda support via Connect functions on C++11, on older compilers
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2873
diff changeset
26
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
27 #define SHAPES_DOUBLE_BUFFERED 0
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
28 #define SHAPES_DIRECT 1
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
29 #define DRAW_FILE 2
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
30
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
31 class DWTest : public DW::Window
2861
ef7a414f9b71 Add initial C++ binding header and example program.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
32 {
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
33 private:
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
34 const char *ResolveKeyName(int vk) {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
35 const char *keyname;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
36 switch(vk) {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
37 case VK_LBUTTON : keyname = "VK_LBUTTON"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
38 case VK_RBUTTON : keyname = "VK_RBUTTON"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
39 case VK_CANCEL : keyname = "VK_CANCEL"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
40 case VK_MBUTTON : keyname = "VK_MBUTTON"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
41 case VK_TAB : keyname = "VK_TAB"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
42 case VK_CLEAR : keyname = "VK_CLEAR"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
43 case VK_RETURN : keyname = "VK_RETURN"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
44 case VK_PAUSE : keyname = "VK_PAUSE"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
45 case VK_CAPITAL : keyname = "VK_CAPITAL"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
46 case VK_ESCAPE : keyname = "VK_ESCAPE"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
47 case VK_SPACE : keyname = "VK_SPACE"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
48 case VK_PRIOR : keyname = "VK_PRIOR"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
49 case VK_NEXT : keyname = "VK_NEXT"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
50 case VK_END : keyname = "VK_END"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
51 case VK_HOME : keyname = "VK_HOME"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
52 case VK_LEFT : keyname = "VK_LEFT"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
53 case VK_UP : keyname = "VK_UP"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
54 case VK_RIGHT : keyname = "VK_RIGHT"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
55 case VK_DOWN : keyname = "VK_DOWN"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
56 case VK_SELECT : keyname = "VK_SELECT"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
57 case VK_PRINT : keyname = "VK_PRINT"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
58 case VK_EXECUTE : keyname = "VK_EXECUTE"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
59 case VK_SNAPSHOT: keyname = "VK_SNAPSHOT"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
60 case VK_INSERT : keyname = "VK_INSERT"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
61 case VK_DELETE : keyname = "VK_DELETE"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
62 case VK_HELP : keyname = "VK_HELP"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
63 case VK_LWIN : keyname = "VK_LWIN"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
64 case VK_RWIN : keyname = "VK_RWIN"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
65 case VK_NUMPAD0 : keyname = "VK_NUMPAD0"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
66 case VK_NUMPAD1 : keyname = "VK_NUMPAD1"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
67 case VK_NUMPAD2 : keyname = "VK_NUMPAD2"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
68 case VK_NUMPAD3 : keyname = "VK_NUMPAD3"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
69 case VK_NUMPAD4 : keyname = "VK_NUMPAD4"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
70 case VK_NUMPAD5 : keyname = "VK_NUMPAD5"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
71 case VK_NUMPAD6 : keyname = "VK_NUMPAD6"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
72 case VK_NUMPAD7 : keyname = "VK_NUMPAD7"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
73 case VK_NUMPAD8 : keyname = "VK_NUMPAD8"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
74 case VK_NUMPAD9 : keyname = "VK_NUMPAD9"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
75 case VK_MULTIPLY: keyname = "VK_MULTIPLY"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
76 case VK_ADD : keyname = "VK_ADD"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
77 case VK_SEPARATOR: keyname = "VK_SEPARATOR"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
78 case VK_SUBTRACT: keyname = "VK_SUBTRACT"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
79 case VK_DECIMAL : keyname = "VK_DECIMAL"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
80 case VK_DIVIDE : keyname = "VK_DIVIDE"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
81 case VK_F1 : keyname = "VK_F1"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
82 case VK_F2 : keyname = "VK_F2"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
83 case VK_F3 : keyname = "VK_F3"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
84 case VK_F4 : keyname = "VK_F4"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
85 case VK_F5 : keyname = "VK_F5"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
86 case VK_F6 : keyname = "VK_F6"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
87 case VK_F7 : keyname = "VK_F7"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
88 case VK_F8 : keyname = "VK_F8"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
89 case VK_F9 : keyname = "VK_F9"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
90 case VK_F10 : keyname = "VK_F10"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
91 case VK_F11 : keyname = "VK_F11"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
92 case VK_F12 : keyname = "VK_F12"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
93 case VK_F13 : keyname = "VK_F13"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
94 case VK_F14 : keyname = "VK_F14"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
95 case VK_F15 : keyname = "VK_F15"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
96 case VK_F16 : keyname = "VK_F16"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
97 case VK_F17 : keyname = "VK_F17"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
98 case VK_F18 : keyname = "VK_F18"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
99 case VK_F19 : keyname = "VK_F19"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
100 case VK_F20 : keyname = "VK_F20"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
101 case VK_F21 : keyname = "VK_F21"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
102 case VK_F22 : keyname = "VK_F22"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
103 case VK_F23 : keyname = "VK_F23"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
104 case VK_F24 : keyname = "VK_F24"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
105 case VK_NUMLOCK : keyname = "VK_NUMLOCK"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
106 case VK_SCROLL : keyname = "VK_SCROLL"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
107 case VK_LSHIFT : keyname = "VK_LSHIFT"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
108 case VK_RSHIFT : keyname = "VK_RSHIFT"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
109 case VK_LCONTROL: keyname = "VK_LCONTROL"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
110 case VK_RCONTROL: keyname = "VK_RCONTROL"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
111 default: keyname = "<unknown>"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
112 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
113 return keyname;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
114 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
115
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
116 const char *ResolveKeyModifiers(int mask) {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
117 if((mask & KC_CTRL) && (mask & KC_SHIFT) && (mask & KC_ALT))
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
118 return "KC_CTRL KC_SHIFT KC_ALT";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
119 else if((mask & KC_CTRL) && (mask & KC_SHIFT))
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
120 return "KC_CTRL KC_SHIFT";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
121 else if((mask & KC_CTRL) && (mask & KC_ALT))
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
122 return "KC_CTRL KC_ALT";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
123 else if((mask & KC_SHIFT) && (mask & KC_ALT))
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
124 return "KC_SHIFT KC_ALT";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
125 else if((mask & KC_SHIFT))
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
126 return "KC_SHIFT";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
127 else if((mask & KC_CTRL))
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
128 return "KC_CTRL";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
129 else if((mask & KC_ALT))
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
130 return "KC_ALT";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
131 else return "none";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
132 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
133
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
134 // Add the menus to the window
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
135 void CreateMenus() {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
136 // Setup the menu
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
137 DW::MenuBar *menubar = this->MenuBarNew();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
138
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
139 // add menus to the menubar
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
140 DW::Menu *menu = new DW::Menu();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
141 DW::MenuItem *menuitem = menu->AppendItem("~Quit");
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
142 menuitem->ConnectClicked([this] () -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
143 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
144 if(this->app->MessageBox("dwtestoo", DW_MB_YESNO | DW_MB_QUESTION, "Are you sure you want to exit?") != 0) {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
145 this->app->MainQuit();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
146 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
147 return TRUE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
148 });
2889
4b075e64536c C++: Add some simple menu code to see if things are working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2883
diff changeset
149
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
150 // Add the "File" menu to the menubar...
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
151 menubar->AppendItem("~File", menu);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
152
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
153 menu = new DW::Menu();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
154 DW::MenuItem *checkable_menuitem = menu->AppendItem("~Checkable Menu Item", 0, TRUE);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
155 checkable_menuitem->ConnectClicked([this]() -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
156 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
157 this->app->MessageBox("Menu Item Callback", DW_MB_OK | DW_MB_INFORMATION, "\"Checkable Menu Item\" selected");
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
158 return FALSE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
159 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
160 DW::MenuItem *noncheckable_menuitem = menu->AppendItem("~Non-Checkable Menu Item");
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
161 noncheckable_menuitem->ConnectClicked([this]() -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
162 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
163 this->app->MessageBox("Menu Item Callback", DW_MB_OK | DW_MB_INFORMATION, "\"Non-Checkable Menu Item\" selected");
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
164 return FALSE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
165 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
166 menuitem = menu->AppendItem("~Disabled menu Item", DW_MIS_DISABLED|DW_MIS_CHECKED, TRUE);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
167 // separator
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
168 menuitem = menu->AppendItem(DW_MENU_SEPARATOR);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
169 menuitem = menu->AppendItem("~Menu Items Disabled", 0, TRUE);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
170 menuitem->ConnectClicked([this, checkable_menuitem, noncheckable_menuitem]() -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
171 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
172 // Toggle the variable
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
173 this->menu_enabled = !this->menu_enabled;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
174 // Set the ENABLED/DISABLED state on the menu items
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
175 checkable_menuitem->SetStyle(menu_enabled ? DW_MIS_ENABLED : DW_MIS_DISABLED);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
176 noncheckable_menuitem->SetStyle(menu_enabled ? DW_MIS_ENABLED : DW_MIS_DISABLED);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
177 return FALSE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
178 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
179 // Add the "Menu" menu to the menubar...
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
180 menubar->AppendItem("~Menu", menu);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
181
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
182 menu = new DW::Menu();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
183 menuitem = menu->AppendItem("~About");
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
184 menuitem->ConnectClicked([this]() -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
185 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
186 DWEnv env;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
187
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
188 this->app->GetEnvironment(&env);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
189 this->app->MessageBox("About dwindows", DW_MB_OK | DW_MB_INFORMATION, "dwindows test\n\nOS: %s %s %s Version: %d.%d.%d.%d\n\nHTML: %s\n\ndwindows Version: %d.%d.%d\n\nScreen: %dx%d %dbpp",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
190 env.osName, env.buildDate, env.buildTime,
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
191 env.MajorVersion, env.MinorVersion, env.MajorBuild, env.MinorBuild,
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
192 env.htmlEngine,
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
193 env.DWMajorVersion, env.DWMinorVersion, env.DWSubVersion,
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
194 this->app->GetScreenWidth(), this->app->GetScreenHeight(), this->app->GetColorDepth());
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
195 return FALSE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
196 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
197 // Add the "Help" menu to the menubar...
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
198 menubar->AppendItem("~Help", menu);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
199 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
200
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
201 // Notebook page 1
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
202 void CreateInput(DW::Box *notebookbox)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
203 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
204 DW::Box *lbbox = new DW::Box(DW_VERT, 10);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
205
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
206 notebookbox->PackStart(lbbox, 150, 70, TRUE, TRUE, 0);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
207
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
208 /* Copy and Paste */
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
209 DW::Box *browsebox = new DW::Box(DW_HORZ, 0);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
210 lbbox->PackStart(browsebox, 0, 0, FALSE, FALSE, 0);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
211
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
212 DW::Entryfield *copypastefield = new DW::Entryfield();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
213 copypastefield->SetLimit(260);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
214 browsebox->PackStart(copypastefield, TRUE, FALSE, 4);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
215
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
216 DW::Button *copybutton = new DW::Button("Copy");
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
217 browsebox->PackStart(copybutton, FALSE, FALSE, 0);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
218
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
219 DW::Button *pastebutton = new DW::Button("Paste");
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
220 browsebox->PackStart(pastebutton, FALSE, FALSE, 0);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
221
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
222 /* Archive Name */
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
223 DW::Text *stext = new DW::Text("File to browse");
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
224 stext->SetStyle(DW_DT_VCENTER);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
225 lbbox->PackStart(stext, 130, 15, TRUE, TRUE, 2);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
226
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
227 browsebox = new DW::Box(DW_HORZ, 0);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
228 lbbox->PackStart(browsebox, 0, 0, TRUE, TRUE, 0);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
229
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
230 DW::Entryfield *entryfield = new DW::Entryfield();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
231 entryfield->SetLimit(260);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
232 browsebox->PackStart(entryfield, 100, 15, TRUE, TRUE, 4);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
233
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
234 DW::Button *browsefilebutton = new DW::Button("Browse File");
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
235 browsebox->PackStart(browsefilebutton, 40, 15, TRUE, TRUE, 0);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
236
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
237 DW::Button *browsefolderbutton = new DW::Button("Browse Folder");
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
238 browsebox->PackStart(browsefolderbutton, 40, 15, TRUE, TRUE, 0);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
239
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
240 browsebox->SetColor(DW_CLR_PALEGRAY, DW_CLR_PALEGRAY);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
241 stext->SetColor(DW_CLR_BLACK, DW_CLR_PALEGRAY);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
242
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
243 // Buttons
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
244 DW::Box *buttonbox = new DW::Box(DW_HORZ, 10);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
245 lbbox->PackStart(buttonbox, 0, 0, TRUE, TRUE, 0);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
246
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
247 DW::Button *cancelbutton = new DW::Button("Exit");
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
248 buttonbox->PackStart(cancelbutton, 130, 30, TRUE, TRUE, 2);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
249
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
250 DW::Button *cursortogglebutton = new DW::Button("Set Cursor pointer - CLOCK");
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
251 buttonbox->PackStart(cursortogglebutton, 130, 30, TRUE, TRUE, 2);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
252
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
253 DW::Button *okbutton = new DW::Button("Turn Off Annoying Beep!");
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
254 buttonbox->PackStart(okbutton, 130, 30, TRUE, TRUE, 2);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
255
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
256 cancelbutton->Unpack();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
257 buttonbox->PackStart(cancelbutton, 130, 30, TRUE, TRUE, 2);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
258 //this->ClickDefault(cancelbutton);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
259
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
260 DW::Button *colorchoosebutton = new DW::Button("Color Chooser Dialog");
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
261 buttonbox->PackStart(colorchoosebutton, 130, 30, TRUE, TRUE, 2);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
262
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
263 /* Set some nice fonts and colors */
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
264 lbbox->SetColor(DW_CLR_DARKCYAN, DW_CLR_PALEGRAY);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
265 buttonbox->SetColor(DW_CLR_DARKCYAN, DW_CLR_PALEGRAY);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
266 okbutton->SetColor(DW_CLR_PALEGRAY, DW_CLR_DARKCYAN);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
267 #ifdef COLOR_DEBUG
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
268 copypastefield->SetColor(DW_CLR_WHITE, DW_CLR_RED);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
269 copybutton->SetColor(DW_CLR_WHITE, DW_CLR_RED);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
270 // Set a color then clear it to make sure it clears correctly
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
271 entryfield->SetColor(DW_CLR_WHITE, DW_CLR_RED);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
272 entryfield->SetColor(DW_CLR_DEFAULT, DW_CLR_DEFAULT);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
273 // Set a color then clear it to make sure it clears correctly... again
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
274 pastebutton->SetColor(DW_CLR_WHITE, DW_CLR_RED);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
275 pastebutton->SetColor(DW_CLR_DEFAULT, DW_CLR_DEFAULT);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
276 #endif
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
277
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
278 // Connect signals
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
279 browsefilebutton->ConnectClicked([this, entryfield, copypastefield]() -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
280 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
281 char *tmp = this->app->FileBrowse("Pick a file", "dwtest.c", "c", DW_FILE_OPEN);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
282 if(tmp)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
283 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
284 #if 0
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
285 char *errors = read_file(tmp);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
286 char *title = "New file load";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
287 char *image = "image/test.png";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
288 DW::Notification *notification;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
289
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
290 if(errors)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
291 notification = new DW::Notification(title, image, "dwtest failed to load \"%s\" into the file browser, %s.", tmp, errors);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
292 else
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
293 notification = new DW::Notification(title, image, "dwtest loaded \"%s\" into the file browser on the Render tab, with \"File Display\" selected from the drop down list.", tmp);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
294 #endif
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
295
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
296 if(current_file)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
297 this->app->Free(current_file);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
298 current_file = tmp;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
299 entryfield->SetText(current_file);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
300 current_col = current_row = 0;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
301
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
302 #if 0
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
303 render_draw();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
304 notification->ConnectClicked([this]() -> int {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
305 return TRUE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
306 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
307 notification->Send();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
308 #endif
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
309 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
310 copypastefield->SetFocus();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
311 return FALSE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
312 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
313
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
314 browsefolderbutton->ConnectClicked([this]() -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
315 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
316 char *tmp = this->app->FileBrowse("Pick a folder", ".", "c", DW_DIRECTORY_OPEN);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
317 this->app->Debug("Folder picked: %s\n", tmp ? tmp : "None");
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
318 return FALSE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
319 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
320
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
321 copybutton->ConnectClicked([this, copypastefield, entryfield]() -> int {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
322 char *test = copypastefield->GetText();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
323
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
324 if(test) {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
325 this->app->SetClipboard(test);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
326 this->app->Free(test);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
327 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
328 entryfield->SetFocus();
2882
99311a9091af C++: Add lambda support via Connect functions on C++11, on older compilers
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2873
diff changeset
329 return TRUE;
99311a9091af C++: Add lambda support via Connect functions on C++11, on older compilers
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2873
diff changeset
330 });
2889
4b075e64536c C++: Add some simple menu code to see if things are working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2883
diff changeset
331
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
332 pastebutton->ConnectClicked([this, copypastefield]() -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
333 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
334 char *test = this->app->GetClipboard();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
335 if(test) {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
336 copypastefield->SetText(test);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
337 this->app->Free(test);
2889
4b075e64536c C++: Add some simple menu code to see if things are working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2883
diff changeset
338 }
4b075e64536c C++: Add some simple menu code to see if things are working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2883
diff changeset
339 return TRUE;
4b075e64536c C++: Add some simple menu code to see if things are working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2883
diff changeset
340 });
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
341
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
342 okbutton->ConnectClicked([this]() -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
343 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
344 if(this->timer) {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
345 delete this->timer;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
346 this->timer = DW_NULL;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
347 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
348 return TRUE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
349 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
350
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
351 cancelbutton->ConnectClicked([this] () -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
352 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
353 if(this->app->MessageBox("dwtest", DW_MB_YESNO | DW_MB_QUESTION, "Are you sure you want to exit?") != 0) {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
354 this->app->MainQuit();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
355 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
356 return TRUE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
357 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
358
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
359 cursortogglebutton->ConnectClicked([this, cursortogglebutton] () -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
360 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
361 this->cursor_arrow = !this->cursor_arrow;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
362 cursortogglebutton->SetText(this->cursor_arrow ? "Set Cursor pointer - ARROW" :
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
363 "Set Cursor pointer - CLOCK");
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
364 this->SetPointer(this->cursor_arrow ? DW_POINTER_CLOCK : DW_POINTER_DEFAULT);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
365 return FALSE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
366 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
367
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
368 colorchoosebutton->ConnectClicked([this]() -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
369 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
370 this->current_color = this->app->ColorChoose(this->current_color);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
371 return FALSE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
372 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
373 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
374 public:
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
375 // Constructor creates the application
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
376 DWTest(const char *title) {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
377 char fileiconpath[1025] = "file";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
378 char foldericonpath[1025] = "folder";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
379
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
380 // Get our application singleton
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
381 app = DW::App::Init();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
382
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
383 // Add menus to the window
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
384 CreateMenus();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
385
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
386 // Create our notebook and add it to the window
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
387 DW::Box *notebookbox = new DW::Box(DW_VERT, 5);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
388 this->PackStart(notebookbox, 0, 0, TRUE, TRUE, 0);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
389
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
390 /* First try the current directory */
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
391 foldericon = app->LoadIcon(foldericonpath);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
392 fileicon = app->LoadIcon(fileiconpath);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
393
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
394 #ifdef PLATFORMFOLDER
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
395 /* In case we are running from the build directory...
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
396 * also check the appropriate platform subfolder
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
397 */
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
398 if(!foldericon)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
399 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
400 strncpy(foldericonpath, PLATFORMFOLDER "folder", 1024);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
401 foldericon = app->LoadIcon(foldericonpath);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
402 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
403 if(!fileicon)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
404 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
405 strncpy(fileiconpath, PLATFORMFOLDER "file", 1024);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
406 fileicon = app->LoadIcon(fileiconpath);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
407 }
2889
4b075e64536c C++: Add some simple menu code to see if things are working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2883
diff changeset
408 #endif
4b075e64536c C++: Add some simple menu code to see if things are working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2883
diff changeset
409
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
410 /* Finally try from the platform application directory */
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
411 if(!foldericon && !fileicon)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
412 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
413 char *appdir = app->GetDir();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
414 char pathbuff[1025] = {0};
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
415 int pos = (int)strlen(appdir);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
416
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
417 strncpy(pathbuff, appdir, 1024);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
418 pathbuff[pos] = DW_DIR_SEPARATOR;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
419 pos++;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
420 strncpy(&pathbuff[pos], "folder", 1024-pos);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
421 foldericon = app->LoadIcon(pathbuff);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
422 if(foldericon)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
423 strncpy(foldericonpath, pathbuff, 1025);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
424 strncpy(&pathbuff[pos], "file", 1024-pos);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
425 fileicon = app->LoadIcon(pathbuff);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
426 if(fileicon)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
427 strncpy(fileiconpath, pathbuff, 1025);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
428 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
429
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
430 DW::Notebook *notebook = new DW::Notebook();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
431 notebookbox->PackStart(notebook, TRUE, TRUE, 0);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
432 notebook->ConnectSwitchPage([this](unsigned long page_num) -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
433 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
434 this->app->Debug("DW_SIGNAL_SWITCH_PAGE: PageNum: %u\n", page_num);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
435 return TRUE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
436 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
437
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
438 // Create Notebook page 1
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
439 notebookbox = new DW::Box(DW_VERT, 5);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
440 CreateInput(notebookbox);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
441 unsigned long notebookpage = notebook->PageNew(0, TRUE);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
442 notebook->Pack(notebookpage, notebookbox);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
443 notebook->PageSetText(notebookpage, "buttons and entry");
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
444
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
445 // Finalize the window
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
446 this->SetSize(640, 550);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
447
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
448 timer = new DW::Timer(2000, [this]() -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
449 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
450 this->app->Beep(200, 200);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
451
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
452 // Return TRUE so we get called again
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
453 return TRUE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
454 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
455 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
456
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
457 DW::App *app;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
458
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
459 // Page 1
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
460 DW::Timer *timer;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
461 int cursor_arrow = TRUE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
462 unsigned long current_color;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
463
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
464 // Page 2
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
465 HPIXMAP text1pm,text2pm,image;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
466 int image_x = 20, image_y = 20, image_stretch = 0;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
467
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
468 int font_width = 8, font_height=12;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
469 int rows=10,width1=6,cols=80;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
470 int num_lines=0, max_linewidth=0;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
471 int current_row=0,current_col=0;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
472 int render_type = SHAPES_DOUBLE_BUFFERED;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
473
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
474 FILE *fp=NULL;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
475 char **lp;
2889
4b075e64536c C++: Add some simple menu code to see if things are working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2883
diff changeset
476
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
477 // Page 4
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
478 int mle_point=-1;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
479
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
480 // Miscellaneous
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
481 int menu_enabled = 1;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
482 char *current_file = NULL;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
483 HICN fileicon,foldericon;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
484
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
485 int OnDelete() override {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
486 if(app->MessageBox("dwtest", DW_MB_YESNO | DW_MB_QUESTION, "Are you sure you want to exit?") != 0) {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
487 app->MainQuit();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
488 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
489 return TRUE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
490 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
491 };
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
492
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
493 /* Pretty list of features corresponding to the DWFEATURE enum in dw.h */
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
494 const char *DWFeatureList[] = {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
495 "Supports the HTML Widget",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
496 "Supports the DW_SIGNAL_HTML_RESULT callback",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
497 "Supports custom window border sizes",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
498 "Supports window frame transparency",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
499 "Supports Dark Mode user interface",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
500 "Supports auto completion in Multi-line Edit boxes",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
501 "Supports word wrapping in Multi-line Edit boxes",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
502 "Supports striped line display in container widgets",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
503 "Supports Multiple Document Interface window frame",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
504 "Supports status text area on notebook/tabbed controls",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
505 "Supports sending system notifications",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
506 "Supports UTF8 encoded Unicode text",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
507 "Supports Rich Edit based MLE control (Windows)",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
508 "Supports icons in the taskbar or similar system widget",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
509 "Supports the Tree Widget",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
510 "Supports arbitrary window placement",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
511 "Supports alternate container view modes",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
512 NULL };
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
513
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
514 /*
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
515 * Let's demonstrate the functionality of this library. :)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
516 */
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
517 int dwmain(int argc, char* argv[])
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
518 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
519 /* Initialize the Dynamic Windows engine */
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
520 DW::App *app = DW::App::Init(argc, argv, "org.dbsoft.dwindows.dwtestoo", "Dynamic Windows Test C++");
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
521
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
522 /* Enable full dark mode on platforms that support it */
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
523 if(getenv("DW_DARK_MODE"))
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
524 app->SetFeature(DW_FEATURE_DARK_MODE, DW_DARK_MODE_FULL);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
525
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
526 #ifdef DW_MOBILE
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
527 /* Enable multi-line container display on Mobile platforms */
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
528 app->SetFeature(DW_FEATURE_CONTAINER_MODE, DW_CONTAINER_MODE_MULTI);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
529 #endif
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
530
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
531 /* Test all the features and display the results */
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
532 for(int intfeat=DW_FEATURE_HTML; intfeat<DW_FEATURE_MAX; intfeat++)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
533 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
534 DWFEATURE feat = static_cast<DWFEATURE>(intfeat);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
535 int result = dw_feature_get(feat);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
536 const char *status = "Unsupported";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
537
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
538 if(result == 0)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
539 status = "Disabled";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
540 else if(result > 0)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
541 status = "Enabled";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
542
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
543 app->Debug("%s: %s (%d)\n", DWFeatureList[feat], status, result);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
544 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
545
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
546 DWTest *window = new DWTest("dwindows test UTF8 中国語 (繁体) cañón");
2869
c873b6f862b9 C++: Add text widget and packing to the window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2868
diff changeset
547 window->Show();
2861
ef7a414f9b71 Add initial C++ binding header and example program.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
548
2869
c873b6f862b9 C++: Add text widget and packing to the window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2868
diff changeset
549 app->Main();
c873b6f862b9 C++: Add text widget and packing to the window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2868
diff changeset
550 app->Exit(0);
2861
ef7a414f9b71 Add initial C++ binding header and example program.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
551
2869
c873b6f862b9 C++: Add text widget and packing to the window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2868
diff changeset
552 return 0;
2861
ef7a414f9b71 Add initial C++ binding header and example program.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
553 }