annotate dwtestoo.cpp @ 2930:d8117d36ed27

C++: Add Page 4 - Container to dwtestoo. Had to rename ListBoxes G/SetText() to G/SetListText(). Since TextEntry has the same names but with different signatures. Thought it should be able to differentiate, but it errored as ambiguous. Also make ListSelect unsigned int since it should never be negative.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Fri, 30 Dec 2022 12:15:19 +0000
parents 2ab97b349958
children 30c1f37713b6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2923
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
1 // An example Dynamic Windows application and testing
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
2 // ground for Dynamic Windows features in C++.
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
3 // By: Brian Smith and Mark Hessling
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
2923
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
6 // Select a fixed width font for our platform
2914
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
2915
0cde119fc945 C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2914
diff changeset
31 #define APP_TITLE "Dynamic Windows C++"
0cde119fc945 C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2914
diff changeset
32 #define APP_EXIT "Are you sure you want to exit?"
0cde119fc945 C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2914
diff changeset
33
2923
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
34 // Handle the case of very old compilers by using
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
35 // A simple non-lambda example instead.
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
36 #ifndef DW_LAMBDA
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
37
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
38 // Simple C++ Dynamic Windows Example
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
39
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
40 class DWTest : public DW::Window
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
41 {
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
42 public:
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
43 DW::App *app;
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
44
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
45 DWTest() {
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
46 app = DW::App::Init();
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
47
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
48 SetText(APP_TITLE);
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
49 SetSize(200, 200);
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
50 }
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
51 int OnDelete() override {
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
52 if(app->MessageBox(APP_TITLE, DW_MB_YESNO | DW_MB_QUESTION, APP_EXIT) != 0) {
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
53 app->MainQuit();
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
54 }
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
55 return FALSE;
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
56 }
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
57 };
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
58
2924
248e32f744f0 C++: Attempt to get dwtestoo working with old pre-lambda compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2923
diff changeset
59 int button_clicked(DW::Clickable *classptr)
2923
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
60 {
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
61 DW::App *app = DW::App::Init();
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
62 app->MessageBox("Button", DW_MB_OK | DW_MB_INFORMATION, "Clicked!");
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
63 return TRUE;
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
64 }
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
65
2924
248e32f744f0 C++: Attempt to get dwtestoo working with old pre-lambda compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2923
diff changeset
66 int exit_handler(DW::Clickable *classptr)
2923
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
67 {
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
68 DW::App *app = DW::App::Init();
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
69 if(app->MessageBox(APP_TITLE, DW_MB_YESNO | DW_MB_QUESTION, APP_EXIT) != 0) {
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
70 app->MainQuit();
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
71 }
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
72 return TRUE;
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
73 }
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
74
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
75 int dwmain(int argc, char* argv[])
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
76 {
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
77 DW::App *app = DW::App::Init(argc, argv, "org.dbsoft.dwindows.dwtestoo");
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
78
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
79 app->MessageBox(APP_TITLE, DW_MB_OK | DW_MB_INFORMATION,
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
80 "Warning: You are viewing the simplified version of this sample program.\n\n" \
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
81 "This is because your compiler does not have lambda support.\n\n" \
2928
102b96d77f89 C++: Visual Studio 2013 lambda support also did not work, bump to 2015.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2927
diff changeset
82 "Please upgrade to Clang, GCC 4.5 or Visual Studio 2015 to see the full sample.");
2923
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
83
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
84 DWTest *window = new DWTest();
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
85 DW::Button *button = new DW::Button("Test window");
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
86
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
87 window->PackStart(button, DW_SIZE_AUTO, DW_SIZE_AUTO, TRUE, TRUE, 0);
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
88 button->ConnectClicked(&button_clicked);
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
89
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
90 DW::MenuBar *mainmenubar = window->MenuBarNew();
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
91
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
92 // add menus to the menubar
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
93 DW::Menu *menu = new DW::Menu();
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
94 DW::MenuItem *menuitem = menu->AppendItem("~Quit");
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
95 menuitem->ConnectClicked(&exit_handler);
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
96
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
97 // Add the "File" menu to the menubar...
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
98 mainmenubar->AppendItem("~File", menu);
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
99
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
100 window->Show();
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
101
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
102 app->Main();
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
103 app->Exit(0);
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
104
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
105 return 0;
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
106 }
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
107 #else
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
108 class DWTest : public DW::Window
2861
ef7a414f9b71 Add initial C++ binding header and example program.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
109 {
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
110 private:
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
111 const char *ResolveKeyName(int vk) {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
112 const char *keyname;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
113 switch(vk) {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
114 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
115 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
116 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
117 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
118 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
119 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
120 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
121 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
122 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
123 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
124 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
125 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
126 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
127 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
128 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
129 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
130 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
131 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
132 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
133 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
134 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
135 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
136 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
137 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
138 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
139 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
140 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
141 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
142 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
143 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
144 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
145 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
146 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
147 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
148 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
149 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
150 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
151 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
152 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
153 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
154 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
155 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
156 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
157 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
158 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
159 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
160 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
161 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
162 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
163 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
164 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
165 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
166 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
167 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
168 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
169 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
170 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
171 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
172 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
173 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
174 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
175 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
176 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
177 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
178 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
179 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
180 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
181 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
182 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
183 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
184 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
185 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
186 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
187 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
188 default: keyname = "<unknown>"; break;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
189 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
190 return keyname;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
191 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
192
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
193 const char *ResolveKeyModifiers(int mask) {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
194 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
195 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
196 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
197 return "KC_CTRL KC_SHIFT";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
198 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
199 return "KC_CTRL KC_ALT";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
200 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
201 return "KC_SHIFT KC_ALT";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
202 else if((mask & KC_SHIFT))
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
203 return "KC_SHIFT";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
204 else if((mask & KC_CTRL))
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
205 return "KC_CTRL";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
206 else if((mask & KC_ALT))
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
207 return "KC_ALT";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
208 else return "none";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
209 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
210
2916
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
211 char *ReadFile(char *filename)
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
212 {
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
213 char *errors = NULL;
2919
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
214 FILE *fp=NULL;
2916
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
215 #ifdef __ANDROID__
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
216 int fd = -1;
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
217
2919
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
218 // Special way to open for URIs on Android
2916
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
219 if(strstr(filename, "://"))
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
220 {
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
221 fd = dw_file_open(filename, O_RDONLY);
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
222 fp = fdopen(fd, "r");
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
223 }
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
224 else
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
225 #endif
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
226 fp = fopen(filename, "r");
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
227 if(!fp)
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
228 errors = strerror(errno);
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
229 else
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
230 {
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
231 int i,len;
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
232
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
233 lp = (char **)calloc(1000,sizeof(char *));
2919
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
234 // should test for out of memory
2916
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
235 max_linewidth=0;
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
236 for(i=0; i<1000; i++)
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
237 {
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
238 lp[i] = (char *)calloc(1, 1025);
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
239 if (fgets(lp[i], 1024, fp) == NULL)
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
240 break;
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
241 len = (int)strlen(lp[i]);
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
242 if (len > max_linewidth)
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
243 max_linewidth = len;
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
244 if(lp[i][len - 1] == '\n')
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
245 lp[i][len - 1] = '\0';
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
246 }
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
247 num_lines = i;
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
248 fclose(fp);
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
249
2916
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
250 hscrollbar->SetRange(max_linewidth, cols);
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
251 hscrollbar->SetPos(0);
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
252 vscrollbar->SetRange(num_lines, rows);
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
253 vscrollbar->SetPos(0);
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
254 }
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
255 #ifdef __ANDROID__
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
256 if(fd != -1)
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
257 close(fd);
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
258 #endif
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
259 return errors;
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
260 }
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
261
2919
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
262 // When hpm is not NULL we are printing.. so handle things differently
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
263 void DrawFile(int row, int col, int nrows, int fheight, DW::Pixmap *hpm)
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
264 {
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
265 DW::Pixmap *pixmap = hpm ? hpm : pixmap2;
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
266 char buf[16] = {0};
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
267 int i,y,fileline;
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
268 char *pLine;
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
269
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
270 if(current_file)
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
271 {
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
272 pixmap->SetForegroundColor(DW_CLR_WHITE);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
273 if(!hpm)
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
274 pixmap1->DrawRect(DW_DRAW_FILL | DW_DRAW_NOAA, 0, 0, (int)pixmap1->GetWidth(), (int)pixmap1->GetHeight());
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
275 pixmap->DrawRect(DW_DRAW_FILL | DW_DRAW_NOAA, 0, 0, (int)pixmap->GetWidth(), (int)pixmap->GetHeight());
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
276
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
277 for(i = 0;(i < nrows) && (i+row < num_lines); i++)
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
278 {
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
279 fileline = i + row - 1;
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
280 y = i*fheight;
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
281 pixmap->SetColor(fileline < 0 ? DW_CLR_WHITE : fileline % 16, 1 + (fileline % 15));
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
282 if(!hpm)
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
283 {
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
284 snprintf(buf, 15, "%6.6d", i+row);
2920
c6b699a441fe C++: Fix a couple minor errors while attempting to fix Mac crash.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2919
diff changeset
285 pixmap1->DrawText(0, y, buf);
2919
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
286 }
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
287 pLine = lp[i+row];
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
288 pixmap->DrawText(0, y, pLine+col);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
289 }
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
290 }
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
291 }
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
292
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
293 // When hpm is not NULL we are printing.. so handle things differently
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
294 void DrawShapes(int direct, DW::Pixmap *hpm)
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
295 {
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
296 DW::Pixmap *pixmap = hpm ? hpm : pixmap2;
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
297 int width = (int)pixmap->GetWidth(), height = (int)pixmap->GetHeight();
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
298 int x[7] = { 20, 180, 180, 230, 180, 180, 20 };
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
299 int y[7] = { 50, 50, 20, 70, 120, 90, 90 };
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
300 DW::Drawable *drawable = direct ? static_cast<DW::Drawable *>(render2) : static_cast<DW::Drawable *>(pixmap);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
301
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
302 drawable->SetForegroundColor(DW_CLR_WHITE);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
303 drawable->DrawRect(DW_DRAW_FILL | DW_DRAW_NOAA, 0, 0, width, height);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
304 drawable->SetForegroundColor(DW_CLR_DARKPINK);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
305 drawable->DrawRect(DW_DRAW_FILL | DW_DRAW_NOAA, 10, 10, width - 20, height - 20);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
306 drawable->SetColor(DW_CLR_GREEN, DW_CLR_DARKRED);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
307 drawable->DrawText(10, 10, "This should be aligned with the edges.");
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
308 drawable->SetForegroundColor(DW_CLR_YELLOW);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
309 drawable->DrawLine(width - 10, 10, 10, height - 10);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
310 drawable->SetForegroundColor(DW_CLR_BLUE);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
311 drawable->DrawPolygon(DW_DRAW_FILL, 7, x, y);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
312 drawable->SetForegroundColor(DW_CLR_BLACK);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
313 drawable->DrawRect(DW_DRAW_FILL | DW_DRAW_NOAA, 80, 80, 80, 40);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
314 drawable->SetForegroundColor(DW_CLR_CYAN);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
315 // Bottom right corner
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
316 drawable->DrawArc(0, width - 30, height - 30, width - 10, height - 30, width - 30, height - 10);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
317 // Top right corner
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
318 drawable->DrawArc(0, width - 30, 30, width - 30, 10, width - 10, 30);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
319 // Bottom left corner
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
320 drawable->DrawArc(0, 30, height - 30, 30, height - 10, 10, height - 30);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
321 // Full circle in the left top area
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
322 drawable->DrawArc(DW_DRAW_FULL, 120, 100, 80, 80, 160, 120);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
323 if(image && image->GetHPIXMAP())
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
324 {
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
325 if(imagestretchcheck->Get())
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
326 drawable->BitBltStretch(0, 10, width - 20, height - 20, image, 0, 0, (int)image->GetWidth(), (int)image->GetHeight());
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
327 else
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
328 drawable->BitBlt(imagexspin->GetPos(), imageyspin->GetPos(), (int)image->GetWidth(), (int)image->GetHeight(), image, 0, 0);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
329 }
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
330 }
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
331
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
332 void UpdateRender(void)
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
333 {
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
334 switch(render_type)
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
335 {
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
336 case SHAPES_DOUBLE_BUFFERED:
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
337 DrawShapes(FALSE, NULL);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
338 break;
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
339 case SHAPES_DIRECT:
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
340 DrawShapes(TRUE, NULL);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
341 break;
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
342 case DRAW_FILE:
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
343 DrawFile(current_row, current_col, rows, font_height, NULL);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
344 break;
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
345 }
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
346 }
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
347
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
348 // Request that the render widgets redraw...
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
349 // If not using direct rendering, call update_render() to
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
350 // redraw the in memory pixmaps. Then trigger the expose events.
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
351 // Expose will call update_render() to draw directly or bitblt the pixmaps.
2916
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
352 void RenderDraw() {
2919
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
353 // If we are double buffered, draw to the pixmaps
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
354 if(render_type != SHAPES_DIRECT)
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
355 UpdateRender();
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
356 // Trigger expose event
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
357 render1->Redraw();
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
358 render2->Redraw();
2916
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
359 }
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
360
2929
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
361 DW::Menu *ItemContextMenu(DW::StatusText *status_text, const char *text)
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
362 {
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
363 DW::Menu *menu = new DW::Menu();
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
364 DW::Menu *submenu = new DW::Menu();
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
365 DW::MenuItem *menuitem = submenu->AppendItem("File", 0L, TRUE);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
366 menuitem->ConnectClicked([status_text, text]() -> int { status_text->SetText(text); return TRUE; });
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
367 menuitem->ConnectClicked([status_text, text]() -> int { status_text->SetText(text); return TRUE; });
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
368 menuitem = submenu->AppendItem("Date", 0L, TRUE);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
369 menuitem->ConnectClicked([status_text, text]() -> int { status_text->SetText(text); return TRUE; });
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
370 menuitem = submenu->AppendItem("Size", 0L, TRUE);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
371 menuitem->ConnectClicked([status_text, text]() -> int { status_text->SetText(text); return TRUE; });
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
372 menuitem = submenu->AppendItem("None", 0L, TRUE);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
373 menuitem->ConnectClicked([status_text, text]() -> int { status_text->SetText(text); return TRUE; });
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
374
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
375 menuitem = submenu->AppendItem("Sort", submenu);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
376
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
377 menuitem = submenu->AppendItem("Make Directory");
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
378 menuitem->ConnectClicked([status_text, text]() -> int { status_text->SetText(text); return TRUE; });
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
379
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
380 menuitem = submenu->AppendItem(DW_MENU_SEPARATOR);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
381 menuitem = submenu->AppendItem("Rename Entry");
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
382 menuitem->ConnectClicked([status_text, text]() -> int { status_text->SetText(text); return TRUE; });
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
383
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
384 menuitem = submenu->AppendItem("Delete Entry");
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
385 menuitem->ConnectClicked([status_text, text]() -> int { status_text->SetText(text); return TRUE; });
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
386
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
387 menuitem = submenu->AppendItem(DW_MENU_SEPARATOR);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
388 menuitem = submenu->AppendItem("View File");
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
389 menuitem->ConnectClicked([status_text, text]() -> int { status_text->SetText(text); return TRUE; });
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
390
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
391 return menu;
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
392 }
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
393
2930
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
394 DW::ComboBox *ColorCombobox(void)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
395 {
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
396 DW::ComboBox *combobox = new DW::ComboBox("DW_CLR_DEFAULT");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
397
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
398 combobox->Append("DW_CLR_DEFAULT");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
399 combobox->Append("DW_CLR_BLACK");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
400 combobox->Append("DW_CLR_DARKRED");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
401 combobox->Append("DW_CLR_DARKGREEN");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
402 combobox->Append("DW_CLR_BROWN");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
403 combobox->Append("DW_CLR_DARKBLUE");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
404 combobox->Append("DW_CLR_DARKPINK");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
405 combobox->Append("DW_CLR_DARKCYAN");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
406 combobox->Append("DW_CLR_PALEGRAY");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
407 combobox->Append("DW_CLR_DARKGRAY");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
408 combobox->Append("DW_CLR_RED");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
409 combobox->Append("DW_CLR_GREEN");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
410 combobox->Append("DW_CLR_YELLOW");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
411 combobox->Append("DW_CLR_BLUE");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
412 combobox->Append("DW_CLR_PINK");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
413 combobox->Append("DW_CLR_CYAN");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
414 combobox->Append("DW_CLR_WHITE");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
415 return combobox;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
416 }
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
417
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
418 unsigned long ComboboxColor(const char *colortext)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
419 {
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
420 unsigned long color = DW_CLR_DEFAULT;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
421
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
422 if(strcmp(colortext, "DW_CLR_BLACK") == 0)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
423 color = DW_CLR_BLACK;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
424 else if(strcmp(colortext, "DW_CLR_DARKRED") == 0)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
425 color = DW_CLR_DARKRED;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
426 else if(strcmp(colortext, "DW_CLR_DARKGREEN") == 0)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
427 color = DW_CLR_DARKGREEN;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
428 else if(strcmp(colortext, "DW_CLR_BROWN") == 0)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
429 color = DW_CLR_BROWN;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
430 else if(strcmp(colortext, "DW_CLR_DARKBLUE") == 0)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
431 color = DW_CLR_DARKBLUE;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
432 else if(strcmp(colortext, "DW_CLR_DARKPINK") == 0)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
433 color = DW_CLR_DARKPINK;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
434 else if(strcmp(colortext, "DW_CLR_DARKCYAN") == 0)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
435 color = DW_CLR_DARKCYAN;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
436 else if(strcmp(colortext, "DW_CLR_PALEGRAY") == 0)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
437 color = DW_CLR_PALEGRAY;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
438 else if(strcmp(colortext, "DW_CLR_DARKGRAY") == 0)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
439 color = DW_CLR_DARKGRAY;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
440 else if(strcmp(colortext, "DW_CLR_RED") == 0)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
441 color = DW_CLR_RED;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
442 else if(strcmp(colortext, "DW_CLR_GREEN") == 0)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
443 color = DW_CLR_GREEN;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
444 else if(strcmp(colortext, "DW_CLR_YELLOW") == 0)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
445 color = DW_CLR_YELLOW;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
446 else if(strcmp(colortext, "DW_CLR_BLUE") == 0)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
447 color = DW_CLR_BLUE;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
448 else if(strcmp(colortext, "DW_CLR_PINK") == 0)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
449 color = DW_CLR_PINK;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
450 else if(strcmp(colortext, "DW_CLR_CYAN") == 0)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
451 color = DW_CLR_CYAN;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
452 else if(strcmp(colortext, "DW_CLR_WHITE") == 0)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
453 color = DW_CLR_WHITE;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
454
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
455 return color;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
456 }
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
457
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
458 void MLESetFont(DW::MLE *mle, int fontsize, char *fontname)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
459 {
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
460 char font[101] = {0};
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
461
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
462 if(fontname)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
463 snprintf(font, 100, "%d.%s", fontsize, fontname);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
464 mle->SetFont(fontname ? font : NULL);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
465 }
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
466
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
467 // 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
468 void CreateMenus() {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
469 // Setup the menu
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
470 DW::MenuBar *menubar = this->MenuBarNew();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
471
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
472 // add menus to the menubar
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
473 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
474 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
475 menuitem->ConnectClicked([this] () -> int
2915
0cde119fc945 C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2914
diff changeset
476 {
0cde119fc945 C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2914
diff changeset
477 if(this->app->MessageBox(APP_TITLE, DW_MB_YESNO | DW_MB_QUESTION, APP_EXIT) != 0) {
0cde119fc945 C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2914
diff changeset
478 this->app->MainQuit();
0cde119fc945 C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2914
diff changeset
479 }
0cde119fc945 C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2914
diff changeset
480 return TRUE;
0cde119fc945 C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2914
diff changeset
481 });
2889
4b075e64536c C++: Add some simple menu code to see if things are working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2883
diff changeset
482
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
483 // 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
484 menubar->AppendItem("~File", menu);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
485
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
486 menu = new DW::Menu();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
487 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
488 checkable_menuitem->ConnectClicked([this]() -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
489 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
490 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
491 return FALSE;
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 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
494 noncheckable_menuitem->ConnectClicked([this]() -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
495 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
496 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
497 return FALSE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
498 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
499 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
500 // separator
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
501 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
502 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
503 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
504 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
505 // Toggle the variable
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
506 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
507 // 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
508 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
509 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
510 return FALSE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
511 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
512 // 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
513 menubar->AppendItem("~Menu", menu);
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 menu = new DW::Menu();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
516 menuitem = menu->AppendItem("~About");
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
517 menuitem->ConnectClicked([this]() -> int
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 DWEnv env;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
520
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
521 this->app->GetEnvironment(&env);
2915
0cde119fc945 C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2914
diff changeset
522 this->app->MessageBox("About dwindows", DW_MB_OK | DW_MB_INFORMATION,
0cde119fc945 C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2914
diff changeset
523 "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",
0cde119fc945 C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2914
diff changeset
524 env.osName, env.buildDate, env.buildTime,
0cde119fc945 C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2914
diff changeset
525 env.MajorVersion, env.MinorVersion, env.MajorBuild, env.MinorBuild,
0cde119fc945 C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2914
diff changeset
526 env.htmlEngine,
0cde119fc945 C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2914
diff changeset
527 env.DWMajorVersion, env.DWMinorVersion, env.DWSubVersion,
0cde119fc945 C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2914
diff changeset
528 this->app->GetScreenWidth(), this->app->GetScreenHeight(), this->app->GetColorDepth());
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
529 return FALSE;
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 // 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
532 menubar->AppendItem("~Help", menu);
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
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
535 // Notebook page 1
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
536 void CreateInput(DW::Box *notebookbox)
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 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
539
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
540 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
541
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
542 /* Copy and Paste */
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
543 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
544 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
545
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
546 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
547 copypastefield->SetLimit(260);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
548 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
549
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
550 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
551 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
552
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
553 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
554 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
555
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
556 /* Archive Name */
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
557 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
558 stext->SetStyle(DW_DT_VCENTER);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
559 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
560
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
561 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
562 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
563
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
564 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
565 entryfield->SetLimit(260);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
566 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
567
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
568 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
569 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
570
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
571 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
572 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
573
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
574 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
575 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
576
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
577 // Buttons
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
578 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
579 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
580
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
581 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
582 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
583
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
584 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
585 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
586
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
587 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
588 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
589
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
590 cancelbutton->Unpack();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
591 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
592 //this->ClickDefault(cancelbutton);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
593
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
594 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
595 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
596
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
597 /* 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
598 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
599 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
600 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
601 #ifdef COLOR_DEBUG
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
602 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
603 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
604 // 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
605 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
606 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
607 // 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
608 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
609 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
610 #endif
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
611
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
612 // Connect signals
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
613 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
614 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
615 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
616 if(tmp)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
617 {
2916
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
618 char *errors = ReadFile(tmp);
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
619 const char *title = "New file load";
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
620 const char *image = "image/test.png";
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
621 DW::Notification *notification;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
622
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
623 if(errors)
2916
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
624 notification = new DW::Notification(title, image, APP_TITLE " failed to load the file into the file browser.");
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
625 else
2916
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
626 notification = new DW::Notification(title, image, APP_TITLE " loaded the file into the file browser on the Render tab, with \"File Display\" selected from the drop down list.");
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
627
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
628 if(current_file)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
629 this->app->Free(current_file);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
630 current_file = tmp;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
631 entryfield->SetText(current_file);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
632 current_col = current_row = 0;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
633
2916
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
634 RenderDraw();
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
635 notification->ConnectClicked([this]() -> int {
2916
fe43f8667d3d C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2915
diff changeset
636 this->app->Debug("Notification clicked\n");
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
637 return TRUE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
638 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
639 notification->Send();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
640 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
641 copypastefield->SetFocus();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
642 return FALSE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
643 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
644
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
645 browsefolderbutton->ConnectClicked([this]() -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
646 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
647 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
648 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
649 return FALSE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
650 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
651
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
652 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
653 char *test = copypastefield->GetText();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
654
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
655 if(test) {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
656 this->app->SetClipboard(test);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
657 this->app->Free(test);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
658 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
659 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
660 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
661 });
2889
4b075e64536c C++: Add some simple menu code to see if things are working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2883
diff changeset
662
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
663 pastebutton->ConnectClicked([this, copypastefield]() -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
664 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
665 char *test = this->app->GetClipboard();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
666 if(test) {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
667 copypastefield->SetText(test);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
668 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
669 }
4b075e64536c C++: Add some simple menu code to see if things are working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2883
diff changeset
670 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
671 });
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
672
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
673 okbutton->ConnectClicked([this]() -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
674 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
675 if(this->timer) {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
676 delete this->timer;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
677 this->timer = DW_NULL;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
678 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
679 return TRUE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
680 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
681
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
682 cancelbutton->ConnectClicked([this] () -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
683 {
2915
0cde119fc945 C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2914
diff changeset
684 if(this->app->MessageBox(APP_TITLE, DW_MB_YESNO | DW_MB_QUESTION, APP_EXIT) != 0) {
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
685 this->app->MainQuit();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
686 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
687 return TRUE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
688 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
689
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
690 cursortogglebutton->ConnectClicked([this, cursortogglebutton] () -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
691 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
692 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
693 "Set Cursor pointer - CLOCK");
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
694 this->SetPointer(this->cursor_arrow ? DW_POINTER_CLOCK : DW_POINTER_DEFAULT);
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
695 this->cursor_arrow = !this->cursor_arrow;
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
696 return FALSE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
697 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
698
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
699 colorchoosebutton->ConnectClicked([this]() -> int
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
700 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
701 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
702 return FALSE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
703 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
704 }
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
705
2929
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
706 // Notebook page 2
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
707 void CreateRender(DW::Box *notebookbox) {
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
708 int vscrollbarwidth, hscrollbarheight;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
709 wchar_t widestring[100] = L"DWTest Wide";
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
710 char *utf8string = dw_wchar_to_utf8(widestring);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
711
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
712 // create a box to pack into the notebook page
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
713 DW::Box *pagebox = new DW::Box(DW_HORZ, 2);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
714 notebookbox->PackStart(pagebox, 0, 0, TRUE, TRUE, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
715
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
716 // now a status area under this box
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
717 DW::Box *hbox = new DW::Box(DW_HORZ, 1);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
718 notebookbox->PackStart(hbox, 100, 20, TRUE, FALSE, 1);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
719
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
720 DW::StatusText *status1 = new DW::StatusText();
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
721 hbox->PackStart(status1, 100, DW_SIZE_AUTO, TRUE, FALSE, 1);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
722
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
723 DW::StatusText *status2 = new DW::StatusText();
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
724 hbox->PackStart(status2, 100, DW_SIZE_AUTO, TRUE, FALSE, 1);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
725 // a box with combobox and button
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
726 hbox = new DW::Box(DW_HORZ, 1 );
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
727 notebookbox->PackStart(hbox, 100, 25, TRUE, FALSE, 1);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
728
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
729 DW::ComboBox *rendcombo = new DW::ComboBox( "Shapes Double Buffered");
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
730 hbox->PackStart(rendcombo, 80, 25, TRUE, TRUE, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
731 rendcombo->Append("Shapes Double Buffered");
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
732 rendcombo->Append("Shapes Direct");
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
733 rendcombo->Append("File Display");
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
734
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
735 DW::Text *label = new DW::Text("Image X:");
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
736 label->SetStyle(DW_DT_VCENTER | DW_DT_CENTER);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
737 hbox->PackStart(label, DW_SIZE_AUTO, 25, FALSE, TRUE, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
738
2919
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
739 imagexspin = new DW::SpinButton("20");
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
740 hbox->PackStart(imagexspin, 25, 25, TRUE, TRUE, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
741
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
742 label = new DW::Text("Y:");
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
743 label->SetStyle(DW_DT_VCENTER | DW_DT_CENTER);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
744 hbox->PackStart(label, DW_SIZE_AUTO, 25, FALSE, TRUE, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
745
2919
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
746 imageyspin = new DW::SpinButton("20");
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
747 hbox->PackStart(imageyspin, 25, 25, TRUE, TRUE, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
748 imagexspin->SetLimits(2000, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
749 imageyspin->SetLimits(2000, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
750 imagexspin->SetPos(20);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
751 imageyspin->SetPos(20);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
752
2919
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
753 imagestretchcheck = new DW::CheckBox("Stretch");
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
754 hbox->PackStart(imagestretchcheck, DW_SIZE_AUTO, 25, FALSE, TRUE, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
755
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
756 DW::Button *refreshbutton = new DW::Button("Refresh");
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
757 hbox->PackStart(refreshbutton, DW_SIZE_AUTO, 25, FALSE, TRUE, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
758
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
759 DW::Button *printbutton = new DW::Button("Print");
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
760 hbox->PackStart(printbutton, DW_SIZE_AUTO, 25, FALSE, TRUE, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
761
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
762 // Pre-create the scrollbars so we can query their sizes
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
763 vscrollbar = new DW::ScrollBar(DW_VERT, 50);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
764 hscrollbar = new DW::ScrollBar(DW_HORZ, 50);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
765 vscrollbar->GetPreferredSize(&vscrollbarwidth, NULL);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
766 hscrollbar->GetPreferredSize(NULL, &hscrollbarheight);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
767
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
768 // On GTK with overlay scrollbars enabled this returns us 0...
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
769 // so in that case we need to give it some real values.
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
770 if(!vscrollbarwidth)
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
771 vscrollbarwidth = 8;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
772 if(!hscrollbarheight)
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
773 hscrollbarheight = 8;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
774
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
775 // Create render box for line number pixmap
2919
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
776 render1 = new DW::Render();
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
777 render1->SetFont(FIXEDFONT);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
778 render1->GetTextExtents("(g", &font_width, &font_height);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
779 font_width = font_width / 2;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
780
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
781 DW::Box *vscrollbox = new DW::Box(DW_VERT, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
782 vscrollbox->PackStart(render1, font_width*width1, font_height*rows, FALSE, TRUE, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
783 vscrollbox->PackStart(DW_NOHWND, (font_width*(width1+1)), hscrollbarheight, FALSE, FALSE, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
784 pagebox->PackStart(vscrollbox, 0, 0, FALSE, TRUE, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
785
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
786 // pack empty space 1 character wide
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
787 pagebox->PackStart(DW_NOHWND, font_width, 0, FALSE, TRUE, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
788
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
789 // create box for filecontents and horz scrollbar
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
790 DW::Box *textbox = new DW::Box(DW_VERT,0 );
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
791 pagebox->PackStart(textbox, 0, 0, TRUE, TRUE, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
792
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
793 // create render box for filecontents pixmap
2919
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
794 render2 = new DW::Render();
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
795 textbox->PackStart(render2, 10, 10, TRUE, TRUE, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
796 render2->SetFont(FIXEDFONT);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
797 // create horizonal scrollbar
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
798 textbox->PackStart(hscrollbar, TRUE, FALSE, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
799
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
800 // create vertical scrollbar
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
801 vscrollbox = new DW::Box(DW_VERT, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
802 vscrollbox->PackStart(vscrollbar, FALSE, TRUE, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
803 // Pack an area of empty space of the scrollbar dimensions
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
804 vscrollbox->PackStart(DW_NOHWND, vscrollbarwidth, hscrollbarheight, FALSE, FALSE, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
805 pagebox->PackStart(vscrollbox, 0, 0, FALSE, TRUE, 0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
806
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
807 pixmap1 = new DW::Pixmap(render1, font_width*width1, font_height*rows);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
808 pixmap2 = new DW::Pixmap(render2, font_width*cols, font_height*rows);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
809 image = new DW::Pixmap(render1, "image/test");
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
810 if(!image || !image->GetHPIXMAP())
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
811 image = new DW::Pixmap(render1, "~/test");
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
812 if(!image || !image->GetHPIXMAP())
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
813 {
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
814 char *appdir = app->GetDir();
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
815 char pathbuff[1025] = {0};
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
816 int pos = (int)strlen(appdir);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
817
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
818 strncpy(pathbuff, appdir, 1024);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
819 pathbuff[pos] = DW_DIR_SEPARATOR;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
820 pos++;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
821 strncpy(&pathbuff[pos], "test", 1024-pos);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
822 image = new DW::Pixmap(render1, pathbuff);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
823 }
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
824 if(image)
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
825 image->SetTransparentColor(DW_CLR_WHITE);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
826
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
827 app->MessageBox(utf8string ? utf8string : "DWTest", DW_MB_OK|DW_MB_INFORMATION, "Width: %d Height: %d\n", font_width, font_height);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
828 if(utf8string)
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
829 app->Free(utf8string);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
830 pixmap1->DrawRect(DW_DRAW_FILL | DW_DRAW_NOAA, 0, 0, font_width*width1, font_height*rows);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
831 pixmap2->DrawRect(DW_DRAW_FILL | DW_DRAW_NOAA, 0, 0, font_width*cols, font_height*rows);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
832
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
833 // Signal handler lambdas
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
834 render1->ConnectButtonPress([this](int x, int y, int buttonmask) -> int
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
835 {
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
836 DW::Menu *menu = new DW::Menu();
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
837 DW::MenuItem *menuitem = menu->AppendItem("~Quit");
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
838 long px, py;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
839
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
840 menuitem->ConnectClicked([this] () -> int
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
841 {
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
842 if(this->app->MessageBox(APP_TITLE, DW_MB_YESNO | DW_MB_QUESTION, APP_EXIT) != 0) {
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
843 this->app->MainQuit();
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
844 }
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
845 return TRUE;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
846 });
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
847
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
848
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
849 menu->AppendItem(DW_MENU_SEPARATOR);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
850 menuitem = menu->AppendItem("~Show Window");
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
851 menuitem->ConnectClicked([this]() -> int
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
852 {
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
853 this->Show();
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
854 this->Raise();
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
855 return TRUE;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
856 });
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
857
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
858 this->app->GetPointerPos(&px, &py);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
859 menu->Popup(this, (int)px, (int)py);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
860 return TRUE;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
861 });
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
862
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
863 render1->ConnectExpose([this](DWExpose *exp) -> int
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
864 {
2919
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
865 if(render_type != SHAPES_DIRECT)
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
866 {
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
867 this->render1->BitBlt(0, 0, (int)pixmap1->GetWidth(), (int)pixmap1->GetHeight(), pixmap1, 0, 0);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
868 render1->Flush();
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
869 }
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
870 else
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
871 {
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
872 UpdateRender();
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
873 }
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
874 return TRUE;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
875 });
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
876
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
877 render2->ConnectExpose([this](DWExpose *exp) -> int
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
878 {
2919
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
879 if(render_type != SHAPES_DIRECT)
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
880 {
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
881 this->render2->BitBlt(0, 0, (int)pixmap2->GetWidth(), (int)pixmap2->GetHeight(), pixmap2, 0, 0);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
882 render2->Flush();
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
883 }
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
884 else
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
885 {
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
886 UpdateRender();
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
887 }
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
888 return TRUE;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
889 });
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
890
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
891 render2->ConnectKeyPress([this, status1](char ch, int vk, int state, char *utf8) -> int
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
892 {
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
893 char tmpbuf[101] = {0};
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
894 if(ch)
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
895 snprintf(tmpbuf, 100, "Key: %c(%d) Modifiers: %s(%d) utf8 %s", ch, ch, this->ResolveKeyModifiers(state), state, utf8);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
896 else
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
897 snprintf(tmpbuf, 100, "Key: %s(%d) Modifiers: %s(%d) utf8 %s", this->ResolveKeyName(vk), vk, ResolveKeyModifiers(state), state, utf8);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
898 status1->SetText(tmpbuf);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
899 return FALSE;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
900 });
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
901
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
902 hscrollbar->ConnectValueChanged([this, status1](int value) -> int
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
903 {
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
904 char tmpbuf[101] = {0};
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
905
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
906 this->current_col = value;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
907 snprintf(tmpbuf, 100, "Row:%d Col:%d Lines:%d Cols:%d", current_row,current_col,num_lines,max_linewidth);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
908 status1->SetText(tmpbuf);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
909 this->RenderDraw();
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
910 return TRUE;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
911 });
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
912
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
913 vscrollbar->ConnectValueChanged([this, status1](int value) -> int
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
914 {
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
915 char tmpbuf[101] = {0};
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
916
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
917 this->current_row = value;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
918 snprintf(tmpbuf, 100, "Row:%d Col:%d Lines:%d Cols:%d", current_row,current_col,num_lines,max_linewidth);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
919 status1->SetText(tmpbuf);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
920 this->RenderDraw();
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
921 return TRUE;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
922 });
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
923
2919
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
924 render2->ConnectMotionNotify([status2](int x, int y, int buttonmask) -> int
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
925 {
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
926 char buf[201] = {0};
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
927
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
928 snprintf(buf, 200, "motion_notify: %dx%d buttons %d", x, y, buttonmask);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
929 status2->SetText(buf);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
930 return FALSE;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
931 });
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
932
2919
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
933 render2->ConnectButtonPress([status2](int x, int y, int buttonmask) -> int
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
934 {
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
935 char buf[201] = {0};
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
936
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
937 snprintf(buf, 200, "button_press: %dx%d buttons %d", x, y, buttonmask);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
938 status2->SetText(buf);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
939 return FALSE;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
940 });
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
941
2919
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
942 render2->ConnectConfigure([this](int width, int height) -> int
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
943 {
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
944 DW::Pixmap *old1 = this->pixmap1, *old2 = this->pixmap2;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
945
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
946 rows = height / font_height;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
947 cols = width / font_width;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
948
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
949 // Create new pixmaps with the current sizes
2919
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
950 this->pixmap1 = new DW::Pixmap(this->render1, (unsigned long)(font_width*(width1)), (unsigned long)height);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
951 this->pixmap2 = new DW::Pixmap(this->render2, (unsigned long)width, (unsigned long)height);
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
952
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
953 // Make sure the side area is cleared
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
954 this->pixmap1->SetForegroundColor(DW_CLR_WHITE);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
955 this->pixmap1->DrawRect(DW_DRAW_FILL | DW_DRAW_NOAA, 0, 0, (int)this->pixmap1->GetWidth(), (int)this->pixmap1->GetHeight());
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
956
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
957 // Destroy the old pixmaps
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
958 delete old1;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
959 delete old2;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
960
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
961 // Update scrollbar ranges with new values
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
962 this->hscrollbar->SetRange(max_linewidth, cols);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
963 this->vscrollbar->SetRange(num_lines, rows);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
964
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
965 // Redraw the render widgets
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
966 this->RenderDraw();
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
967 return TRUE;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
968 });
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
969
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
970 imagestretchcheck->ConnectClicked([this]() -> int
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
971 {
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
972 this->RenderDraw();
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
973 return TRUE;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
974 });
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
975
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
976 refreshbutton->ConnectClicked([this]() -> int
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
977 {
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
978 this->RenderDraw();
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
979 return TRUE;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
980 });
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
981
2921
235fef840df2 C++: Implement Print class and enable the print code in dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2920
diff changeset
982 printbutton->ConnectClicked([this]() -> int
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
983 {
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
984 DW::Print *print = new DW::Print("DWTest Job", 0, 2, [this](DW::Pixmap *pixmap, int page_num) -> int
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
985 {
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
986 pixmap->SetFont(FIXEDFONT);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
987 if(page_num == 0)
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
988 {
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
989 this->DrawShapes(FALSE, pixmap);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
990 }
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
991 else if(page_num == 1)
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
992 {
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
993 /* Get the font size for this printer context... */
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
994 int fheight, fwidth;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
995
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
996 /* If we have a file to display... */
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
997 if(current_file)
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
998 {
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
999 int nrows;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1000
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1001 /* Calculate new dimensions */
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1002 pixmap->GetTextExtents("(g", NULL, &fheight);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1003 nrows = (int)(pixmap->GetHeight() / fheight);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1004
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1005 /* Do the actual drawing */
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1006 this->DrawFile(0, 0, nrows, fheight, pixmap);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1007 }
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1008 else
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1009 {
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1010 /* We don't have a file so center an error message on the page */
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1011 const char *text = "No file currently selected!";
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1012 int posx, posy;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1013
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1014 pixmap->GetTextExtents(text, &fwidth, &fheight);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1015
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1016 posx = (int)(pixmap->GetWidth() - fwidth)/2;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1017 posy = (int)(pixmap->GetHeight() - fheight)/2;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1018
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1019 pixmap->SetColor(DW_CLR_BLACK, DW_CLR_WHITE);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1020 pixmap->DrawText(posx, posy, text);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1021 }
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1022 }
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1023 return TRUE;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1024 });
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1025 print->Run(0);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1026 return TRUE;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1027 });
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1028
2930
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1029 rendcombo->ConnectListSelect([this](unsigned int index) -> int
2919
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1030 {
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1031 if(index != this->render_type)
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1032 {
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1033 if(index == DRAW_FILE)
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1034 {
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1035 this->hscrollbar->SetRange(max_linewidth, cols);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1036 this->hscrollbar->SetPos(0);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1037 this->vscrollbar->SetRange(num_lines, rows);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1038 this->vscrollbar->SetPos(0);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1039 this->current_col = this->current_row = 0;
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1040 }
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1041 else
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1042 {
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1043 this->hscrollbar->SetRange(0, 0);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1044 this->hscrollbar->SetPos(0);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1045 this->vscrollbar->SetRange(0, 0);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1046 this->vscrollbar->SetPos(0);
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1047 }
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1048 this->render_type = index;
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1049 this->RenderDraw();
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1050 }
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1051 return FALSE;
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1052 });
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1053
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1054 app->TaskBarInsert(render1, fileicon, "DWTest");
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1055 }
2929
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1056
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1057 // Notebook page 3
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1058 void CreateTree(DW::Box *notebookbox)
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1059 {
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1060 // create a box to pack into the notebook page
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1061 DW::ListBox *listbox = new DW::ListBox(TRUE);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1062 notebookbox->PackStart(listbox, 500, 200, TRUE, TRUE, 0);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1063 listbox->Append("Test 1");
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1064 listbox->Append("Test 2");
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1065 listbox->Append("Test 3");
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1066 listbox->Append("Test 4");
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1067 listbox->Append("Test 5");
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1068
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1069 // now a tree area under this box
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1070 DW::Tree *tree = new DW::Tree();
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1071 if(tree->GetHWND())
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1072 {
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1073 notebookbox->PackStart(tree, 500, 200, TRUE, TRUE, 1);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1074
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1075 /* and a status area to see whats going on */
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1076 DW::StatusText *tree_status = new DW::StatusText();
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1077 notebookbox->PackStart(tree_status, 100, DW_SIZE_AUTO, TRUE, FALSE, 1);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1078
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1079 // set up our signal trappers...
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1080 tree->ConnectItemContext([this, tree_status](char *text, int x, int y, void *data) -> int
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1081 {
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1082 char buf[201] = {0};
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1083 DW::Menu *popupmenu = ItemContextMenu(tree_status, "Item context menu clicked.");
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1084
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1085 snprintf(buf, 200, "DW_SIGNAL_ITEM_CONTEXT: Text: %s x: %d y: %d", text, x, y);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1086 tree_status->SetText(buf);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1087 popupmenu->Popup(this, x, y);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1088 return FALSE;
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1089 });
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1090 tree->ConnectItemSelect([tree_status](HTREEITEM item, char *text, void *itemdata)
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1091 {
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1092 char buf[201] = {0};
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1093
2930
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1094 snprintf(buf, 200, "DW_SIGNAL_ITEM_SELECT:Item: %x Text: %s Itemdata: %x", DW_POINTER_TO_UINT(item), text, DW_POINTER_TO_UINT(itemdata));
2929
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1095 tree_status->SetText(buf);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1096 return FALSE;
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1097 });
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1098
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1099 HTREEITEM t1 = tree->Insert("tree folder 1", foldericon, DW_NULL, DW_INT_TO_POINTER(1));
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1100 HTREEITEM t2 = tree->Insert("tree folder 2", foldericon, DW_NULL, DW_INT_TO_POINTER(2));
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1101 tree->Insert("tree file 1", fileicon, t1, DW_INT_TO_POINTER(3));
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1102 tree->Insert("tree file 2", fileicon, t1, DW_INT_TO_POINTER(4));
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1103 tree->Insert("tree file 3", fileicon, t2, DW_INT_TO_POINTER(5));
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1104 tree->Insert("tree file 4", fileicon, t2, DW_INT_TO_POINTER(6));
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1105 tree->Change(t1, "tree folder 1", foldericon);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1106 tree->Change(t2, "tree folder 2", foldericon);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1107 tree->SetData(t2, DW_INT_TO_POINTER(100));
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1108 tree->Expand(t1);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1109 char *title = tree->GetTitle(t1);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1110 this->app->Debug("t1 title \"%s\" data %d t2 data %d\n", title, DW_POINTER_TO_INT(tree->GetData(t1)),
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1111 DW_POINTER_TO_INT(tree->GetData(t2)));
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1112 this->app->Free(title);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1113 }
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1114 else
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1115 {
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1116 DW::Text *text = new DW::Text("Tree widget not available.");
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1117 notebookbox->PackStart(text, 500, 200, TRUE, TRUE, 1);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1118 }
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1119 }
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1120
2930
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1121 // Page 4 - Container
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1122 void CreateContainer(DW::Box *notebookbox)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1123 {
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1124 char buffer[101] = {0};
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1125 CTIME time;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1126 CDATE date;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1127
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1128 // create a box to pack into the notebook page
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1129 DW::Box *containerbox = new DW::Box(DW_HORZ, 2);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1130 notebookbox->PackStart(containerbox, 500, 200, TRUE, TRUE, 0);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1131
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1132 // Add a word wrap checkbox
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1133 DW::Box *hbox = new DW::Box(DW_HORZ, 0);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1134
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1135 DW::CheckBox *checkbox = new DW::CheckBox("Word wrap");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1136 hbox->PackStart(checkbox, FALSE, TRUE, 1);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1137 DW::Text *text = new DW::Text("Foreground:");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1138 text->SetStyle(DW_DT_VCENTER);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1139 hbox->PackStart(text, FALSE, TRUE, 1);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1140 DW::ComboBox *mlefore = ColorCombobox();
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1141 hbox->PackStart(mlefore, 150, DW_SIZE_AUTO, TRUE, FALSE, 1);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1142 text = new DW::Text("Background:");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1143 text->SetStyle(DW_DT_VCENTER);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1144 hbox->PackStart(text, FALSE, TRUE, 1);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1145 DW::ComboBox *mleback = ColorCombobox();
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1146 hbox->PackStart(mleback, 150, DW_SIZE_AUTO, TRUE, FALSE, 1);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1147 checkbox->Set(TRUE);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1148 text = new DW::Text("Font:");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1149 text->SetStyle(DW_DT_VCENTER);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1150 hbox->PackStart(text, FALSE, TRUE, 1);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1151 DW::SpinButton *fontsize = new DW::SpinButton("9");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1152 hbox->PackStart(fontsize, FALSE, FALSE, 1);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1153 fontsize->SetLimits(100, 5);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1154 fontsize->SetPos(9);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1155 DW::ComboBox *fontname = new DW::ComboBox("Default");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1156 fontname->Append("Default");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1157 fontname->Append("Arial");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1158 fontname->Append("Geneva");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1159 fontname->Append("Verdana");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1160 fontname->Append("Helvetica");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1161 fontname->Append("DejaVu Sans");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1162 fontname->Append("Times New Roman");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1163 fontname->Append("Times New Roman Bold");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1164 fontname->Append("Times New Roman Italic");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1165 fontname->Append("Times New Roman Bold Italic");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1166 hbox->PackStart(fontname, 150, DW_SIZE_AUTO, TRUE, FALSE, 1);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1167 notebookbox->PackStart(hbox, TRUE, FALSE, 1);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1168
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1169 // now a container area under this box
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1170 DW::Filesystem *container = new DW::Filesystem(TRUE);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1171 notebookbox->PackStart(container, 500, 200, TRUE, FALSE, 1);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1172
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1173 // and a status area to see whats going on
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1174 DW::StatusText *container_status = new DW::StatusText();
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1175 notebookbox->PackStart(container_status, 100, DW_SIZE_AUTO, TRUE, FALSE, 1);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1176
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1177 const char *titles[] = { "Type", "Size", "Time", "Date" };
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1178 unsigned long flags[4] = { DW_CFA_BITMAPORICON | DW_CFA_LEFT | DW_CFA_HORZSEPARATOR | DW_CFA_SEPARATOR,
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1179 DW_CFA_ULONG | DW_CFA_RIGHT | DW_CFA_HORZSEPARATOR | DW_CFA_SEPARATOR,
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1180 DW_CFA_TIME | DW_CFA_CENTER | DW_CFA_HORZSEPARATOR | DW_CFA_SEPARATOR,
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1181 DW_CFA_DATE | DW_CFA_LEFT | DW_CFA_HORZSEPARATOR | DW_CFA_SEPARATOR };
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1182
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1183
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1184 container->SetColumnTitle("Test");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1185 container->Setup(flags, titles, 4);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1186 container->SetStripe(DW_CLR_DEFAULT, DW_CLR_DEFAULT);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1187 container->Alloc(3);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1188
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1189 for(int z=0;z<3;z++)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1190 {
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1191 char names[101] = {0};
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1192 HICN thisicon = (z == 0 ? foldericon : fileicon);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1193
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1194 snprintf(names, 100, "We can now allocate from the stack: Item: %d", z);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1195 unsigned long size = z*100;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1196 snprintf(buffer, 100, "Filename %d", z+1);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1197 container->SetFile(z, buffer, thisicon);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1198 container->SetItem(0, z, &thisicon);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1199 container->SetItem(1, z, &size);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1200
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1201 time.seconds = z+10;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1202 time.minutes = z+10;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1203 time.hours = z+10;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1204 container->SetItem(2, z, &time);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1205
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1206 date.day = z+10;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1207 date.month = z+10;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1208 date.year = z+2000;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1209 container->SetItem(3, z, &date);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1210
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1211 container->SetRowTitle(z, names);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1212 container->SetRowData(z, DW_INT_TO_POINTER(z));
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1213 }
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1214
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1215 container->Insert();
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1216
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1217 container->Alloc(1);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1218 container->SetFile(0, "Yikes", foldericon);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1219 unsigned long size = 324;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1220 container->SetItem(0, 0, &foldericon);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1221 container->SetItem(1, 0, &size);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1222 container->SetItem(2, 0, &time);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1223 container->SetItem(3, 0, &date);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1224 container->SetRowTitle(0, "Extra");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1225
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1226 container->Insert();
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1227 container->Optimize();
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1228
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1229 DW::MLE *container_mle = new DW::MLE();
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1230 containerbox->PackStart(container_mle, 500, 200, TRUE, TRUE, 0);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1231
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1232 mle_point = container_mle->Import("", -1);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1233 snprintf(buffer, 100, "[%d]", mle_point);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1234 mle_point = container_mle->Import(buffer, mle_point);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1235 snprintf(buffer, 100, "[%d]abczxydefijkl", mle_point);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1236 mle_point = container_mle->Import(buffer, mle_point);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1237 container_mle->Delete(9, 3);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1238 mle_point = container_mle->Import("gh", 12);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1239 unsigned long newpoint;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1240 container_mle->GetSize(&newpoint, NULL);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1241 mle_point = (int)newpoint;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1242 snprintf(buffer, 100, "[%d]\r\n\r\n", mle_point);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1243 mle_point = container_mle->Import(buffer, mle_point);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1244 container_mle->SetCursor(mle_point);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1245
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1246 // connect our event trappers...
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1247 container->ConnectItemEnter([container_status](char *text, void *itemdata) -> int
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1248 {
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1249 char buf[201] = {0};
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1250
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1251 snprintf(buf, 200, "DW_SIGNAL_ITEM_ENTER: Text: %s Itemdata: %x", text, DW_POINTER_TO_UINT(itemdata));
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1252 container_status->SetText(buf);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1253 return FALSE;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1254 });
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1255
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1256 container->ConnectItemContext([this, container_status](char *text, int x, int y, void *itemdata) -> int
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1257 {
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1258 char buf[201] = {0};
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1259 DW::Menu *popupmenu = ItemContextMenu(container_status, "Item context menu clicked.");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1260
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1261 snprintf(buf, 200, "DW_SIGNAL_ITEM_CONTEXT: Text: %s x: %d y: %d Itemdata: %x", text, x, y, DW_POINTER_TO_UINT(itemdata));
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1262 container_status->SetText(buf);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1263 popupmenu->Popup(this, x, y);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1264 return FALSE;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1265 });
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1266
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1267 container->ConnectItemSelect([this, container_mle, container, container_status](HTREEITEM item, char *text, void *itemdata) -> int
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1268 {
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1269 char buf[201] = {0};
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1270
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1271 snprintf(buf, 200, "DW_SIGNAL_ITEM_SELECT:Item: %x Text: %s Itemdata: %x",
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1272 DW_POINTER_TO_UINT(item), text, DW_POINTER_TO_UINT(itemdata));
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1273 container_status->SetText(buf);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1274 snprintf(buf, 200, "\r\nDW_SIGNAL_ITEM_SELECT: Item: %x Text: %s Itemdata: %x\r\n",
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1275 DW_POINTER_TO_UINT(item), text, DW_POINTER_TO_UINT(itemdata));
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1276 this->mle_point = container_mle->Import(buf, mle_point);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1277 char *str = container->QueryStart(DW_CRA_SELECTED);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1278 while(str)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1279 {
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1280 snprintf(buf, 200, "Selected: %s\r\n", str);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1281 mle_point = container_mle->Import(buf, mle_point);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1282 this->app->Free(str);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1283 str = container->QueryNext(DW_CRA_SELECTED);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1284 }
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1285 // Make the last inserted point the cursor location
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1286 container_mle->SetCursor(mle_point);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1287 // set the details of item 0 to new data
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1288 this->app->Debug("In cb: icon: %x\n", DW_POINTER_TO_INT(fileicon));
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1289 container->ChangeFile(0, "new data", fileicon);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1290 unsigned long size = 999;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1291 this->app->Debug("In cb: icon: %x\n", DW_POINTER_TO_INT(fileicon));
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1292 container->ChangeItem(1, 0, &size);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1293 return FALSE;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1294 });
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1295
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1296 container->ConnectColumnClick([container, container_status](int column_num) -> int
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1297 {
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1298 const char *type_string = "Filename";
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1299
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1300 if(column_num != 0)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1301 {
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1302 int column_type = container->GetColumnType(column_num-1);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1303
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1304 if(column_type == DW_CFA_STRING)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1305 type_string = "String";
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1306 else if(column_type == DW_CFA_ULONG)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1307 type_string ="ULong";
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1308 else if(column_type == DW_CFA_DATE)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1309 type_string = "Date";
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1310 else if(column_type == DW_CFA_TIME)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1311 type_string ="Time";
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1312 else if(column_type == DW_CFA_BITMAPORICON)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1313 type_string = "BitmapOrIcon";
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1314 else
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1315 type_string = "Unknown";
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1316 }
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1317 char buf[201] = {0};
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1318 snprintf(buf, 200, "DW_SIGNAL_COLUMN_CLICK: Column: %d Type: %s", column_num, type_string);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1319 container_status->SetText(buf);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1320 return FALSE;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1321 });
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1322
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1323 mlefore->ConnectListSelect([this, mlefore, mleback, container_mle](unsigned int pos) -> int
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1324 {
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1325 char colortext[101] = {0};
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1326 ULONG fore = DW_CLR_DEFAULT, back = DW_CLR_DEFAULT;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1327
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1328 mlefore->GetListText(pos, colortext, 100);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1329 fore = ComboboxColor(colortext);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1330 char *text = mleback->GetText();
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1331
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1332 if(text && *text)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1333 {
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1334 back = ComboboxColor(text);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1335 this->app->Free(text);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1336 }
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1337 container_mle->SetColor(fore, back);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1338 return FALSE;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1339 });
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1340
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1341 mleback->ConnectListSelect([this, mlefore, mleback, container_mle](unsigned int pos) -> int
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1342 {
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1343 char colortext[101] = {0};
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1344 ULONG fore = DW_CLR_DEFAULT, back = DW_CLR_DEFAULT;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1345
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1346 mleback->GetListText(pos, colortext, 100);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1347 back = ComboboxColor(colortext);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1348 char *text = mlefore->GetText();
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1349
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1350 if(text && *text)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1351 {
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1352 fore = ComboboxColor(text);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1353 this->app->Free(text);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1354 }
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1355 container_mle->SetColor(fore, back);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1356 return FALSE;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1357 });
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1358
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1359 fontname->ConnectListSelect([this, fontname, fontsize, container_mle](unsigned int pos) -> int
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1360 {
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1361 char font[101] = {0};
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1362
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1363 fontname->GetListText(pos, font, 100);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1364 MLESetFont(container_mle, (int)fontsize->GetPos(), strcmp(font, "Default") == 0 ? NULL : font);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1365 return FALSE;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1366 });
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1367
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1368 fontsize->ConnectValueChanged([this, fontname, container_mle](int size) -> int
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1369 {
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1370 char *font = fontname->GetText();
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1371
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1372 if(font)
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1373 {
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1374 MLESetFont(container_mle, size, strcmp(font, "Default") == 0 ? NULL : font);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1375 this->app->Free(font);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1376 }
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1377 else
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1378 MLESetFont(container_mle, size, NULL);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1379 return FALSE;
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1380 });
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1381 }
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1382
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1383 public:
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1384 // Constructor creates the application
2915
0cde119fc945 C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2914
diff changeset
1385 DWTest(const char *title): DW::Window(title) {
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1386 char fileiconpath[1025] = "file";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1387 char foldericonpath[1025] = "folder";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1388
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1389 // Get our application singleton
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1390 app = DW::App::Init();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1391
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1392 // Add menus to the window
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1393 CreateMenus();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1394
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1395 // 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
1396 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
1397 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
1398
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1399 /* First try the current directory */
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1400 foldericon = app->LoadIcon(foldericonpath);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1401 fileicon = app->LoadIcon(fileiconpath);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1402
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1403 #ifdef PLATFORMFOLDER
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1404 /* 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
1405 * 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
1406 */
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1407 if(!foldericon)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1408 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1409 strncpy(foldericonpath, PLATFORMFOLDER "folder", 1024);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1410 foldericon = app->LoadIcon(foldericonpath);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1411 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1412 if(!fileicon)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1413 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1414 strncpy(fileiconpath, PLATFORMFOLDER "file", 1024);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1415 fileicon = app->LoadIcon(fileiconpath);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1416 }
2889
4b075e64536c C++: Add some simple menu code to see if things are working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2883
diff changeset
1417 #endif
4b075e64536c C++: Add some simple menu code to see if things are working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2883
diff changeset
1418
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1419 /* 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
1420 if(!foldericon && !fileicon)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1421 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1422 char *appdir = app->GetDir();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1423 char pathbuff[1025] = {0};
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1424 int pos = (int)strlen(appdir);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1425
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1426 strncpy(pathbuff, appdir, 1024);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1427 pathbuff[pos] = DW_DIR_SEPARATOR;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1428 pos++;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1429 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
1430 foldericon = app->LoadIcon(pathbuff);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1431 if(foldericon)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1432 strncpy(foldericonpath, pathbuff, 1025);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1433 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
1434 fileicon = app->LoadIcon(pathbuff);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1435 if(fileicon)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1436 strncpy(fileiconpath, pathbuff, 1025);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1437 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1438
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1439 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
1440 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
1441 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
1442 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1443 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
1444 return TRUE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1445 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1446
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1447 // Create Notebook Page 1 - Input
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1448 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
1449 CreateInput(notebookbox);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1450 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
1451 notebook->Pack(notebookpage, notebookbox);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1452 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
1453
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1454 // Create Notebook Page 2 - Render
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1455 notebookbox = new DW::Box(DW_VERT, 5);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1456 CreateRender(notebookbox);
2920
c6b699a441fe C++: Fix a couple minor errors while attempting to fix Mac crash.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2919
diff changeset
1457 notebookpage = notebook->PageNew();
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1458 notebook->Pack(notebookpage, notebookbox);
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1459 notebook->PageSetText(notebookpage, "render");
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1460
2929
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1461 // Create Notebook Page 3 - Tree
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1462 notebookbox = new DW::Box(DW_VERT, 5);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1463 CreateTree(notebookbox);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1464 notebookpage = notebook->PageNew();
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1465 notebook->Pack(notebookpage, notebookbox);
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1466 notebook->PageSetText(notebookpage, "tree");
2ab97b349958 C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2928
diff changeset
1467
2930
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1468 // Create Notebook Page 4 - Container
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1469 notebookbox = new DW::Box(DW_VERT, 5);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1470 CreateContainer(notebookbox);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1471 notebookpage = notebook->PageNew();
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1472 notebook->Pack(notebookpage, notebookbox);
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1473 notebook->PageSetText(notebookpage, "container");
d8117d36ed27 C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2929
diff changeset
1474
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1475 // Finalize the window
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1476 this->SetSize(640, 550);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1477
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1478 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
1479 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1480 this->app->Beep(200, 200);
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1481
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1482 // 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
1483 return TRUE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1484 });
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1485 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1486
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1487 DW::App *app;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1488
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1489 // Page 1
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1490 DW::Timer *timer;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1491 int cursor_arrow = TRUE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1492 unsigned long current_color;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1493
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1494 // Page 2
2919
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1495 DW::Render *render1, *render2;
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1496 DW::Pixmap *pixmap1, *pixmap2, *image;
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1497 DW::ScrollBar *hscrollbar, *vscrollbar;
2919
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1498 DW::SpinButton *imagexspin, *imageyspin;
e609aa6a5b93 C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2917
diff changeset
1499 DW::CheckBox *imagestretchcheck;
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1500
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1501 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
1502 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
1503 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
1504 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
1505 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
1506
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1507 char **lp;
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1508 char *current_file = NULL;
2889
4b075e64536c C++: Add some simple menu code to see if things are working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2883
diff changeset
1509
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1510 // Page 4
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1511 int mle_point=-1;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1512
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1513 // Miscellaneous
2917
77e5d6743013 C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2916
diff changeset
1514 int menu_enabled = TRUE;
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1515 HICN fileicon,foldericon;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1516
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1517 int OnDelete() override {
2915
0cde119fc945 C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2914
diff changeset
1518 if(app->MessageBox(APP_TITLE, DW_MB_YESNO | DW_MB_QUESTION, APP_EXIT) != 0) {
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1519 app->MainQuit();
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1520 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1521 return TRUE;
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1522 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1523 };
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1524
2923
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
1525 // Pretty list of features corresponding to the DWFEATURE enum in dw.h
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1526 const char *DWFeatureList[] = {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1527 "Supports the HTML Widget",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1528 "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
1529 "Supports custom window border sizes",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1530 "Supports window frame transparency",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1531 "Supports Dark Mode user interface",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1532 "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
1533 "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
1534 "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
1535 "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
1536 "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
1537 "Supports sending system notifications",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1538 "Supports UTF8 encoded Unicode text",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1539 "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
1540 "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
1541 "Supports the Tree Widget",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1542 "Supports arbitrary window placement",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1543 "Supports alternate container view modes",
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1544 NULL };
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1545
2923
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
1546 // Let's demonstrate the functionality of this library. :)
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1547 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
1548 {
2923
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
1549 // Initialize the Dynamic Windows engine
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1550 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
1551
2923
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
1552 // Enable full dark mode on platforms that support it
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1553 if(getenv("DW_DARK_MODE"))
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1554 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
1555
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1556 #ifdef DW_MOBILE
2923
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
1557 // Enable multi-line container display on Mobile platforms
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1558 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
1559 #endif
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1560
2923
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
1561 // Test all the features and display the results
2914
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1562 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
1563 {
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1564 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
1565 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
1566 const char *status = "Unsupported";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1567
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1568 if(result == 0)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1569 status = "Disabled";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1570 else if(result > 0)
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1571 status = "Enabled";
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1572
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1573 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
1574 }
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1575
8af64b6d75a9 C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2895
diff changeset
1576 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
1577 window->Show();
2861
ef7a414f9b71 Add initial C++ binding header and example program.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1578
2869
c873b6f862b9 C++: Add text widget and packing to the window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2868
diff changeset
1579 app->Main();
c873b6f862b9 C++: Add text widget and packing to the window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2868
diff changeset
1580 app->Exit(0);
2861
ef7a414f9b71 Add initial C++ binding header and example program.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1581
2869
c873b6f862b9 C++: Add text widget and packing to the window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2868
diff changeset
1582 return 0;
2861
ef7a414f9b71 Add initial C++ binding header and example program.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1583 }
2923
969cc3b8bec2 C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2921
diff changeset
1584 #endif