Mercurial > dwindows
annotate dwtestoo.cpp @ 2956:afe9c20294ca
Win: Fix building dwtestoo with MinGW32/64. Need to use __cdecl in C++ mode.
Also GCC 12 pukes on lambdas with stdio functions without #include <cstdio>
GCC 8 compiled it fine without the include.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Fri, 06 Jan 2023 09:33:59 +0000 |
parents | 34d16576c156 |
children | 217ebbee034f |
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" |
2956
afe9c20294ca
Win: Fix building dwtestoo with MinGW32/64. Need to use __cdecl in C++ mode.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2951
diff
changeset
|
5 #include <cstdio> |
2861
ef7a414f9b71
Add initial C++ binding header and example program.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6 |
2923
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
7 // 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
|
8 #ifdef __OS2__ |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
9 #define FIXEDFONT "5.System VIO" |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
10 #define PLATFORMFOLDER "os2\\" |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
11 #elif defined(__WIN32__) |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
12 #define FIXEDFONT "10.Lucida Console" |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
13 #define PLATFORMFOLDER "win\\" |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
14 #elif defined(__MAC__) |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
15 #define FIXEDFONT "9.Monaco" |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
16 #define PLATFORMFOLDER "mac/" |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
17 #elif defined(__IOS__) |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
18 #define FIXEDFONT "9.Monaco" |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
19 #elif defined(__ANDROID__) |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
20 #define FIXEDFONT "10.Monospace" |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
21 #elif GTK_MAJOR_VERSION > 1 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
22 #define FIXEDFONT "10.monospace" |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
23 #define PLATFORMFOLDER "gtk/" |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
24 #else |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
25 #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
|
26 #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
|
27 |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
28 #define SHAPES_DOUBLE_BUFFERED 0 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
29 #define SHAPES_DIRECT 1 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
30 #define DRAW_FILE 2 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
31 |
2915
0cde119fc945
C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2914
diff
changeset
|
32 #define APP_TITLE "Dynamic Windows C++" |
0cde119fc945
C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2914
diff
changeset
|
33 #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
|
34 |
2932
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
35 #define MAX_WIDGETS 20 |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
36 #define BUF_SIZE 1024 |
2932
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
37 |
2923
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
38 // 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
|
39 // 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
|
40 #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
|
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 // 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
|
43 |
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
44 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
|
45 { |
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
46 public: |
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
47 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
|
48 |
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
49 DWTest() { |
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
50 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
|
51 |
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
52 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
|
53 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
|
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 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
|
56 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
|
57 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
|
58 } |
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
59 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
|
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 }; |
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
62 |
2924
248e32f744f0
C++: Attempt to get dwtestoo working with old pre-lambda compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2923
diff
changeset
|
63 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
|
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 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
|
66 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
|
67 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
|
68 } |
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
69 |
2924
248e32f744f0
C++: Attempt to get dwtestoo working with old pre-lambda compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2923
diff
changeset
|
70 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
|
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 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
|
73 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
|
74 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
|
75 } |
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
76 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
|
77 } |
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 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
|
80 { |
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
81 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
|
82 |
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
83 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
|
84 "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
|
85 "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
|
86 "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
|
87 |
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
88 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
|
89 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
|
90 |
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
91 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
|
92 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
|
93 |
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::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
|
95 |
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
96 // 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
|
97 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
|
98 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
|
99 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
|
100 |
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
101 // 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
|
102 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
|
103 |
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
104 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
|
105 |
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
106 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
|
107 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
|
108 |
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
109 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
|
110 } |
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
111 #else |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
112 class DWTest : public DW::Window |
2861
ef7a414f9b71
Add initial C++ binding header and example program.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
113 { |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
114 private: |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
115 const char *ResolveKeyName(int vk) { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
116 const char *keyname; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
117 switch(vk) { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
118 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
|
119 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
|
120 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
|
121 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
|
122 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
|
123 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
|
124 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
|
125 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
|
126 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
|
127 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
|
128 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
|
129 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
|
130 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
|
131 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
|
132 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
|
133 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
|
134 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
|
135 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
|
136 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
|
137 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
|
138 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
|
139 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
|
140 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
|
141 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
|
142 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
|
143 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
|
144 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
|
145 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
|
146 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
|
147 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
|
148 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
|
149 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
|
150 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
|
151 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
|
152 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
|
153 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
|
154 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
|
155 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
|
156 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
|
157 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
|
158 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
|
159 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
|
160 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
|
161 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
|
162 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
|
163 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
|
164 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
|
165 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
|
166 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
|
167 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
|
168 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
|
169 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
|
170 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
|
171 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
|
172 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
|
173 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
|
174 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
|
175 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
|
176 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
|
177 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
|
178 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
|
179 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
|
180 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
|
181 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
|
182 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
|
183 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
|
184 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
|
185 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
|
186 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
|
187 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
|
188 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
|
189 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
|
190 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
|
191 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
|
192 default: keyname = "<unknown>"; break; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
193 } |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
194 return keyname; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
195 } |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
196 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
197 const char *ResolveKeyModifiers(int mask) { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
198 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
|
199 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
|
200 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
|
201 return "KC_CTRL KC_SHIFT"; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
202 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
|
203 return "KC_CTRL KC_ALT"; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
204 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
|
205 return "KC_SHIFT KC_ALT"; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
206 else if((mask & KC_SHIFT)) |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
207 return "KC_SHIFT"; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
208 else if((mask & KC_CTRL)) |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
209 return "KC_CTRL"; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
210 else if((mask & KC_ALT)) |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
211 return "KC_ALT"; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
212 else return "none"; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
213 } |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
214 |
2940
60e90b783cb1
C++: ListBox and ComboBoxes need to call Setup() to configure the handlers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2939
diff
changeset
|
215 char *ReadFile(char *filename) { |
2916
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
216 char *errors = NULL; |
2919
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
217 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
|
218 #ifdef __ANDROID__ |
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
219 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
|
220 |
2919
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
221 // 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
|
222 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
|
223 { |
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
224 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
|
225 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
|
226 } |
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
227 else |
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
228 #endif |
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
229 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
|
230 if(!fp) |
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
231 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
|
232 else |
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
233 { |
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
234 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
|
235 |
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
236 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
|
237 // 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
|
238 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
|
239 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
|
240 { |
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
241 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
|
242 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
|
243 break; |
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
244 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
|
245 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
|
246 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
|
247 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
|
248 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
|
249 } |
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
250 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
|
251 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
|
252 |
2916
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
253 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
|
254 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
|
255 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
|
256 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
|
257 } |
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
258 #ifdef __ANDROID__ |
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
259 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
|
260 close(fd); |
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
261 #endif |
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
262 return errors; |
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
263 } |
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
264 |
2919
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
265 // When hpm is not NULL we are printing.. so handle things differently |
2940
60e90b783cb1
C++: ListBox and ComboBoxes need to call Setup() to configure the handlers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2939
diff
changeset
|
266 void DrawFile(int row, int col, int nrows, int fheight, DW::Pixmap *hpm) { |
2919
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
267 DW::Pixmap *pixmap = hpm ? hpm : pixmap2; |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
268 char buf[16] = {0}; |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
269 int i,y,fileline; |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
270 char *pLine; |
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 if(current_file) |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
273 { |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
274 pixmap->SetForegroundColor(DW_CLR_WHITE); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
275 if(!hpm) |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
276 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
|
277 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
|
278 |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
279 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
|
280 { |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
281 fileline = i + row - 1; |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
282 y = i*fheight; |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
283 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
|
284 if(!hpm) |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
285 { |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
286 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
|
287 pixmap1->DrawText(0, y, buf); |
2919
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
288 } |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
289 pLine = lp[i+row]; |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
290 pixmap->DrawText(0, y, pLine+col); |
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 } |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
294 |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
295 // When hpm is not NULL we are printing.. so handle things differently |
2940
60e90b783cb1
C++: ListBox and ComboBoxes need to call Setup() to configure the handlers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2939
diff
changeset
|
296 void DrawShapes(int direct, DW::Pixmap *hpm) { |
2919
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
297 DW::Pixmap *pixmap = hpm ? hpm : pixmap2; |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
298 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
|
299 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
|
300 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
|
301 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
|
302 |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
303 drawable->SetForegroundColor(DW_CLR_WHITE); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
304 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
|
305 drawable->SetForegroundColor(DW_CLR_DARKPINK); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
306 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
|
307 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
|
308 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
|
309 drawable->SetForegroundColor(DW_CLR_YELLOW); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
310 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
|
311 drawable->SetForegroundColor(DW_CLR_BLUE); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
312 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
|
313 drawable->SetForegroundColor(DW_CLR_BLACK); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
314 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
|
315 drawable->SetForegroundColor(DW_CLR_CYAN); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
316 // Bottom right corner |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
317 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
|
318 // Top right corner |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
319 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
|
320 // Bottom left corner |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
321 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
|
322 // 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
|
323 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
|
324 if(image && image->GetHPIXMAP()) |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
325 { |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
326 if(imagestretchcheck->Get()) |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
327 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
|
328 else |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
329 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
|
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 |
2940
60e90b783cb1
C++: ListBox and ComboBoxes need to call Setup() to configure the handlers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2939
diff
changeset
|
333 void UpdateRender(void) { |
2919
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... |
2938
1184f58135ba
C++: Eliminate remnants of C code I missed while porting to C++.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2935
diff
changeset
|
349 // If not using direct rendering, call UpdateRender() to |
2919
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. |
2939
ebbc5b16899e
C++: Another couple fixes, context menus and PackAtIndex that got lost during porting.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2938
diff
changeset
|
351 // Expose will call UpdateRender() 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 |
2940
60e90b783cb1
C++: ListBox and ComboBoxes need to call Setup() to configure the handlers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2939
diff
changeset
|
361 DW::Menu *ItemContextMenu(DW::StatusText *status_text, const char *text) { |
2929
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
362 DW::Menu *menu = new DW::Menu(); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
363 DW::Menu *submenu = new DW::Menu(); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
364 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
|
365 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
|
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 = submenu->AppendItem("Date", 0L, TRUE); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
368 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
|
369 menuitem = submenu->AppendItem("Size", 0L, TRUE); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
370 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
|
371 menuitem = submenu->AppendItem("None", 0L, TRUE); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
372 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
|
373 |
2942
63d7baebb0d4
C++: Fix the popup menu code, was putting items on the wrong menu.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2940
diff
changeset
|
374 menuitem = menu->AppendItem("Sort", submenu); |
2929
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
375 |
2942
63d7baebb0d4
C++: Fix the popup menu code, was putting items on the wrong menu.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2940
diff
changeset
|
376 menuitem = menu->AppendItem("Make Directory"); |
2929
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
377 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
|
378 |
2942
63d7baebb0d4
C++: Fix the popup menu code, was putting items on the wrong menu.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2940
diff
changeset
|
379 menuitem = menu->AppendItem(DW_MENU_SEPARATOR); |
63d7baebb0d4
C++: Fix the popup menu code, was putting items on the wrong menu.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2940
diff
changeset
|
380 menuitem = menu->AppendItem("Rename Entry"); |
2929
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
381 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
|
382 |
2942
63d7baebb0d4
C++: Fix the popup menu code, was putting items on the wrong menu.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2940
diff
changeset
|
383 menuitem = menu->AppendItem("Delete Entry"); |
2929
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
384 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
|
385 |
2942
63d7baebb0d4
C++: Fix the popup menu code, was putting items on the wrong menu.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2940
diff
changeset
|
386 menuitem = menu->AppendItem(DW_MENU_SEPARATOR); |
63d7baebb0d4
C++: Fix the popup menu code, was putting items on the wrong menu.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2940
diff
changeset
|
387 menuitem = menu->AppendItem("View File"); |
2929
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
388 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
|
389 |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
390 return menu; |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
391 } |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
392 |
2940
60e90b783cb1
C++: ListBox and ComboBoxes need to call Setup() to configure the handlers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2939
diff
changeset
|
393 DW::ComboBox *ColorCombobox(void) { |
2930
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
394 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
|
395 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
396 combobox->Append("DW_CLR_DEFAULT"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
397 combobox->Append("DW_CLR_BLACK"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
398 combobox->Append("DW_CLR_DARKRED"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
399 combobox->Append("DW_CLR_DARKGREEN"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
400 combobox->Append("DW_CLR_BROWN"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
401 combobox->Append("DW_CLR_DARKBLUE"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
402 combobox->Append("DW_CLR_DARKPINK"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
403 combobox->Append("DW_CLR_DARKCYAN"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
404 combobox->Append("DW_CLR_PALEGRAY"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
405 combobox->Append("DW_CLR_DARKGRAY"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
406 combobox->Append("DW_CLR_RED"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
407 combobox->Append("DW_CLR_GREEN"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
408 combobox->Append("DW_CLR_YELLOW"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
409 combobox->Append("DW_CLR_BLUE"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
410 combobox->Append("DW_CLR_PINK"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
411 combobox->Append("DW_CLR_CYAN"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
412 combobox->Append("DW_CLR_WHITE"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
413 return combobox; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
414 } |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
415 |
2940
60e90b783cb1
C++: ListBox and ComboBoxes need to call Setup() to configure the handlers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2939
diff
changeset
|
416 unsigned long ComboboxColor(const char *colortext) { |
2930
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
417 unsigned long color = DW_CLR_DEFAULT; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
418 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
419 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
|
420 color = DW_CLR_BLACK; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
421 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
|
422 color = DW_CLR_DARKRED; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
423 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
|
424 color = DW_CLR_DARKGREEN; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
425 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
|
426 color = DW_CLR_BROWN; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
427 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
|
428 color = DW_CLR_DARKBLUE; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
429 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
|
430 color = DW_CLR_DARKPINK; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
431 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
|
432 color = DW_CLR_DARKCYAN; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
433 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
|
434 color = DW_CLR_PALEGRAY; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
435 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
|
436 color = DW_CLR_DARKGRAY; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
437 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
|
438 color = DW_CLR_RED; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
439 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
|
440 color = DW_CLR_GREEN; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
441 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
|
442 color = DW_CLR_YELLOW; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
443 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
|
444 color = DW_CLR_BLUE; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
445 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
|
446 color = DW_CLR_PINK; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
447 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
|
448 color = DW_CLR_CYAN; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
449 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
|
450 color = DW_CLR_WHITE; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
451 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
452 return color; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
453 } |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
454 |
2940
60e90b783cb1
C++: ListBox and ComboBoxes need to call Setup() to configure the handlers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2939
diff
changeset
|
455 void MLESetFont(DW::MLE *mle, int fontsize, char *fontname) { |
2951
34d16576c156
OS/2: Fix build error due to missing API, also fix buffer size warning.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2942
diff
changeset
|
456 char font[151] = {0}; |
2930
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 if(fontname) |
2951
34d16576c156
OS/2: Fix build error due to missing API, also fix buffer size warning.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2942
diff
changeset
|
459 snprintf(font, 150, "%d.%s", fontsize, fontname); |
2930
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
460 mle->SetFont(fontname ? font : NULL); |
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 |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
463 // Thread and Event functions |
2940
60e90b783cb1
C++: ListBox and ComboBoxes need to call Setup() to configure the handlers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2939
diff
changeset
|
464 void UpdateMLE(DW::MLE *threadmle, const char *text, DW::Mutex *mutex) { |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
465 static unsigned int pos = 0; |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
466 |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
467 // Protect pos from being changed by different threads |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
468 if(mutex) |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
469 mutex->Lock(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
470 pos = threadmle->Import(text, pos); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
471 threadmle->SetCursor(pos); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
472 if(mutex) |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
473 mutex->Unlock(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
474 } |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
475 |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
476 void RunThread(int threadnum, DW::Mutex *mutex, DW::Event *controlevent, DW::Event *workevent, DW::MLE *threadmle) { |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
477 char buf[BUF_SIZE+1] = {0}; |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
478 |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
479 snprintf(buf, BUF_SIZE, "Thread %d started.\r\n", threadnum); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
480 UpdateMLE(threadmle, buf, mutex); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
481 |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
482 // Increment the ready count while protected by mutex |
2934
6d3da42f63af
C++: Fix a couple issues reported by GCC 6 on PPC Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2933
diff
changeset
|
483 mutex->Lock(); |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
484 ready++; |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
485 // If all 4 threads have incrememted the ready count... |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
486 // Post the control event semaphore so things will get started. |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
487 if(ready == 4) |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
488 controlevent->Post(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
489 mutex->Unlock(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
490 |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
491 while(!finished) |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
492 { |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
493 int result = workevent->Wait(2000); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
494 |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
495 if(result == DW_ERROR_TIMEOUT) |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
496 { |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
497 snprintf(buf, BUF_SIZE, "Thread %d timeout waiting for event.\r\n", threadnum); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
498 UpdateMLE(threadmle, buf, mutex); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
499 } |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
500 else if(result == DW_ERROR_NONE) |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
501 { |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
502 snprintf(buf, BUF_SIZE, "Thread %d doing some work.\r\n", threadnum); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
503 UpdateMLE(threadmle, buf, mutex); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
504 // Pretend to do some work |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
505 app->MainSleep(1000 * threadnum); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
506 |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
507 // Increment the ready count while protected by mutex |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
508 mutex->Lock(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
509 ready++; |
2938
1184f58135ba
C++: Eliminate remnants of C code I missed while porting to C++.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2935
diff
changeset
|
510 snprintf(buf, BUF_SIZE, "Thread %d work done. ready=%d", threadnum, ready); |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
511 // If all 4 threads have incrememted the ready count... |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
512 // Post the control event semaphore so things will get started. |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
513 if(ready == 4) |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
514 { |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
515 controlevent->Post(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
516 strcat(buf, " Control posted."); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
517 } |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
518 mutex->Unlock(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
519 strcat(buf, "\r\n"); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
520 UpdateMLE(threadmle, buf, mutex); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
521 } |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
522 else |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
523 { |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
524 snprintf(buf, BUF_SIZE, "Thread %d error %d.\r\n", threadnum, result); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
525 UpdateMLE(threadmle, buf, mutex); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
526 app->MainSleep(10000); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
527 } |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
528 } |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
529 snprintf(buf, BUF_SIZE, "Thread %d finished.\r\n", threadnum); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
530 UpdateMLE(threadmle, buf, mutex); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
531 } |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
532 |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
533 void ControlThread(DW::Mutex *mutex, DW::Event *controlevent, DW::Event *workevent, DW::MLE *threadmle) { |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
534 int inprogress = 5; |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
535 char buf[BUF_SIZE+1] = {0}; |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
536 |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
537 while(inprogress) |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
538 { |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
539 int result = controlevent->Wait(2000); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
540 |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
541 if(result == DW_ERROR_TIMEOUT) |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
542 { |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
543 UpdateMLE(threadmle, "Control thread timeout waiting for event.\r\n", mutex); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
544 } |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
545 else if(result == DW_ERROR_NONE) |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
546 { |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
547 // Reset the control event |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
548 controlevent->Reset(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
549 ready = 0; |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
550 snprintf(buf, BUF_SIZE, "Control thread starting worker threads. Inprogress=%d\r\n", inprogress); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
551 UpdateMLE(threadmle, buf, mutex); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
552 // Start the work threads |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
553 workevent->Post(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
554 app->MainSleep(100); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
555 // Reset the work event |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
556 workevent->Reset(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
557 inprogress--; |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
558 } |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
559 else |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
560 { |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
561 snprintf(buf, BUF_SIZE, "Control thread error %d.\r\n", result); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
562 UpdateMLE(threadmle, buf, mutex); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
563 app->MainSleep(10000); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
564 } |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
565 } |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
566 // Tell the other threads we are done |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
567 finished = TRUE; |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
568 workevent->Post(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
569 // Close the control event |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
570 controlevent->Close(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
571 UpdateMLE(threadmle, "Control thread finished.\r\n", mutex); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
572 } |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
573 |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
574 // 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
|
575 void CreateMenus() { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
576 // Setup the menu |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
577 DW::MenuBar *menubar = this->MenuBarNew(); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
578 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
579 // add menus to the menubar |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
580 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
|
581 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
|
582 menuitem->ConnectClicked([this] () -> int |
2915
0cde119fc945
C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2914
diff
changeset
|
583 { |
0cde119fc945
C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2914
diff
changeset
|
584 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
|
585 this->app->MainQuit(); |
0cde119fc945
C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2914
diff
changeset
|
586 } |
0cde119fc945
C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2914
diff
changeset
|
587 return TRUE; |
0cde119fc945
C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2914
diff
changeset
|
588 }); |
2889
4b075e64536c
C++: Add some simple menu code to see if things are working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2883
diff
changeset
|
589 |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
590 // 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
|
591 menubar->AppendItem("~File", menu); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
592 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
593 menu = new DW::Menu(); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
594 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
|
595 checkable_menuitem->ConnectClicked([this]() -> int |
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 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
|
598 return FALSE; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
599 }); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
600 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
|
601 noncheckable_menuitem->ConnectClicked([this]() -> int |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
602 { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
603 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
|
604 return FALSE; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
605 }); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
606 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
|
607 // separator |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
608 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
|
609 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
|
610 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
|
611 { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
612 // Toggle the variable |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
613 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
|
614 // 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
|
615 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
|
616 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
|
617 return FALSE; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
618 }); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
619 // 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
|
620 menubar->AppendItem("~Menu", menu); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
621 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
622 menu = new DW::Menu(); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
623 menuitem = menu->AppendItem("~About"); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
624 menuitem->ConnectClicked([this]() -> int |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
625 { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
626 DWEnv env; |
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 this->app->GetEnvironment(&env); |
2915
0cde119fc945
C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2914
diff
changeset
|
629 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
|
630 "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
|
631 env.osName, env.buildDate, env.buildTime, |
0cde119fc945
C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2914
diff
changeset
|
632 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
|
633 env.htmlEngine, |
0cde119fc945
C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2914
diff
changeset
|
634 env.DWMajorVersion, env.DWMinorVersion, env.DWSubVersion, |
0cde119fc945
C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2914
diff
changeset
|
635 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
|
636 return FALSE; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
637 }); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
638 // 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
|
639 menubar->AppendItem("~Help", menu); |
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 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
642 // Notebook page 1 |
2940
60e90b783cb1
C++: ListBox and ComboBoxes need to call Setup() to configure the handlers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2939
diff
changeset
|
643 void CreateInput(DW::Box *notebookbox) { |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
644 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
|
645 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
646 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
|
647 |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
648 // Copy and Paste |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
649 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
|
650 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
|
651 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
652 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
|
653 copypastefield->SetLimit(260); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
654 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
|
655 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
656 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
|
657 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
|
658 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
659 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
|
660 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
|
661 |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
662 // Archive Name |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
663 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
|
664 stext->SetStyle(DW_DT_VCENTER); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
665 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
|
666 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
667 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
|
668 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
|
669 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
670 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
|
671 entryfield->SetLimit(260); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
672 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
|
673 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
674 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
|
675 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
|
676 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
677 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
|
678 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
|
679 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
680 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
|
681 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
|
682 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
683 // Buttons |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
684 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
|
685 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
|
686 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
687 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
|
688 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
|
689 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
690 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
|
691 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
|
692 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
693 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
|
694 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
|
695 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
696 cancelbutton->Unpack(); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
697 buttonbox->PackStart(cancelbutton, 130, 30, TRUE, TRUE, 2); |
2939
ebbc5b16899e
C++: Another couple fixes, context menus and PackAtIndex that got lost during porting.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2938
diff
changeset
|
698 this->ClickDefault(cancelbutton); |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
699 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
700 DW::Button *colorchoosebutton = new DW::Button("Color Chooser Dialog"); |
2939
ebbc5b16899e
C++: Another couple fixes, context menus and PackAtIndex that got lost during porting.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2938
diff
changeset
|
701 buttonbox->PackAtIndex(colorchoosebutton, 1, 130, 30, TRUE, TRUE, 2); |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
702 |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
703 // Set some nice fonts and colors |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
704 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
|
705 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
|
706 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
|
707 #ifdef COLOR_DEBUG |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
708 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
|
709 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
|
710 // 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
|
711 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
|
712 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
|
713 // 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
|
714 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
|
715 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
|
716 #endif |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
717 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
718 // Connect signals |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
719 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
|
720 { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
721 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
|
722 if(tmp) |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
723 { |
2916
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
724 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
|
725 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
|
726 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
|
727 DW::Notification *notification; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
728 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
729 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
|
730 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
|
731 else |
2916
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
732 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
|
733 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
734 if(current_file) |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
735 this->app->Free(current_file); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
736 current_file = tmp; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
737 entryfield->SetText(current_file); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
738 current_col = current_row = 0; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
739 |
2916
fe43f8667d3d
C++: Implement Notification class, and enable dwtestoo code that relied on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2915
diff
changeset
|
740 RenderDraw(); |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
741 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
|
742 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
|
743 return TRUE; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
744 }); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
745 notification->Send(); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
746 } |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
747 copypastefield->SetFocus(); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
748 return FALSE; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
749 }); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
750 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
751 browsefolderbutton->ConnectClicked([this]() -> int |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
752 { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
753 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
|
754 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
|
755 return FALSE; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
756 }); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
757 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
758 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
|
759 char *test = copypastefield->GetText(); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
760 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
761 if(test) { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
762 this->app->SetClipboard(test); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
763 this->app->Free(test); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
764 } |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
765 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
|
766 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
|
767 }); |
2889
4b075e64536c
C++: Add some simple menu code to see if things are working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2883
diff
changeset
|
768 |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
769 pastebutton->ConnectClicked([this, copypastefield]() -> int |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
770 { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
771 char *test = this->app->GetClipboard(); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
772 if(test) { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
773 copypastefield->SetText(test); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
774 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
|
775 } |
4b075e64536c
C++: Add some simple menu code to see if things are working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2883
diff
changeset
|
776 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
|
777 }); |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
778 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
779 okbutton->ConnectClicked([this]() -> int |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
780 { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
781 if(this->timer) { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
782 delete this->timer; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
783 this->timer = DW_NULL; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
784 } |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
785 return TRUE; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
786 }); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
787 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
788 cancelbutton->ConnectClicked([this] () -> int |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
789 { |
2915
0cde119fc945
C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2914
diff
changeset
|
790 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
|
791 this->app->MainQuit(); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
792 } |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
793 return TRUE; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
794 }); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
795 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
796 cursortogglebutton->ConnectClicked([this, cursortogglebutton] () -> int |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
797 { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
798 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
|
799 "Set Cursor pointer - CLOCK"); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
800 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
|
801 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
|
802 return FALSE; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
803 }); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
804 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
805 colorchoosebutton->ConnectClicked([this]() -> int |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
806 { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
807 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
|
808 return FALSE; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
809 }); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
810 } |
2917
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
811 |
2929
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
812 // 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
|
813 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
|
814 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
|
815 wchar_t widestring[100] = L"DWTest Wide"; |
2938
1184f58135ba
C++: Eliminate remnants of C code I missed while porting to C++.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2935
diff
changeset
|
816 char *utf8string = app->WideToUTF8(widestring); |
2917
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 // 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
|
819 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
|
820 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
|
821 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
822 // 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
|
823 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
|
824 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
|
825 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
826 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
|
827 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
|
828 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
829 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
|
830 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
|
831 // 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
|
832 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
|
833 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
|
834 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
835 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
|
836 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
|
837 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
|
838 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
|
839 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
|
840 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
841 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
|
842 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
|
843 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
|
844 |
2919
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
845 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
|
846 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
|
847 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
848 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
|
849 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
|
850 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
|
851 |
2919
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
852 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
|
853 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
|
854 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
|
855 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
|
856 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
|
857 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
|
858 |
2919
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
859 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
|
860 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
|
861 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
862 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
|
863 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
|
864 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
865 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
|
866 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
|
867 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
868 // 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
|
869 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
|
870 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
|
871 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
|
872 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
|
873 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
874 // 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
|
875 // 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
|
876 if(!vscrollbarwidth) |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
877 vscrollbarwidth = 8; |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
878 if(!hscrollbarheight) |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
879 hscrollbarheight = 8; |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
880 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
881 // 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
|
882 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
|
883 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
|
884 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
|
885 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
|
886 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
887 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
|
888 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
|
889 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
|
890 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
|
891 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
892 // 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
|
893 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
|
894 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
895 // 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
|
896 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
|
897 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
|
898 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
899 // 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
|
900 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
|
901 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
|
902 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
|
903 // 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
|
904 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
|
905 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
906 // 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
|
907 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
|
908 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
|
909 // 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
|
910 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
|
911 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
|
912 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
913 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
|
914 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
|
915 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
|
916 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
|
917 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
|
918 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
|
919 { |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
920 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
|
921 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
|
922 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
|
923 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
924 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
|
925 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
|
926 pos++; |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
927 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
|
928 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
|
929 } |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
930 if(image) |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
931 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
|
932 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
933 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
|
934 if(utf8string) |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
935 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
|
936 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
|
937 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
|
938 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
939 // 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
|
940 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
|
941 { |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
942 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
|
943 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
|
944 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
|
945 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
946 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
|
947 { |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
948 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
|
949 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
|
950 } |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
951 return TRUE; |
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 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
954 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
955 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
|
956 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
|
957 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
|
958 { |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
959 this->Show(); |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
960 this->Raise(); |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
961 return TRUE; |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
962 }); |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
963 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
964 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
|
965 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
|
966 return TRUE; |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
967 }); |
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 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
|
970 { |
2919
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
971 if(render_type != SHAPES_DIRECT) |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
972 { |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
973 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
|
974 render1->Flush(); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
975 } |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
976 else |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
977 { |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
978 UpdateRender(); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
979 } |
2917
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
980 return TRUE; |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
981 }); |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
982 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
983 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
|
984 { |
2919
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
985 if(render_type != SHAPES_DIRECT) |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
986 { |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
987 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
|
988 render2->Flush(); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
989 } |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
990 else |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
991 { |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
992 UpdateRender(); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
993 } |
2917
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
994 return TRUE; |
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 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
997 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
|
998 { |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
999 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
|
1000 if(ch) |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1001 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
|
1002 else |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1003 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
|
1004 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
|
1005 return FALSE; |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1006 }); |
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 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
|
1009 { |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1010 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
|
1011 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1012 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
|
1013 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
|
1014 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
|
1015 this->RenderDraw(); |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1016 return TRUE; |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1017 }); |
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 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
|
1020 { |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1021 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
|
1022 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1023 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
|
1024 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
|
1025 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
|
1026 this->RenderDraw(); |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1027 return TRUE; |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1028 }); |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1029 |
2919
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1030 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
|
1031 { |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1032 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
|
1033 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1034 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
|
1035 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
|
1036 return FALSE; |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1037 }); |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1038 |
2919
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1039 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
|
1040 { |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1041 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
|
1042 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1043 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
|
1044 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
|
1045 return FALSE; |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1046 }); |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1047 |
2919
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1048 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
|
1049 { |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1050 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
|
1051 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1052 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
|
1053 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
|
1054 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1055 // 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
|
1056 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
|
1057 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
|
1058 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1059 // 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
|
1060 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
|
1061 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
|
1062 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1063 // 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
|
1064 delete old1; |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1065 delete old2; |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1066 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1067 // 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
|
1068 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
|
1069 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
|
1070 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1071 // 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
|
1072 this->RenderDraw(); |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1073 return TRUE; |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1074 }); |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1075 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1076 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
|
1077 { |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1078 this->RenderDraw(); |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1079 return TRUE; |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1080 }); |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1081 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1082 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
|
1083 { |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1084 this->RenderDraw(); |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1085 return TRUE; |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1086 }); |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1087 |
2921
235fef840df2
C++: Implement Print class and enable the print code in dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2920
diff
changeset
|
1088 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
|
1089 { |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1090 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
|
1091 { |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1092 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
|
1093 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
|
1094 { |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1095 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
|
1096 } |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1097 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
|
1098 { |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1099 // Get the font size for this printer context... |
2917
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1100 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
|
1101 |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1102 // If we have a file to display... |
2917
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1103 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
|
1104 { |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1105 int nrows; |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1106 |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1107 // Calculate new dimensions |
2917
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1108 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
|
1109 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
|
1110 |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1111 // Do the actual drawing |
2917
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1112 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
|
1113 } |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1114 else |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1115 { |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1116 // We don't have a file so center an error message on the page |
2917
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1117 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
|
1118 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
|
1119 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1120 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
|
1121 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1122 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
|
1123 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
|
1124 |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1125 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
|
1126 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
|
1127 } |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1128 } |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1129 return TRUE; |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1130 }); |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1131 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
|
1132 return TRUE; |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1133 }); |
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1134 |
2930
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1135 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
|
1136 { |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1137 if(index != this->render_type) |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1138 { |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1139 if(index == DRAW_FILE) |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1140 { |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1141 this->hscrollbar->SetRange(max_linewidth, cols); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1142 this->hscrollbar->SetPos(0); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1143 this->vscrollbar->SetRange(num_lines, rows); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1144 this->vscrollbar->SetPos(0); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1145 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
|
1146 } |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1147 else |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1148 { |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1149 this->hscrollbar->SetRange(0, 0); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1150 this->hscrollbar->SetPos(0); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1151 this->vscrollbar->SetRange(0, 0); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1152 this->vscrollbar->SetPos(0); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1153 } |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1154 this->render_type = index; |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1155 this->RenderDraw(); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1156 } |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1157 return FALSE; |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1158 }); |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1159 |
2917
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1160 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
|
1161 } |
2929
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1162 |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1163 // Notebook page 3 |
2940
60e90b783cb1
C++: ListBox and ComboBoxes need to call Setup() to configure the handlers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2939
diff
changeset
|
1164 void CreateTree(DW::Box *notebookbox) { |
2929
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1165 // 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
|
1166 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
|
1167 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
|
1168 listbox->Append("Test 1"); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1169 listbox->Append("Test 2"); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1170 listbox->Append("Test 3"); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1171 listbox->Append("Test 4"); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1172 listbox->Append("Test 5"); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1173 |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1174 // 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
|
1175 DW::Tree *tree = new DW::Tree(); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1176 if(tree->GetHWND()) |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1177 { |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1178 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
|
1179 |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1180 // and a status area to see whats going on |
2929
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1181 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
|
1182 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
|
1183 |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1184 // set up our signal trappers... |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1185 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
|
1186 { |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1187 char buf[201] = {0}; |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1188 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
|
1189 |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1190 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
|
1191 tree_status->SetText(buf); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1192 popupmenu->Popup(this, x, y); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1193 return FALSE; |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1194 }); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1195 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
|
1196 { |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1197 char buf[201] = {0}; |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1198 |
2930
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1199 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
|
1200 tree_status->SetText(buf); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1201 return FALSE; |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1202 }); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1203 |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1204 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
|
1205 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
|
1206 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
|
1207 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
|
1208 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
|
1209 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
|
1210 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
|
1211 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
|
1212 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
|
1213 tree->Expand(t1); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1214 char *title = tree->GetTitle(t1); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1215 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
|
1216 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
|
1217 this->app->Free(title); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1218 } |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1219 else |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1220 { |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1221 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
|
1222 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
|
1223 } |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1224 } |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1225 |
2930
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1226 // Page 4 - Container |
2940
60e90b783cb1
C++: ListBox and ComboBoxes need to call Setup() to configure the handlers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2939
diff
changeset
|
1227 void CreateContainer(DW::Box *notebookbox) { |
2930
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1228 char buffer[101] = {0}; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1229 CTIME time; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1230 CDATE date; |
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 // 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
|
1233 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
|
1234 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
|
1235 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1236 // Add a word wrap checkbox |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1237 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
|
1238 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1239 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
|
1240 hbox->PackStart(checkbox, FALSE, TRUE, 1); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1241 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
|
1242 text->SetStyle(DW_DT_VCENTER); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1243 hbox->PackStart(text, FALSE, TRUE, 1); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1244 DW::ComboBox *mlefore = ColorCombobox(); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1245 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
|
1246 text = new DW::Text("Background:"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1247 text->SetStyle(DW_DT_VCENTER); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1248 hbox->PackStart(text, FALSE, TRUE, 1); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1249 DW::ComboBox *mleback = ColorCombobox(); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1250 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
|
1251 checkbox->Set(TRUE); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1252 text = new DW::Text("Font:"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1253 text->SetStyle(DW_DT_VCENTER); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1254 hbox->PackStart(text, FALSE, TRUE, 1); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1255 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
|
1256 hbox->PackStart(fontsize, FALSE, FALSE, 1); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1257 fontsize->SetLimits(100, 5); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1258 fontsize->SetPos(9); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1259 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
|
1260 fontname->Append("Default"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1261 fontname->Append("Arial"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1262 fontname->Append("Geneva"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1263 fontname->Append("Verdana"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1264 fontname->Append("Helvetica"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1265 fontname->Append("DejaVu Sans"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1266 fontname->Append("Times New Roman"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1267 fontname->Append("Times New Roman Bold"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1268 fontname->Append("Times New Roman Italic"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1269 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
|
1270 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
|
1271 notebookbox->PackStart(hbox, TRUE, FALSE, 1); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1272 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1273 // 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
|
1274 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
|
1275 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
|
1276 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1277 // 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
|
1278 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
|
1279 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
|
1280 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1281 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
|
1282 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
|
1283 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
|
1284 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
|
1285 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
|
1286 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1287 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1288 container->SetColumnTitle("Test"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1289 container->Setup(flags, titles, 4); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1290 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
|
1291 container->Alloc(3); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1292 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1293 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
|
1294 { |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1295 char names[101] = {0}; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1296 HICN thisicon = (z == 0 ? foldericon : fileicon); |
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 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
|
1299 unsigned long size = z*100; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1300 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
|
1301 container->SetFile(z, buffer, thisicon); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1302 container->SetItem(0, z, &thisicon); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1303 container->SetItem(1, z, &size); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1304 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1305 time.seconds = z+10; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1306 time.minutes = z+10; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1307 time.hours = z+10; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1308 container->SetItem(2, z, &time); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1309 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1310 date.day = z+10; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1311 date.month = z+10; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1312 date.year = z+2000; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1313 container->SetItem(3, z, &date); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1314 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1315 container->SetRowTitle(z, names); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1316 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
|
1317 } |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1318 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1319 container->Insert(); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1320 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1321 container->Alloc(1); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1322 container->SetFile(0, "Yikes", foldericon); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1323 unsigned long size = 324; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1324 container->SetItem(0, 0, &foldericon); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1325 container->SetItem(1, 0, &size); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1326 container->SetItem(2, 0, &time); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1327 container->SetItem(3, 0, &date); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1328 container->SetRowTitle(0, "Extra"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1329 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1330 container->Insert(); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1331 container->Optimize(); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1332 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1333 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
|
1334 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
|
1335 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1336 mle_point = container_mle->Import("", -1); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1337 snprintf(buffer, 100, "[%d]", mle_point); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1338 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
|
1339 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
|
1340 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
|
1341 container_mle->Delete(9, 3); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1342 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
|
1343 unsigned long newpoint; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1344 container_mle->GetSize(&newpoint, NULL); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1345 mle_point = (int)newpoint; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1346 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
|
1347 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
|
1348 container_mle->SetCursor(mle_point); |
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 // connect our event trappers... |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1351 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
|
1352 { |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1353 char buf[201] = {0}; |
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 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
|
1356 container_status->SetText(buf); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1357 return FALSE; |
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 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1360 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
|
1361 { |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1362 char buf[201] = {0}; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1363 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
|
1364 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1365 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
|
1366 container_status->SetText(buf); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1367 popupmenu->Popup(this, x, y); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1368 return FALSE; |
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 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1371 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
|
1372 { |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1373 char buf[201] = {0}; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1374 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1375 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
|
1376 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
|
1377 container_status->SetText(buf); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1378 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
|
1379 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
|
1380 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
|
1381 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
|
1382 while(str) |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1383 { |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1384 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
|
1385 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
|
1386 this->app->Free(str); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1387 str = container->QueryNext(DW_CRA_SELECTED); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1388 } |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1389 // 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
|
1390 container_mle->SetCursor(mle_point); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1391 // 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
|
1392 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
|
1393 container->ChangeFile(0, "new data", fileicon); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1394 unsigned long size = 999; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1395 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
|
1396 container->ChangeItem(1, 0, &size); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1397 return FALSE; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1398 }); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1399 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1400 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
|
1401 { |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1402 const char *type_string = "Filename"; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1403 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1404 if(column_num != 0) |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1405 { |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1406 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
|
1407 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1408 if(column_type == DW_CFA_STRING) |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1409 type_string = "String"; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1410 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
|
1411 type_string ="ULong"; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1412 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
|
1413 type_string = "Date"; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1414 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
|
1415 type_string ="Time"; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1416 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
|
1417 type_string = "BitmapOrIcon"; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1418 else |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1419 type_string = "Unknown"; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1420 } |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1421 char buf[201] = {0}; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1422 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
|
1423 container_status->SetText(buf); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1424 return FALSE; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1425 }); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1426 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1427 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
|
1428 { |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1429 char colortext[101] = {0}; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1430 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
|
1431 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1432 mlefore->GetListText(pos, colortext, 100); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1433 fore = ComboboxColor(colortext); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1434 char *text = mleback->GetText(); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1435 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1436 if(text && *text) |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1437 { |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1438 back = ComboboxColor(text); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1439 this->app->Free(text); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1440 } |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1441 container_mle->SetColor(fore, back); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1442 return FALSE; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1443 }); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1444 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1445 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
|
1446 { |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1447 char colortext[101] = {0}; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1448 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
|
1449 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1450 mleback->GetListText(pos, colortext, 100); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1451 back = ComboboxColor(colortext); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1452 char *text = mlefore->GetText(); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1453 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1454 if(text && *text) |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1455 { |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1456 fore = ComboboxColor(text); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1457 this->app->Free(text); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1458 } |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1459 container_mle->SetColor(fore, back); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1460 return FALSE; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1461 }); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1462 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1463 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
|
1464 { |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1465 char font[101] = {0}; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1466 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1467 fontname->GetListText(pos, font, 100); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1468 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
|
1469 return FALSE; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1470 }); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1471 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1472 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
|
1473 { |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1474 char *font = fontname->GetText(); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1475 |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1476 if(font) |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1477 { |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1478 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
|
1479 this->app->Free(font); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1480 } |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1481 else |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1482 MLESetFont(container_mle, size, NULL); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1483 return FALSE; |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1484 }); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1485 } |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1486 |
2931
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1487 // Page 5 - Buttons |
2940
60e90b783cb1
C++: ListBox and ComboBoxes need to call Setup() to configure the handlers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2939
diff
changeset
|
1488 void CreateButtons(DW::Box *notebookbox) { |
2931
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1489 // create a box to pack into the notebook page |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1490 DW::Box *buttonsbox = new DW::Box(DW_VERT, 2); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1491 notebookbox->PackStart(buttonsbox, 25, 200, TRUE, TRUE, 0); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1492 buttonsbox->SetColor(DW_CLR_RED, DW_CLR_RED); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1493 |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1494 DW::Box *calbox = new DW::Box(DW_HORZ, 0); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1495 notebookbox->PackStart(calbox, 0, 0, TRUE, FALSE, 1); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1496 DW::Calendar *cal = new DW::Calendar(); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1497 calbox->PackStart(cal, TRUE, FALSE, 0); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1498 |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1499 cal->SetDate(2019, 4, 30); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1500 |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1501 // Create our file toolbar boxes... |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1502 DW::Box *buttonboxperm = new DW::Box(DW_VERT, 0); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1503 buttonsbox->PackStart(buttonboxperm, 25, 0, FALSE, TRUE, 2); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1504 buttonboxperm->SetColor(DW_CLR_WHITE, DW_CLR_WHITE); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1505 DW::BitmapButton *topbutton = new DW::BitmapButton("Top Button", fileiconpath); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1506 buttonboxperm->PackStart(topbutton, 100, 30, FALSE, FALSE, 0 ); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1507 buttonboxperm->PackStart(DW_NOHWND, 25, 5, FALSE, FALSE, 0); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1508 DW::BitmapButton *iconbutton = new DW::BitmapButton( "Folder Icon", foldericonpath); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1509 buttonsbox->PackStart(iconbutton, 25, 25, FALSE, FALSE, 0); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1510 iconbutton->ConnectClicked([this, iconbutton]() -> int |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1511 { |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1512 static int isfoldericon = 0; |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1513 |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1514 isfoldericon = !isfoldericon; |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1515 if(isfoldericon) |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1516 { |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1517 iconbutton->Set(this->fileiconpath); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1518 iconbutton->SetTooltip("File Icon"); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1519 } |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1520 else |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1521 { |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1522 iconbutton->Set(this->foldericonpath); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1523 iconbutton->SetTooltip("Folder Icon"); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1524 } |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1525 return FALSE; |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1526 }); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1527 |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1528 DW::Box *filetoolbarbox = new DW::Box(DW_VERT, 0); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1529 buttonboxperm->PackStart(filetoolbarbox, 0, 0, TRUE, TRUE, 0); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1530 |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1531 DW::BitmapButton *button = new DW::BitmapButton("Empty image. Should be under Top button", 0, "junk"); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1532 filetoolbarbox->PackStart(button, 25, 25, FALSE, FALSE, 0); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1533 button->ConnectClicked([buttonsbox]() -> int |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1534 { |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1535 buttonsbox->SetColor(DW_CLR_RED, DW_CLR_RED); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1536 return TRUE; |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1537 }); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1538 filetoolbarbox->PackStart(DW_NOHWND, 25, 5, FALSE, FALSE, 0); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1539 |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1540 button = new DW::BitmapButton("A borderless bitmapbitton", 0, foldericonpath); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1541 filetoolbarbox->PackStart(button, 25, 25, FALSE, FALSE, 0); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1542 button->ConnectClicked([buttonsbox]() -> int |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1543 { |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1544 buttonsbox->SetColor(DW_CLR_YELLOW, DW_CLR_YELLOW); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1545 return TRUE; |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1546 }); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1547 filetoolbarbox->PackStart(DW_NOHWND, 25, 5, FALSE, FALSE, 0); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1548 button->SetStyle(DW_BS_NOBORDER); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1549 |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1550 DW::BitmapButton *perbutton = new DW::BitmapButton("A button from data", 0, foldericonpath); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1551 filetoolbarbox->PackStart(perbutton, 25, 25, FALSE, FALSE, 0); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1552 filetoolbarbox->PackStart(DW_NOHWND, 25, 5, FALSE, FALSE, 0 ); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1553 |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1554 // make a combobox |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1555 DW::Box *combox = new DW::Box(DW_VERT, 2); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1556 notebookbox->PackStart(combox, 25, 200, TRUE, FALSE, 0); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1557 DW::ComboBox *combobox1 = new DW::ComboBox("fred"); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1558 combobox1->Append("fred"); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1559 combox->PackStart(combobox1, TRUE, FALSE, 0); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1560 |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1561 int iteration = 0; |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1562 combobox1->ConnectListSelect([this, &iteration](unsigned int index) -> int |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1563 { |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1564 this->app->Debug("got combobox_select_event for index: %d, iteration: %d\n", index, iteration++); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1565 return FALSE; |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1566 }); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1567 |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1568 DW::ComboBox *combobox2 = new DW::ComboBox("joe"); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1569 combox->PackStart(combobox2, TRUE, FALSE, 0); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1570 combobox2->ConnectListSelect([this, &iteration](unsigned int index) -> int |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1571 { |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1572 this->app->Debug("got combobox_select_event for index: %d, iteration: %d\n", index, iteration++); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1573 return FALSE; |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1574 }); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1575 |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1576 // add LOTS of items |
2938
1184f58135ba
C++: Eliminate remnants of C code I missed while porting to C++.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2935
diff
changeset
|
1577 app->Debug("before appending 500 items to combobox using DW::ListBox::ListAppend()\n"); |
2931
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1578 char **text = (char **)malloc(500*sizeof(char *)); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1579 for(int i = 0; i < 500; i++) |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1580 { |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1581 text[i] = (char *)calloc(1, 50); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1582 snprintf(text[i], 50, "item %d", i); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1583 } |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1584 combobox2->ListAppend(text, 500); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1585 app->Debug("after appending 500 items to combobox\n"); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1586 for(int i = 0; i < 500; i++) |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1587 { |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1588 free(text[i]); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1589 } |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1590 free(text); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1591 // now insert a couple of items |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1592 combobox2->Insert("inserted item 2", 2); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1593 combobox2->Insert("inserted item 5", 5); |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1594 // make a spinbutton |
2931
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1595 DW::SpinButton *spinbutton = new DW::SpinButton(); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1596 combox->PackStart(spinbutton, TRUE, FALSE, 0); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1597 spinbutton->SetLimits(100, 1); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1598 spinbutton->SetPos(30); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1599 |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1600 spinbutton->ConnectValueChanged([this](int value) -> int |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1601 { |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1602 this->app->MessageBox("DWTest", DW_MB_OK, "New value from spinbutton: %d\n", value); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1603 return TRUE; |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1604 }); |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1605 // make a slider |
2931
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1606 DW::Slider *slider = new DW::Slider(FALSE, 11, 0); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1607 combox->PackStart(slider, TRUE, FALSE, 0); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1608 |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1609 // make a percent |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1610 DW::Percent *percent = new DW::Percent(); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1611 combox->PackStart(percent, TRUE, FALSE, 0); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1612 |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1613 topbutton->ConnectClicked([this, combobox1, combobox2, spinbutton, cal]() -> int |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1614 { |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1615 char buf1[101] = {0}; |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1616 char buf2[101] = {0}; |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1617 char buf3[501] = {0}; |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1618 |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1619 unsigned int idx = combobox1->Selected(); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1620 combobox1->GetListText(idx, buf1, 100); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1621 idx = combobox2->Selected(); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1622 combobox2->GetListText(idx, buf2, 100); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1623 unsigned int y,m,d; |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1624 cal->GetDate(&y, &m, &d); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1625 long spvalue = spinbutton->GetPos(); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1626 int len = snprintf(buf3, 500, "spinbutton: %ld\ncombobox1: \"%s\"\ncombobox2: \"%s\"\ncalendar: %d-%d-%d", |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1627 spvalue, |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1628 buf1, buf2, |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1629 y, m, d); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1630 this->app->MessageBox("Values", DW_MB_OK | DW_MB_INFORMATION, buf3); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1631 this->app->SetClipboard(buf3, len); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1632 return 0; |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1633 }); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1634 |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1635 perbutton->ConnectClicked([percent]() -> int |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1636 { |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1637 percent->SetPos(DW_PERCENT_INDETERMINATE); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1638 return TRUE; |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1639 }); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1640 |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1641 slider->ConnectValueChanged([percent](int value) -> int |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1642 { |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1643 percent->SetPos(value * 10); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1644 return TRUE; |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1645 }); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1646 } |
2932
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1647 |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1648 // Page 6 - HTML |
2940
60e90b783cb1
C++: ListBox and ComboBoxes need to call Setup() to configure the handlers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2939
diff
changeset
|
1649 void CreateHTML(DW::Box *notebookbox) { |
2932
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1650 DW::HTML *rawhtml = new DW::HTML(); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1651 if(rawhtml && rawhtml->GetHWND()) |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1652 { |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1653 DW::Box *hbox = new DW::Box(DW_HORZ, 0); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1654 DW::ComboBox *javascript = new DW::ComboBox(); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1655 |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1656 javascript->Append("window.scrollTo(0,500);"); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1657 javascript->Append("window.document.title;"); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1658 javascript->Append("window.navigator.userAgent;"); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1659 |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1660 notebookbox->PackStart(rawhtml, 0, 100, TRUE, FALSE, 0); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1661 rawhtml->Raw("<html><body><center><h1>dwtest</h1></center></body></html>"); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1662 DW::HTML *html = new DW::HTML(); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1663 |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1664 notebookbox->PackStart(hbox, 0, 0, TRUE, FALSE, 0); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1665 |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1666 // Add navigation buttons |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1667 DW::Button *button = new DW::Button("Back"); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1668 hbox->PackStart(button, FALSE, FALSE, 0); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1669 button->ConnectClicked([html]() -> int |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1670 { |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1671 html->Action(DW_HTML_GOBACK); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1672 return TRUE; |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1673 }); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1674 |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1675 button = new DW::Button("Forward"); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1676 hbox->PackStart(button, FALSE, FALSE, 0); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1677 button->ConnectClicked([html]() -> int |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1678 { |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1679 html->Action(DW_HTML_GOFORWARD); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1680 return TRUE; |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1681 }); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1682 |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1683 // Put in some extra space |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1684 hbox->PackStart(0, 5, 1, FALSE, FALSE, 0); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1685 |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1686 button = new DW::Button("Reload"); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1687 hbox->PackStart(button, FALSE, FALSE, 0); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1688 button->ConnectClicked([html]() -> int |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1689 { |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1690 html->Action(DW_HTML_RELOAD); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1691 return TRUE; |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1692 }); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1693 |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1694 // Put in some extra space |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1695 hbox->PackStart(0, 5, 1, FALSE, FALSE, 0); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1696 hbox->PackStart(javascript, TRUE, FALSE, 0); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1697 |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1698 button = new DW::Button("Run"); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1699 hbox->PackStart(button, FALSE, FALSE, 0); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1700 button->ConnectClicked([this, javascript, html]() -> int |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1701 { |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1702 char *script = javascript->GetText(); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1703 |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1704 html->JavascriptRun(script); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1705 this->app->Free(script); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1706 return FALSE; |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1707 }); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1708 javascript->ClickDefault(button); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1709 |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1710 notebookbox->PackStart(html, 0, 100, TRUE, TRUE, 0); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1711 html->URL("https://dbsoft.org/dw_help.php"); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1712 DW::StatusText *htmlstatus = new DW::StatusText("HTML status loading..."); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1713 notebookbox->PackStart(htmlstatus, 100, DW_SIZE_AUTO, TRUE, FALSE, 1); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1714 |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1715 // Connect the signal handlers |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1716 html->ConnectChanged([htmlstatus](int status, char *url) -> int |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1717 { |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1718 const char *statusnames[] = { "none", "started", "redirect", "loading", "complete", NULL }; |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1719 |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1720 if(htmlstatus && url && status < 5) |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1721 { |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1722 int length = (int)strlen(url) + (int)strlen(statusnames[status]) + 10; |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1723 char *text = (char *)calloc(1, length+1); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1724 |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1725 snprintf(text, length, "Status %s: %s", statusnames[status], url); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1726 htmlstatus->SetText(text); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1727 free(text); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1728 } |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1729 return FALSE; |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1730 }); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1731 |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1732 html->ConnectResult([this](int status, char *result, void *script_data) |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1733 { |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1734 this->app->MessageBox("Javascript Result", DW_MB_OK | (status ? DW_MB_ERROR : DW_MB_INFORMATION), |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1735 result ? result : "Javascript result is not a string value"); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1736 return TRUE; |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1737 }); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1738 } |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1739 else |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1740 { |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1741 DW::Text *htmltext = new DW::Text("HTML widget not available."); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1742 notebookbox->PackStart(htmltext, 0, 100, TRUE, TRUE, 0); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1743 } |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1744 } |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1745 |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1746 // Page 7 - ScrollBox |
2940
60e90b783cb1
C++: ListBox and ComboBoxes need to call Setup() to configure the handlers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2939
diff
changeset
|
1747 void CreateScrollBox(DW::Box *notebookbox) { |
2932
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1748 char buf[101] = {0}; |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1749 |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1750 // create a box to pack into the notebook page |
2932
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1751 DW::ScrollBox *scrollbox = new DW::ScrollBox(DW_VERT, 0); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1752 notebookbox->PackStart(scrollbox, 0, 0, TRUE, TRUE, 1); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1753 |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1754 DW::Button *adjbutton = new DW::Button("Show Adjustments", 0); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1755 scrollbox->PackStart(adjbutton, FALSE, FALSE, 0); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1756 adjbutton->ConnectClicked([this, scrollbox]() -> int |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1757 { |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1758 int pos = scrollbox->GetPos(DW_VERT); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1759 int range = scrollbox->GetRange(DW_VERT); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1760 this->app->Debug("Pos %d Range %d\n", pos, range); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1761 return FALSE; |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1762 }); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1763 |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1764 for(int i = 0; i < MAX_WIDGETS; i++) |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1765 { |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1766 DW::Box *tmpbox = new DW::Box(DW_HORZ, 0); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1767 scrollbox->PackStart(tmpbox, 0, 0, TRUE, FALSE, 2); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1768 snprintf(buf, 100, "Label %d", i); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1769 DW::Text *label = new DW::Text(buf ); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1770 tmpbox->PackStart(label, 0, DW_SIZE_AUTO, TRUE, FALSE, 0); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1771 snprintf(buf, 100, "Entry %d", i); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1772 DW::Entryfield *entry = new DW::Entryfield(buf , i); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1773 tmpbox->PackStart(entry, 0, DW_SIZE_AUTO, TRUE, FALSE, 0); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1774 } |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1775 } |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1776 |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1777 // Page 8 - Thread and Event |
2940
60e90b783cb1
C++: ListBox and ComboBoxes need to call Setup() to configure the handlers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2939
diff
changeset
|
1778 void CreateThreadEvent(DW::Box *notebookbox) { |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1779 // create a box to pack into the notebook page |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1780 DW::Box *tmpbox = new DW::Box(DW_VERT, 0); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1781 notebookbox->PackStart(tmpbox, 0, 0, TRUE, TRUE, 1); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1782 |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1783 DW::Button *startbutton = new DW::Button("Start Threads"); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1784 tmpbox->PackStart(startbutton, FALSE, FALSE, 0); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1785 |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1786 // Create the base threading components |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1787 DW::MLE *threadmle = new DW::MLE(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1788 tmpbox->PackStart(threadmle, 1, 1, TRUE, TRUE, 0); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1789 DW::Mutex *mutex = new DW::Mutex(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1790 DW::Event *workevent = new DW::Event(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1791 |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1792 startbutton->ConnectClicked([this, mutex, workevent, threadmle, startbutton]() -> int |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1793 { |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1794 startbutton->Disable(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1795 mutex->Lock(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1796 DW::Event *controlevent = new DW::Event(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1797 workevent->Reset(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1798 finished = FALSE; |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1799 ready = 0; |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1800 UpdateMLE(threadmle, "Starting thread 1\r\n", DW_NULL); |
2935
440de3640522
C++: Fix warnings reported by clang on FreeBSD of unused capture variables.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2934
diff
changeset
|
1801 new DW::Thread([this, mutex, controlevent, workevent, threadmle](DW::Thread *thread) -> void { |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1802 this->RunThread(1, mutex, controlevent, workevent, threadmle); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1803 }); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1804 UpdateMLE(threadmle, "Starting thread 2\r\n", DW_NULL); |
2935
440de3640522
C++: Fix warnings reported by clang on FreeBSD of unused capture variables.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2934
diff
changeset
|
1805 new DW::Thread([this, mutex, controlevent, workevent, threadmle](DW::Thread *thread) -> void { |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1806 this->RunThread(2, mutex, controlevent, workevent, threadmle); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1807 }); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1808 UpdateMLE(threadmle, "Starting thread 3\r\n", DW_NULL); |
2935
440de3640522
C++: Fix warnings reported by clang on FreeBSD of unused capture variables.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2934
diff
changeset
|
1809 new DW::Thread([this, mutex, controlevent, workevent, threadmle](DW::Thread *thread) -> void { |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1810 this->RunThread(3, mutex, controlevent, workevent, threadmle); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1811 }); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1812 UpdateMLE(threadmle, "Starting thread 4\r\n", DW_NULL); |
2935
440de3640522
C++: Fix warnings reported by clang on FreeBSD of unused capture variables.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2934
diff
changeset
|
1813 new DW::Thread([this, mutex, controlevent, workevent, threadmle](DW::Thread *thread) -> void { |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1814 this->RunThread(4, mutex, controlevent, workevent, threadmle); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1815 }); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1816 UpdateMLE(threadmle, "Starting control thread\r\n", DW_NULL); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1817 new DW::Thread([this, startbutton, mutex, controlevent, workevent, threadmle](DW::Thread *thread) -> void { |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1818 this->ControlThread(mutex, controlevent, workevent, threadmle); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1819 startbutton->Enable(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1820 }); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1821 mutex->Unlock(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1822 return FALSE; |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1823 }); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1824 } |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1825 public: |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1826 // Constructor creates the application |
2915
0cde119fc945
C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2914
diff
changeset
|
1827 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
|
1828 // Get our application singleton |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1829 app = DW::App::Init(); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1830 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1831 // Add menus to the window |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1832 CreateMenus(); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1833 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1834 // 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
|
1835 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
|
1836 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
|
1837 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1838 /* First try the current directory */ |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1839 foldericon = app->LoadIcon(foldericonpath); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1840 fileicon = app->LoadIcon(fileiconpath); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1841 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1842 #ifdef PLATFORMFOLDER |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1843 // In case we are running from the build directory... |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1844 // also check the appropriate platform subfolder |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1845 if(!foldericon) |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1846 { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1847 strncpy(foldericonpath, PLATFORMFOLDER "folder", 1024); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1848 foldericon = app->LoadIcon(foldericonpath); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1849 } |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1850 if(!fileicon) |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1851 { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1852 strncpy(fileiconpath, PLATFORMFOLDER "file", 1024); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1853 fileicon = app->LoadIcon(fileiconpath); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1854 } |
2889
4b075e64536c
C++: Add some simple menu code to see if things are working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2883
diff
changeset
|
1855 #endif |
4b075e64536c
C++: Add some simple menu code to see if things are working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2883
diff
changeset
|
1856 |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1857 // Finally try from the platform application directory |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1858 if(!foldericon && !fileicon) |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1859 { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1860 char *appdir = app->GetDir(); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1861 char pathbuff[1025] = {0}; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1862 int pos = (int)strlen(appdir); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1863 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1864 strncpy(pathbuff, appdir, 1024); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1865 pathbuff[pos] = DW_DIR_SEPARATOR; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1866 pos++; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1867 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
|
1868 foldericon = app->LoadIcon(pathbuff); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1869 if(foldericon) |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1870 strncpy(foldericonpath, pathbuff, 1025); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1871 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
|
1872 fileicon = app->LoadIcon(pathbuff); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1873 if(fileicon) |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1874 strncpy(fileiconpath, pathbuff, 1025); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1875 } |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1876 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1877 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
|
1878 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
|
1879 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
|
1880 { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1881 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
|
1882 return TRUE; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1883 }); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1884 |
2917
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1885 // 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
|
1886 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
|
1887 CreateInput(notebookbox); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1888 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
|
1889 notebook->Pack(notebookpage, notebookbox); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1890 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
|
1891 |
2917
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1892 // 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
|
1893 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
|
1894 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
|
1895 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
|
1896 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
|
1897 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
|
1898 |
2929
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1899 // Create Notebook Page 3 - Tree |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1900 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
|
1901 CreateTree(notebookbox); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1902 notebookpage = notebook->PageNew(); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1903 notebook->Pack(notebookpage, notebookbox); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1904 notebook->PageSetText(notebookpage, "tree"); |
2ab97b349958
C++: Add Page 3 - Tree to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2928
diff
changeset
|
1905 |
2930
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1906 // Create Notebook Page 4 - Container |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1907 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
|
1908 CreateContainer(notebookbox); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1909 notebookpage = notebook->PageNew(); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1910 notebook->Pack(notebookpage, notebookbox); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1911 notebook->PageSetText(notebookpage, "container"); |
d8117d36ed27
C++: Add Page 4 - Container to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2929
diff
changeset
|
1912 |
2931
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1913 // Create Notebook Page 5 - Buttons |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1914 notebookbox = new DW::Box(DW_VERT, 5); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1915 CreateButtons(notebookbox); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1916 notebookpage = notebook->PageNew(); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1917 notebook->Pack(notebookpage, notebookbox); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1918 notebook->PageSetText(notebookpage, "buttons"); |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1919 |
2932
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1920 // Create Notebook Page 6 - HTML |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1921 notebookbox = new DW::Box(DW_VERT, 5); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1922 CreateHTML(notebookbox); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1923 notebookpage = notebook->PageNew(); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1924 notebook->Pack(notebookpage, notebookbox); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1925 notebook->PageSetText(notebookpage, "html"); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1926 |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1927 // Create Notebook Page 7 - ScrollBox |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1928 notebookbox = new DW::Box(DW_VERT, 5); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1929 CreateScrollBox(notebookbox); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1930 notebookpage = notebook->PageNew(); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1931 notebook->Pack(notebookpage, notebookbox); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1932 notebook->PageSetText(notebookpage, "scrollbox"); |
3f660f47a45f
C++: Add HTML and ScrollBox pages to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2931
diff
changeset
|
1933 |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1934 // Create Notebook Page 8 - Thread and Event |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1935 notebookbox = new DW::Box(DW_VERT, 5); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1936 CreateThreadEvent(notebookbox); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1937 notebookpage = notebook->PageNew(); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1938 notebook->Pack(notebookpage, notebookbox); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1939 notebook->PageSetText(notebookpage, "thread/event"); |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1940 |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1941 // Finalize the window |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1942 this->SetSize(640, 550); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1943 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1944 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
|
1945 { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1946 this->app->Beep(200, 200); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1947 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1948 // 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
|
1949 return TRUE; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1950 }); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1951 } |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1952 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1953 DW::App *app; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1954 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1955 // Page 1 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1956 DW::Timer *timer; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1957 int cursor_arrow = TRUE; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1958 unsigned long current_color; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1959 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1960 // Page 2 |
2919
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1961 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
|
1962 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
|
1963 DW::ScrollBar *hscrollbar, *vscrollbar; |
2919
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1964 DW::SpinButton *imagexspin, *imageyspin; |
e609aa6a5b93
C++: Attempt to implement page 2 rendering...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2917
diff
changeset
|
1965 DW::CheckBox *imagestretchcheck; |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1966 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1967 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
|
1968 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
|
1969 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
|
1970 int current_row=0,current_col=0; |
2931
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1971 unsigned int render_type = SHAPES_DOUBLE_BUFFERED; |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1972 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1973 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
|
1974 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
|
1975 |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1976 // Page 4 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1977 int mle_point=-1; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1978 |
2933
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1979 // Page 8 |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1980 int finished = FALSE, ready = 0; |
3cdb02171b01
C++: Implement Thread class and add the last page Thread/Event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2932
diff
changeset
|
1981 |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1982 // Miscellaneous |
2917
77e5d6743013
C++: Implement most of Page 2 (Render) except the actual rendering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2916
diff
changeset
|
1983 int menu_enabled = TRUE; |
2931
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1984 HICN fileicon, foldericon; |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1985 char fileiconpath[1025] = "file"; |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1986 char foldericonpath[1025] = "folder"; |
30c1f37713b6
C++: Add page 5 - Buttons to dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2930
diff
changeset
|
1987 |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1988 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1989 int OnDelete() override { |
2915
0cde119fc945
C++: Fix initialization and #define reused strings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2914
diff
changeset
|
1990 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
|
1991 app->MainQuit(); |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1992 } |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1993 return TRUE; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1994 } |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1995 }; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1996 |
2923
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
1997 // 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
|
1998 const char *DWFeatureList[] = { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
1999 "Supports the HTML Widget", |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2000 "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
|
2001 "Supports custom window border sizes", |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2002 "Supports window frame transparency", |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2003 "Supports Dark Mode user interface", |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2004 "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
|
2005 "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
|
2006 "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
|
2007 "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
|
2008 "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
|
2009 "Supports sending system notifications", |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2010 "Supports UTF8 encoded Unicode text", |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2011 "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
|
2012 "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
|
2013 "Supports the Tree Widget", |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2014 "Supports arbitrary window placement", |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2015 "Supports alternate container view modes", |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2016 NULL }; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2017 |
2923
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
2018 // 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
|
2019 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
|
2020 { |
2923
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
2021 // 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
|
2022 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
|
2023 |
2923
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
2024 // 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
|
2025 if(getenv("DW_DARK_MODE")) |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2026 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
|
2027 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2028 #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
|
2029 // 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
|
2030 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
|
2031 #endif |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2032 |
2923
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
2033 // 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
|
2034 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
|
2035 { |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2036 DWFEATURE feat = static_cast<DWFEATURE>(intfeat); |
2938
1184f58135ba
C++: Eliminate remnants of C code I missed while porting to C++.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2935
diff
changeset
|
2037 int result = app->GetFeature(feat); |
2914
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2038 const char *status = "Unsupported"; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2039 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2040 if(result == 0) |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2041 status = "Disabled"; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2042 else if(result > 0) |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2043 status = "Enabled"; |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2044 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2045 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
|
2046 } |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2047 |
8af64b6d75a9
C++: Start rewriting dwtest in C++ as dwtestoo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2895
diff
changeset
|
2048 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
|
2049 window->Show(); |
2861
ef7a414f9b71
Add initial C++ binding header and example program.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2050 |
2869
c873b6f862b9
C++: Add text widget and packing to the window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2868
diff
changeset
|
2051 app->Main(); |
c873b6f862b9
C++: Add text widget and packing to the window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2868
diff
changeset
|
2052 app->Exit(0); |
2861
ef7a414f9b71
Add initial C++ binding header and example program.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2053 |
2869
c873b6f862b9
C++: Add text widget and packing to the window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2868
diff
changeset
|
2054 return 0; |
2861
ef7a414f9b71
Add initial C++ binding header and example program.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2055 } |
2923
969cc3b8bec2
C++: Include the old style function support even when lambdas are available.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2921
diff
changeset
|
2056 #endif |