annotate dw.h @ 2474:a13e6db064f4

Android: Implement thread, semaphore, shared memory API functions. Implement dwmain() entrypoint and include dwtest.c in the build. Like on iOS dw_main() doesn't actually run the message loop... So wait for dw_main() to be called and return to the JVM.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Mon, 19 Apr 2021 23:06:25 +0000
parents aa420e366b2b
children 16d195d46f2a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1897
951356ced7d5 Changes preparing for 3.0 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1893
diff changeset
1 /* $Id$ */
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3 #ifndef _H_DW
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4 #define _H_DW
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5
2000
77e43d71eaa7 Changes to allow mixing C and C++ when including dw.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1991
diff changeset
6 #ifdef __cplusplus
77e43d71eaa7 Changes to allow mixing C and C++ when including dw.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1991
diff changeset
7 extern "C" {
77e43d71eaa7 Changes to allow mixing C and C++ when including dw.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1991
diff changeset
8 #endif
77e43d71eaa7 Changes to allow mixing C and C++ when including dw.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1991
diff changeset
9
15
81833f25b1aa Added new Dynamic Windows build information to the DWEnv struct.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 14
diff changeset
10 /* Dynamic Windows version numbers */
1897
951356ced7d5 Changes preparing for 3.0 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1893
diff changeset
11 #define DW_MAJOR_VERSION 3
2239
95ad22a4da2d Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2236
diff changeset
12 #define DW_MINOR_VERSION 2
624
7bdb2a58c51d Update package version
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 618
diff changeset
13 #define DW_SUB_VERSION 0
15
81833f25b1aa Added new Dynamic Windows build information to the DWEnv struct.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 14
diff changeset
14
2005
a17cc1958369 GTK: Added WebKit2 support for GTK3. Remove dead code from GTK2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2000
diff changeset
15 #define DW_HOME_URL "http://dwindows.netlabs.org"
a17cc1958369 GTK: Added WebKit2 support for GTK3. Remove dead code from GTK2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2000
diff changeset
16
2159
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
17 /* Support for API deprecation in supported compilers */
2163
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
18 #ifndef __has_attribute
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
19 # define __has_attribute(x) 0
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
20 #endif
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
21
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
22 #ifndef __has_extension
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
23 # define __has_extension __has_feature
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
24 #endif
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
25
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
26 #ifndef __has_feature
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
27 # define __has_feature(x) 0
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
28 #endif
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
29
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
30 #ifndef __GNUC_PREREQ
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
31 # if defined(__GNUC__) && defined(__GNUC_MINOR__)
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
32 # define __GNUC_PREREQ(maj, min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
33 # else
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
34 # define __GNUC_PREREQ(maj, min) 0
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
35 # endif
2159
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
36 #endif
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
37
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
38 /* Visual C */
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
39 #if defined(_MSC_VER)
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
40 # if _MSC_VER >= 1400
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
41 # define DW_DEPRECATED(func, message) __declspec(deprecated(message)) func
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
42 # endif
2163
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
43 /* Clang or GCC */
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
44 #elif __has_extension(attribute_deprecated_with_message) || __GNUC_PREREQ(4, 5)
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
45 # define DW_DEPRECATED(func, message) func __attribute__((deprecated (message)))
2166
f98cecae5402 Revisiting gcc versions, decided to use the official documentation for reference:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2163
diff changeset
46 #elif __has_extension(attribute_deprecated) || __GNUC_PREREQ(3, 1)
2163
98db0e81a514 Rewrite the Compiler detection tests for deprecation and unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2159
diff changeset
47 # define DW_DEPRECATED(func, message) func __attribute__((deprecated))
2159
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
48 #endif
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
49
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
50 /* Compiler without deprecation support */
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
51 #ifndef DW_DEPRECATED
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
52 #define DW_DEPRECATED(func, message) func
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
53 #endif
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
54
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
55 /* Support for unused variables in supported compilers */
2166
f98cecae5402 Revisiting gcc versions, decided to use the official documentation for reference:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2163
diff changeset
56 #if __has_attribute(unused) || __GNUC_PREREQ(2, 95)
2159
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
57 #define DW_UNUSED(x) x __attribute__((__unused__))
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
58 #else
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
59 #define DW_UNUSED(x) x
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
60 #endif
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
61
224
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
62 /* These corespond to the entries in the color
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
63 * arrays in the Win32 dw.c, they are also the
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
64 * same as DOS ANSI colors.
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
65 */
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
66 #define DW_CLR_BLACK 0
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
67 #define DW_CLR_DARKRED 1
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
68 #define DW_CLR_DARKGREEN 2
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
69 #define DW_CLR_BROWN 3
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
70 #define DW_CLR_DARKBLUE 4
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
71 #define DW_CLR_DARKPINK 5
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
72 #define DW_CLR_DARKCYAN 6
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
73 #define DW_CLR_PALEGRAY 7
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
74 #define DW_CLR_DARKGRAY 8
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
75 #define DW_CLR_RED 9
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
76 #define DW_CLR_GREEN 10
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
77 #define DW_CLR_YELLOW 11
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
78 #define DW_CLR_BLUE 12
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
79 #define DW_CLR_PINK 13
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
80 #define DW_CLR_CYAN 14
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
81 #define DW_CLR_WHITE 15
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
82 #define DW_CLR_DEFAULT 16
e6571c4e4d3b Use the same DW_CLR_* values on all platforms including OS/2... so I
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 204
diff changeset
83
306
9d13efce2894 Minor OS/2 cleanup. Added #defines for the signals, instead of using the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 302
diff changeset
84 /* Signal handler defines */
9d13efce2894 Minor OS/2 cleanup. Added #defines for the signals, instead of using the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 302
diff changeset
85 #define DW_SIGNAL_CONFIGURE "configure_event"
9d13efce2894 Minor OS/2 cleanup. Added #defines for the signals, instead of using the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 302
diff changeset
86 #define DW_SIGNAL_KEY_PRESS "key_press_event"
9d13efce2894 Minor OS/2 cleanup. Added #defines for the signals, instead of using the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 302
diff changeset
87 #define DW_SIGNAL_BUTTON_PRESS "button_press_event"
9d13efce2894 Minor OS/2 cleanup. Added #defines for the signals, instead of using the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 302
diff changeset
88 #define DW_SIGNAL_BUTTON_RELEASE "button_release_event"
9d13efce2894 Minor OS/2 cleanup. Added #defines for the signals, instead of using the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 302
diff changeset
89 #define DW_SIGNAL_MOTION_NOTIFY "motion_notify_event"
9d13efce2894 Minor OS/2 cleanup. Added #defines for the signals, instead of using the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 302
diff changeset
90 #define DW_SIGNAL_DELETE "delete_event"
9d13efce2894 Minor OS/2 cleanup. Added #defines for the signals, instead of using the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 302
diff changeset
91 #define DW_SIGNAL_EXPOSE "expose_event"
9d13efce2894 Minor OS/2 cleanup. Added #defines for the signals, instead of using the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 302
diff changeset
92 #define DW_SIGNAL_CLICKED "clicked"
9d13efce2894 Minor OS/2 cleanup. Added #defines for the signals, instead of using the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 302
diff changeset
93 #define DW_SIGNAL_ITEM_ENTER "container-select"
9d13efce2894 Minor OS/2 cleanup. Added #defines for the signals, instead of using the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 302
diff changeset
94 #define DW_SIGNAL_ITEM_CONTEXT "container-context"
9d13efce2894 Minor OS/2 cleanup. Added #defines for the signals, instead of using the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 302
diff changeset
95 #define DW_SIGNAL_ITEM_SELECT "tree-select"
9d13efce2894 Minor OS/2 cleanup. Added #defines for the signals, instead of using the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 302
diff changeset
96 #define DW_SIGNAL_LIST_SELECT "item-select"
9d13efce2894 Minor OS/2 cleanup. Added #defines for the signals, instead of using the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 302
diff changeset
97 #define DW_SIGNAL_SET_FOCUS "set-focus"
9d13efce2894 Minor OS/2 cleanup. Added #defines for the signals, instead of using the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 302
diff changeset
98 #define DW_SIGNAL_VALUE_CHANGED "value_changed"
330
b87afd126cb7 Add switch-page signal.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 328
diff changeset
99 #define DW_SIGNAL_SWITCH_PAGE "switch-page"
471
fa05a1a0f9b3 Support for "column-click" signal
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 456
diff changeset
100 #define DW_SIGNAL_COLUMN_CLICK "click-column"
478
ea099ba917c6 Added two new tree functions, get_title and get_parent and finished the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 471
diff changeset
101 #define DW_SIGNAL_TREE_EXPAND "tree-expand"
2006
6f1adc77de02 GTK: Added DW_SIGNAL_HTML_CHANGED and DW_SIGNAL_HTML_RESULT.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2005
diff changeset
102 #define DW_SIGNAL_HTML_CHANGED "html-changed"
6f1adc77de02 GTK: Added DW_SIGNAL_HTML_CHANGED and DW_SIGNAL_HTML_RESULT.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2005
diff changeset
103 #define DW_SIGNAL_HTML_RESULT "html-result"
306
9d13efce2894 Minor OS/2 cleanup. Added #defines for the signals, instead of using the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 302
diff changeset
104
618
a431ee5e049f Added dw_menu_item_set_state() to set checked status of menu item and ability to enable/disable menu items.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 613
diff changeset
105 /* status of menu items */
a431ee5e049f Added dw_menu_item_set_state() to set checked status of menu item and ability to enable/disable menu items.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 613
diff changeset
106 #define DW_MIS_ENABLED 1
a431ee5e049f Added dw_menu_item_set_state() to set checked status of menu item and ability to enable/disable menu items.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 613
diff changeset
107 #define DW_MIS_DISABLED (1 << 1)
a431ee5e049f Added dw_menu_item_set_state() to set checked status of menu item and ability to enable/disable menu items.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 613
diff changeset
108 #define DW_MIS_CHECKED (1 << 2)
a431ee5e049f Added dw_menu_item_set_state() to set checked status of menu item and ability to enable/disable menu items.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 613
diff changeset
109 #define DW_MIS_UNCHECKED (1 << 3)
a431ee5e049f Added dw_menu_item_set_state() to set checked status of menu item and ability to enable/disable menu items.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 613
diff changeset
110
1468
b2235efd9914 Rewrite of window position code for GTK2. DW_BORDER_WIDTH and DW_BORDER_HEIGHT
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1437
diff changeset
111 /* Gravity */
b2235efd9914 Rewrite of window position code for GTK2. DW_BORDER_WIDTH and DW_BORDER_HEIGHT
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1437
diff changeset
112 #define DW_GRAV_TOP 0
b2235efd9914 Rewrite of window position code for GTK2. DW_BORDER_WIDTH and DW_BORDER_HEIGHT
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1437
diff changeset
113 #define DW_GRAV_LEFT 0
b2235efd9914 Rewrite of window position code for GTK2. DW_BORDER_WIDTH and DW_BORDER_HEIGHT
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1437
diff changeset
114 #define DW_GRAV_CENTER 1
b2235efd9914 Rewrite of window position code for GTK2. DW_BORDER_WIDTH and DW_BORDER_HEIGHT
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1437
diff changeset
115 #define DW_GRAV_RIGHT 2
b2235efd9914 Rewrite of window position code for GTK2. DW_BORDER_WIDTH and DW_BORDER_HEIGHT
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1437
diff changeset
116 #define DW_GRAV_BOTTOM 2
b2235efd9914 Rewrite of window position code for GTK2. DW_BORDER_WIDTH and DW_BORDER_HEIGHT
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1437
diff changeset
117 #define DW_GRAV_OBSTACLES (1 << 10)
b2235efd9914 Rewrite of window position code for GTK2. DW_BORDER_WIDTH and DW_BORDER_HEIGHT
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1437
diff changeset
118
634
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 633
diff changeset
119 /* ensure we can build the Gtk port with MingW on Windows */
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 633
diff changeset
120 #if defined(DW_USE_GTK) && defined(__MINGW32__)
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 633
diff changeset
121 # ifndef GDK_WINDOWING_WIN32
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 633
diff changeset
122 # define GDK_WINDOWING_WIN32
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 633
diff changeset
123 # endif
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 633
diff changeset
124 #endif
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 633
diff changeset
125
2473
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
126 #if defined(__OS2__) || (defined(__WIN32__) && !defined(GDK_WINDOWING_WIN32)) || defined(__MAC__) || defined(__IOS__) || defined(__EMX__) || defined(__ANDROID__) || defined(__TEMPLATE__)
416
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
127 /* OS/2, Windows or MacOS */
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
128
1404
56f311dc23f6 Changes to get the library building with Watcom on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1392
diff changeset
129 #ifdef __OS2__
56f311dc23f6 Changes to get the library building with Watcom on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1392
diff changeset
130 # if (defined(__IBMC__) || defined(__WATCOMC__) || defined(_System)) && !defined(API)
56f311dc23f6 Changes to get the library building with Watcom on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1392
diff changeset
131 # define API _System
56f311dc23f6 Changes to get the library building with Watcom on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1392
diff changeset
132 # endif
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
133 #endif
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
134
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
135 /* Used internally */
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
136 #define TYPEBOX 0
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
137 #define TYPEITEM 1
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
138
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
139 #define SIZESTATIC 0
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
140 #define SIZEEXPAND 1
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
141
182
b8caec82a4d2 Minor splitbar fixes on OS/2 and Windows. The splitbar width is now 4
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 177
diff changeset
142 #define SPLITBAR_WIDTH 4
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
143
90
eeb98f881663 Committed the dw_window_set/get_data() changes from the FX tree.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 88
diff changeset
144 typedef struct _user_data
eeb98f881663 Committed the dw_window_set/get_data() changes from the FX tree.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 88
diff changeset
145 {
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
146 struct _user_data *next;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
147 void *data;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
148 char *varname;
90
eeb98f881663 Committed the dw_window_set/get_data() changes from the FX tree.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 88
diff changeset
149 } UserData;
eeb98f881663 Committed the dw_window_set/get_data() changes from the FX tree.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 88
diff changeset
150
267
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
151 /* OS/2 Specific section */
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
152 #if defined(__OS2__) || defined(__EMX__)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
153 #define INCL_DOS
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
154 #define INCL_WIN
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
155 #define INCL_GPI
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
156
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
157 #include <os2.h>
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
158
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
159 #define DW_DT_LEFT DT_LEFT
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
160 #define DW_DT_QUERYEXTENT DT_QUERYEXTENT
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
161 #define DW_DT_UNDERSCORE DT_UNDERSCORE
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
162 #define DW_DT_STRIKEOUT DT_STRIKEOUT
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
163 #define DW_DT_TEXTATTRS DT_TEXTATTRS
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
164 #define DW_DT_EXTERNALLEADING DT_EXTERNALLEADING
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
165 #define DW_DT_CENTER DT_CENTER
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
166 #define DW_DT_RIGHT DT_RIGHT
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
167 #define DW_DT_TOP DT_TOP
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
168 #define DW_DT_VCENTER DT_VCENTER
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
169 #define DW_DT_BOTTOM DT_BOTTOM
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
170 #define DW_DT_HALFTONE DT_HALFTONE
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
171 #define DW_DT_MNEMONIC DT_MNEMONIC
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
172 #define DW_DT_WORDBREAK DT_WORDBREAK
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
173 #define DW_DT_ERASERECT DT_ERASERECT
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
174
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
175 #ifndef FCF_CLOSEBUTTON
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
176 #define FCF_CLOSEBUTTON 0x04000000L
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
177 #endif
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
178
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
179 #define DW_FCF_CLOSEBUTTON 0
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
180 #define DW_FCF_TITLEBAR FCF_TITLEBAR
113
553f3b4f8b5b Added the CLOSEBUTTON flag to the SYSMENU flag on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 90
diff changeset
181 #define DW_FCF_SYSMENU (FCF_SYSMENU | FCF_CLOSEBUTTON)
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
182 #define DW_FCF_MENU FCF_MENU
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
183 #define DW_FCF_SIZEBORDER FCF_SIZEBORDER
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
184 #define DW_FCF_MINBUTTON FCF_MINBUTTON
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
185 #define DW_FCF_MAXBUTTON FCF_MAXBUTTON
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
186 #define DW_FCF_MINMAX FCF_MINMAX
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
187 #define DW_FCF_DLGBORDER FCF_DLGBORDER
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
188 #define DW_FCF_BORDER FCF_BORDER
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
189 #define DW_FCF_TASKLIST FCF_TASKLIST
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
190 #define DW_FCF_NOMOVEWITHOWNER FCF_NOMOVEWITHOWNER
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
191 #define DW_FCF_SYSMODAL FCF_SYSMODAL
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
192 #define DW_FCF_HIDEBUTTON FCF_HIDEBUTTON
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
193 #define DW_FCF_HIDEMAX FCF_HIDEMAX
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
194 #define DW_FCF_AUTOICON FCF_AUTOICON
471
fa05a1a0f9b3 Support for "column-click" signal
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 456
diff changeset
195 #define DW_FCF_MAXIMIZE WS_MAXIMIZED
fa05a1a0f9b3 Support for "column-click" signal
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 456
diff changeset
196 #define DW_FCF_MINIMIZE WS_MINIMIZED
1802
aedf5903db0a Add DW_FCF_TEXTURED window style; relevant only for Mac port.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1795
diff changeset
197 #define DW_FCF_TEXTURED 0
1933
758f49e54566 Enable dw_windows_get_text() to return value of label under GTK.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1924
diff changeset
198 #define DW_FCF_FULLSCREEN 0
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
199
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
200 #define DW_CFA_BITMAPORICON CFA_BITMAPORICON
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
201 #define DW_CFA_STRING CFA_STRING
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
202 #define DW_CFA_ULONG CFA_ULONG
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
203 #define DW_CFA_TIME CFA_TIME
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
204 #define DW_CFA_DATE CFA_DATE
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
205 #define DW_CFA_CENTER CFA_CENTER
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
206 #define DW_CFA_LEFT CFA_LEFT
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
207 #define DW_CFA_RIGHT CFA_RIGHT
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
208 #define DW_CFA_HORZSEPARATOR CFA_HORZSEPARATOR
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
209 #define DW_CFA_SEPARATOR CFA_SEPARATOR
471
fa05a1a0f9b3 Support for "column-click" signal
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 456
diff changeset
210 #define DW_CFA_STRINGANDICON 0
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
211
69
9510897c0b03 Added new container functions, and implemented some missing functionality.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 67
diff changeset
212 #define DW_CRA_SELECTED CRA_SELECTED
9510897c0b03 Added new container functions, and implemented some missing functionality.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 67
diff changeset
213 #define DW_CRA_CURSORED CRA_CURSORED
9510897c0b03 Added new container functions, and implemented some missing functionality.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 67
diff changeset
214
1871
3f571ad9b92e First Mac round of changes aimed at separating the data and text
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1863
diff changeset
215 #define DW_CR_RETDATA (1 << 10)
3f571ad9b92e First Mac round of changes aimed at separating the data and text
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1863
diff changeset
216
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
217 #define DW_LS_MULTIPLESEL LS_MULTIPLESEL
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
218
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
219 #define DW_LIT_NONE -1
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
220
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
221 #define DW_MLE_CASESENSITIVE MLFSEARCH_CASESENSITIVE
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
222
531
79696a852401 Added DW_POINTER_DEFAULT, this will return the pointer to the default
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 525
diff changeset
223 #define DW_POINTER_DEFAULT 0
22
6a246b3bb14f Added tree widgets, fixed some delete event processing, fixed a layout bug
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 15
diff changeset
224 #define DW_POINTER_ARROW SPTR_ARROW
6a246b3bb14f Added tree widgets, fixed some delete event processing, fixed a layout bug
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 15
diff changeset
225 #define DW_POINTER_CLOCK SPTR_WAIT
1004
cb81c08bd8c3 Correct OS/2 question mark pointer #define; should be SPTR_ICONQUESTION despite some online
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 987
diff changeset
226 #define DW_POINTER_QUESTION SPTR_ICONQUESTION
22
6a246b3bb14f Added tree widgets, fixed some delete event processing, fixed a layout bug
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 15
diff changeset
227
763
2cace4e6e69a Added DW_BS_NOBORDER style which can be set on buttons with dw_window_set_style() to make them flat.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 745
diff changeset
228 #define DW_BS_NOBORDER BS_NOBORDER
2cace4e6e69a Added DW_BS_NOBORDER style which can be set on buttons with dw_window_set_style() to make them flat.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 745
diff changeset
229
400
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
230 /* flag values for dw_messagebox() */
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
231 #define DW_MB_OK MB_OK
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
232 #define DW_MB_OKCANCEL MB_OKCANCEL
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
233 #define DW_MB_YESNO MB_YESNO
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
234 #define DW_MB_YESNOCANCEL MB_YESNOCANCEL
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
235
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
236 #define DW_MB_WARNING MB_WARNING
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
237 #define DW_MB_ERROR MB_ERROR
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
238 #define DW_MB_INFORMATION MB_INFORMATION
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
239 #define DW_MB_QUESTION MB_QUERY
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
240
300
4559a2fd2db2 Keypress handler fixes, more need to be done, because I screwed up and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 283
diff changeset
241 /* Virtual Key Codes */
4559a2fd2db2 Keypress handler fixes, more need to be done, because I screwed up and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 283
diff changeset
242 #define VK_LBUTTON VK_BUTTON1
4559a2fd2db2 Keypress handler fixes, more need to be done, because I screwed up and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 283
diff changeset
243 #define VK_RBUTTON VK_BUTTON2
4559a2fd2db2 Keypress handler fixes, more need to be done, because I screwed up and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 283
diff changeset
244 #define VK_MBUTTON VK_BUTTON3
4559a2fd2db2 Keypress handler fixes, more need to be done, because I screwed up and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 283
diff changeset
245 #define VK_RETURN VK_NEWLINE
302
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
246 #define VK_SNAPSHOT VK_PRINTSCRN
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
247 #define VK_CANCEL VK_BREAK
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
248 #define VK_CAPITAL VK_CAPSLOCK
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
249 #define VK_ESCAPE VK_ESC
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
250 #define VK_PRIOR VK_PAGEUP
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
251 #define VK_NEXT VK_PAGEDOWN
300
4559a2fd2db2 Keypress handler fixes, more need to be done, because I screwed up and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 283
diff changeset
252 #define VK_SELECT 133
4559a2fd2db2 Keypress handler fixes, more need to be done, because I screwed up and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 283
diff changeset
253 #define VK_EXECUTE 134
302
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
254 #define VK_PRINT 135
300
4559a2fd2db2 Keypress handler fixes, more need to be done, because I screwed up and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 283
diff changeset
255 #define VK_HELP 136
4559a2fd2db2 Keypress handler fixes, more need to be done, because I screwed up and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 283
diff changeset
256 #define VK_LWIN 137
4559a2fd2db2 Keypress handler fixes, more need to be done, because I screwed up and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 283
diff changeset
257 #define VK_RWIN 138
302
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
258 #define VK_MULTIPLY ('*' + 128)
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
259 #define VK_ADD ('+' + 128)
300
4559a2fd2db2 Keypress handler fixes, more need to be done, because I screwed up and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 283
diff changeset
260 #define VK_SEPARATOR 141
302
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
261 #define VK_SUBTRACT ('-' + 128)
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
262 #define VK_DECIMAL ('.' + 128)
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
263 #define VK_DIVIDE ('/' + 128)
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
264 #define VK_SCROLL VK_SCRLLOCK
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
265 #define VK_LSHIFT VK_SHIFT
300
4559a2fd2db2 Keypress handler fixes, more need to be done, because I screwed up and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 283
diff changeset
266 #define VK_RSHIFT 147
302
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
267 #define VK_LCONTROL VK_CTRL
300
4559a2fd2db2 Keypress handler fixes, more need to be done, because I screwed up and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 283
diff changeset
268 #define VK_RCONTROL 149
302
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
269 #define VK_NUMPAD0 ('0' + 128)
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
270 #define VK_NUMPAD1 ('1' + 128)
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
271 #define VK_NUMPAD2 ('2' + 128)
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
272 #define VK_NUMPAD3 ('3' + 128)
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
273 #define VK_NUMPAD4 ('4' + 128)
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
274 #define VK_NUMPAD5 ('5' + 128)
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
275 #define VK_NUMPAD6 ('6' + 128)
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
276 #define VK_NUMPAD7 ('7' + 128)
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
277 #define VK_NUMPAD8 ('8' + 128)
7c1770e3fe08 Filled in many of the holes on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 300
diff changeset
278 #define VK_NUMPAD9 ('9' + 128)
446
ab549e2f34b9 Fix some OS/2 key definitions.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 441
diff changeset
279 #define VK_BACK VK_BACKSPACE
ab549e2f34b9 Fix some OS/2 key definitions.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 441
diff changeset
280 #define VK_LMENU VK_MENU
ab549e2f34b9 Fix some OS/2 key definitions.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 441
diff changeset
281 #define VK_RMENU VK_MENU
300
4559a2fd2db2 Keypress handler fixes, more need to be done, because I screwed up and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 283
diff changeset
282
1392
943266c86aed Refactoring OS/2 and Windows code... eliminating BubbleButton...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1389
diff changeset
283 #define BUBBLE_HELP_MAX 256
943266c86aed Refactoring OS/2 and Windows code... eliminating BubbleButton...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1389
diff changeset
284
40
88c9c7410c22 Lots of fixes and new functions on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 39
diff changeset
285 typedef struct _window_data {
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
286 PFNWP oldproc;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
287 UserData *root;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
288 HWND clickdefault;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
289 ULONG flags;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
290 void *data;
1392
943266c86aed Refactoring OS/2 and Windows code... eliminating BubbleButton...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1389
diff changeset
291 char bubbletext[BUBBLE_HELP_MAX];
40
88c9c7410c22 Lots of fixes and new functions on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 39
diff changeset
292 } WindowData;
88c9c7410c22 Lots of fixes and new functions on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 39
diff changeset
293
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
294 typedef struct _hpixmap {
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
295 unsigned long width, height;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
296 HDC hdc;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
297 HPS hps;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
298 HBITMAP hbm;
1182
cef7400dcaba Switch to using a dummy window handle for pixmap fonts on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1171
diff changeset
299 HWND handle, font;
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
300 unsigned long transcolor;
1701
cc3aba44943e Oops... missed the header file change in that last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1667
diff changeset
301 int depth;
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
302 } *HPIXMAP;
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
303
328
e00aff2b899e Tree item handles are now of the type HTREEITEM instead of HWND since they
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 325
diff changeset
304 typedef void *HTREEITEM;
185
f55677513954 Updated the menu code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 182
diff changeset
305 typedef HWND HMENUI;
f55677513954 Updated the menu code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 182
diff changeset
306 typedef HMODULE HMOD;
236
5592cdeb29cf Make sure all platforms have the same typedefs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 224
diff changeset
307 typedef unsigned short UWORD;
557
1a210e2f214b Added a bunch of support routines I now own due to the settlement
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 535
diff changeset
308 typedef unsigned long HSHM;
671
c60a4f6cfae8 Implemented icon support on the Mac. In the process created a new HICN type.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 650
diff changeset
309 typedef unsigned long HICN;
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
310
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
311 extern HAB dwhab;
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
312 extern HMQ dwhmq;
1991
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
313
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
314 #include <stdio.h>
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
315
2081
24875681eec5 Added htmlEngine to DWEnv
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2077
diff changeset
316 /* Mostly safe but slow snprintf() for compilers that don't have it...
1991
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
317 * like VisualAge. So we can write safe code and still use VAC to test.
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
318 */
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
319 #if defined(__IBMC__) && !defined(snprintf)
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
320 #include <stdarg.h>
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
321 #include <string.h>
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
322 #include <stdlib.h>
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
323 static int _dw_snprintf(char *str, size_t size, const char *format, ...)
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
324 {
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
325 va_list args;
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
326 char *outbuf = calloc(1, size + strlen(format) + 1024);
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
327 int retval = -1;
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
328
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
329 if(outbuf)
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
330 {
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
331 va_start(args, format);
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
332 vsprintf(outbuf, format, args);
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
333 va_end(args);
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
334 retval = strlen(outbuf);
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
335 strncpy(str, outbuf, size);
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
336 free(outbuf);
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
337 }
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
338 return retval;
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
339 }
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
340 #define snprintf _dw_snprintf
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
341 #endif
d83a86f5fe7f OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1960
diff changeset
342
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
343 #endif
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
344
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2355
diff changeset
345 #if defined(__MAC__) || defined (__IOS__)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2355
diff changeset
346 /* MacOS and iOS specific section */
650
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
347 #include <pthread.h>
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
348 #include <dlfcn.h>
416
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
349
2451
44b77654c406 Add DW_DIR_SEPARATOR for easy access to the separator characters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2410
diff changeset
350 /* Unfortunately we can't import Cocoa.h or
44b77654c406 Add DW_DIR_SEPARATOR for easy access to the separator characters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2410
diff changeset
351 * UIKit.h from C code, so we have to instead
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
352 * use opaque types and use the values from
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2355
diff changeset
353 * the headers here directly without using the
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2355
diff changeset
354 * symbolic names.
650
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
355 */
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
356
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
357 #define TRUE 1
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
358 #define FALSE 0
650
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
359
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
360 typedef void *HWND;
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
361 typedef void *HSHM;
433
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
362 typedef unsigned long ULONG;
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
363 typedef long LONG;
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
364 typedef unsigned short USHORT;
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
365 typedef short SHORT;
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
366 typedef unsigned short UWORD;
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
367 typedef short WORD ;
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
368 typedef unsigned char UCHAR;
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
369 typedef char CHAR;
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
370 typedef unsigned UINT;
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
371 typedef int INT;
650
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
372 typedef pthread_mutex_t *HMTX;
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
373 typedef struct _dw_unix_event {
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
374 pthread_mutex_t mutex;
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
375 pthread_cond_t event;
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
376 pthread_t thread;
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
377 int alive;
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
378 int posted;
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
379 } *HEV;
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
380 typedef pthread_t DWTID;
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
381 typedef void * HMOD;
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
382 struct _dw_unix_shm {
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
383 int fd;
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
384 char *path;
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
385 int sid;
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
386 int size;
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
387 };
416
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
388 typedef void *HTREEITEM;
650
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
389 typedef void *HMENUI;
671
c60a4f6cfae8 Implemented icon support on the Mac. In the process created a new HICN type.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 650
diff changeset
390 typedef void *HICN;
416
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
391
433
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
392 typedef struct _window_data {
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
393 UserData *root;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
394 HWND clickdefault;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
395 ULONG flags;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
396 void *data;
433
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
397 } WindowData;
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
398
612
c5e5671dec8f Modify Calendar widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 596
diff changeset
399 typedef struct _hpixmap {
745
d29fb0d5b291 Fixes for font handling on pixmaps... it needs to use the associated render control to get the fonts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 744
diff changeset
400 unsigned long width, height;
1146
9d97610b2140 Adding dw_pixmap_set_font() which is equivalent to dw_window_set_font() except for pixmaps.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1136
diff changeset
401 void *image, *font;
745
d29fb0d5b291 Fixes for font handling on pixmaps... it needs to use the associated render control to get the fonts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 744
diff changeset
402 HWND handle;
612
c5e5671dec8f Modify Calendar widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 596
diff changeset
403 } *HPIXMAP;
c5e5671dec8f Modify Calendar widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 596
diff changeset
404
697
830e1f3672b9 Added draining mechanism for threads that don't have run loops.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 676
diff changeset
405 void _dw_pool_drain(void);
830e1f3672b9 Added draining mechanism for threads that don't have run loops.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 676
diff changeset
406
2376
e6449653a30b Mac: On ARM (M1) NSTextAlignmentCenter and NSTextAligmnentRight are swapped.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
407 #define DW_DT_LEFT 0 /* NSTextAlignmentLeft */
416
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
408 #define DW_DT_QUERYEXTENT 0
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
409 #define DW_DT_UNDERSCORE 0
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
410 #define DW_DT_STRIKEOUT 0
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
411 #define DW_DT_TEXTATTRS 0
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
412 #define DW_DT_EXTERNALLEADING 0
2376
e6449653a30b Mac: On ARM (M1) NSTextAlignmentCenter and NSTextAligmnentRight are swapped.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
413 #ifdef __aarch64__
e6449653a30b Mac: On ARM (M1) NSTextAlignmentCenter and NSTextAligmnentRight are swapped.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
414 #define DW_DT_CENTER 1 /* NSTextAlignmentCenter */
e6449653a30b Mac: On ARM (M1) NSTextAlignmentCenter and NSTextAligmnentRight are swapped.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
415 #define DW_DT_RIGHT 2 /* NSTextAlignmentRight */
e6449653a30b Mac: On ARM (M1) NSTextAlignmentCenter and NSTextAligmnentRight are swapped.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
416 #else
e6449653a30b Mac: On ARM (M1) NSTextAlignmentCenter and NSTextAligmnentRight are swapped.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
417 #define DW_DT_CENTER 2 /* NSTextAlignmentCenter */
e6449653a30b Mac: On ARM (M1) NSTextAlignmentCenter and NSTextAligmnentRight are swapped.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
418 #define DW_DT_RIGHT 1 /* NSTextAlignmentRight */
e6449653a30b Mac: On ARM (M1) NSTextAlignmentCenter and NSTextAligmnentRight are swapped.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
419 #endif
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
420 #define DW_DT_TOP 0
859
80a88c91ccf6 Implemented vertical centering on text fields.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 839
diff changeset
421 #define DW_DT_VCENTER (1 << 10)
416
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
422 #define DW_DT_BOTTOM 0
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
423 #define DW_DT_HALFTONE 0
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
424 #define DW_DT_MNEMONIC 0
1788
9d499b162fe1 Discovered a breakage in OS/2 functionality when building
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1783
diff changeset
425 #define DW_DT_WORDBREAK (1 << 11)
416
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
426 #define DW_DT_ERASERECT 0
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
427
2376
e6449653a30b Mac: On ARM (M1) NSTextAlignmentCenter and NSTextAligmnentRight are swapped.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
428 #define DW_FCF_CLOSEBUTTON (1 << 1) /* NSWindowStyleMaskClosable */
e6449653a30b Mac: On ARM (M1) NSTextAlignmentCenter and NSTextAligmnentRight are swapped.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
429 #define DW_FCF_TITLEBAR (1 << 0) /* NSWindowStyleMaskTitled */
e6449653a30b Mac: On ARM (M1) NSTextAlignmentCenter and NSTextAligmnentRight are swapped.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
430 #define DW_FCF_SYSMENU (1 << 1) /* NSWindowStyleMaskClosable */
416
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
431 #define DW_FCF_MENU 0
2376
e6449653a30b Mac: On ARM (M1) NSTextAlignmentCenter and NSTextAligmnentRight are swapped.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
432 #define DW_FCF_SIZEBORDER (1 << 3) /* NSWindowStyleMaskResizable */
e6449653a30b Mac: On ARM (M1) NSTextAlignmentCenter and NSTextAligmnentRight are swapped.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
433 #define DW_FCF_MINBUTTON (1 << 2) /* NSWindowStyleMaskMiniaturizable */
650
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
434 #define DW_FCF_MAXBUTTON 0
2376
e6449653a30b Mac: On ARM (M1) NSTextAlignmentCenter and NSTextAligmnentRight are swapped.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
435 #define DW_FCF_MINMAX (1 << 2) /* NSWindowStyleMaskMiniaturizable */
433
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
436 #define DW_FCF_DLGBORDER 0
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
437 #define DW_FCF_BORDER 0
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
438 #define DW_FCF_TASKLIST 0
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
439 #define DW_FCF_NOMOVEWITHOWNER 0
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
440 #define DW_FCF_SYSMODAL 0
650
55b677d460e9 Added initial support for a MacOS Cocoa port.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 643
diff changeset
441 #define DW_FCF_HIDEBUTTON 0
433
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
442 #define DW_FCF_HIDEMAX 0
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
443 #define DW_FCF_AUTOICON 0
471
fa05a1a0f9b3 Support for "column-click" signal
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 456
diff changeset
444 #define DW_FCF_MAXIMIZE 0
fa05a1a0f9b3 Support for "column-click" signal
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 456
diff changeset
445 #define DW_FCF_MINIMIZE 0
2376
e6449653a30b Mac: On ARM (M1) NSTextAlignmentCenter and NSTextAligmnentRight are swapped.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
446 #define DW_FCF_TEXTURED (1 << 8) /* NSWindowStyleMaskTexturedBackground */
1933
758f49e54566 Enable dw_windows_get_text() to return value of label under GTK.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1924
diff changeset
447 #define DW_FCF_FULLSCREEN (1 << 4)
416
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
448
433
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
449 #define DW_CFA_BITMAPORICON 1
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
450 #define DW_CFA_STRING (1 << 1)
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
451 #define DW_CFA_ULONG (1 << 2)
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
452 #define DW_CFA_TIME (1 << 3)
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
453 #define DW_CFA_DATE (1 << 4)
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
454 #define DW_CFA_CENTER (1 << 5)
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
455 #define DW_CFA_LEFT (1 << 6)
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
456 #define DW_CFA_RIGHT (1 << 7)
471
fa05a1a0f9b3 Support for "column-click" signal
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 456
diff changeset
457 #define DW_CFA_STRINGANDICON (1 << 8)
433
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
458 #define DW_CFA_HORZSEPARATOR 0
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
459 #define DW_CFA_SEPARATOR 0
416
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
460
433
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
461 #define DW_CRA_SELECTED 1
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
462 #define DW_CRA_CURSORED (1 << 1)
416
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
463
1871
3f571ad9b92e First Mac round of changes aimed at separating the data and text
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1863
diff changeset
464 #define DW_CR_RETDATA (1 << 10)
3f571ad9b92e First Mac round of changes aimed at separating the data and text
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1863
diff changeset
465
433
f225f16bebbd Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 416
diff changeset
466 #define DW_LS_MULTIPLESEL 1
416
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
467
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
468 #define DW_LIT_NONE -1
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
469
889
238ca78e71a7 Set DW_MLE_CASESENSITIVE to be the NSLiteralSearch value.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 859
diff changeset
470 #define DW_MLE_CASESENSITIVE 2 /* NSLiteralSearch */
763
2cace4e6e69a Added DW_BS_NOBORDER style which can be set on buttons with dw_window_set_style() to make them flat.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 745
diff changeset
471
2cace4e6e69a Added DW_BS_NOBORDER style which can be set on buttons with dw_window_set_style() to make them flat.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 745
diff changeset
472 #define DW_BS_NOBORDER 1
416
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
473
531
79696a852401 Added DW_POINTER_DEFAULT, this will return the pointer to the default
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 525
diff changeset
474 #define DW_POINTER_DEFAULT 0
671
c60a4f6cfae8 Implemented icon support on the Mac. In the process created a new HICN type.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 650
diff changeset
475 #define DW_POINTER_ARROW 1
c60a4f6cfae8 Implemented icon support on the Mac. In the process created a new HICN type.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 650
diff changeset
476 #define DW_POINTER_CLOCK 2
1004
cb81c08bd8c3 Correct OS/2 question mark pointer #define; should be SPTR_ICONQUESTION despite some online
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 987
diff changeset
477 #define DW_POINTER_QUESTION 3
441
b559c06a76c2 Implemented more functionality on MacOS and include the platform define
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 438
diff changeset
478
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
479 #define HWND_DESKTOP ((HWND)0)
416
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
480
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
481 /* flag values for dw_messagebox() */
441
b559c06a76c2 Implemented more functionality on MacOS and include the platform define
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 438
diff changeset
482 #define DW_MB_OK (1 << 1)
b559c06a76c2 Implemented more functionality on MacOS and include the platform define
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 438
diff changeset
483 #define DW_MB_OKCANCEL (1 << 2)
b559c06a76c2 Implemented more functionality on MacOS and include the platform define
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 438
diff changeset
484 #define DW_MB_YESNO (1 << 3)
b559c06a76c2 Implemented more functionality on MacOS and include the platform define
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 438
diff changeset
485 #define DW_MB_YESNOCANCEL (1 << 4)
416
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
486
441
b559c06a76c2 Implemented more functionality on MacOS and include the platform define
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 438
diff changeset
487 #define DW_MB_WARNING (1 << 10)
b559c06a76c2 Implemented more functionality on MacOS and include the platform define
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 438
diff changeset
488 #define DW_MB_ERROR (1 << 11)
b559c06a76c2 Implemented more functionality on MacOS and include the platform define
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 438
diff changeset
489 #define DW_MB_INFORMATION (1 << 12)
b559c06a76c2 Implemented more functionality on MacOS and include the platform define
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 438
diff changeset
490 #define DW_MB_QUESTION (1 << 13)
b559c06a76c2 Implemented more functionality on MacOS and include the platform define
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 438
diff changeset
491
612
c5e5671dec8f Modify Calendar widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 596
diff changeset
492 /* Virtual Key Codes */
723
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
493 #define VK_LBUTTON 0xFF10 /* TODO */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
494 #define VK_RBUTTON 0xFF11 /* TODO */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
495 #define VK_CANCEL 0xFF12 /* TODO */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
496 #define VK_MBUTTON 0xFF13 /* TODO */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
497 #define VK_BACK 0x7F
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
498 #define VK_TAB 0x09
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
499 #define VK_CLEAR 71
768
7a236fdcf4ba Fixed a typo in VK_RETURN and initial implementation of dw_window_click_default().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 765
diff changeset
500 #define VK_RETURN 13
723
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
501 #define VK_MENU 0xF735 /* NSMenuFunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
502 #define VK_PAUSE 0xF730 /* NSPauseFunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
503 #define VK_CAPITAL 57
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
504 #define VK_ESCAPE 0x1B
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
505 #define VK_SPACE ' '
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
506 #define VK_PRIOR 0xF72C /* NSPageUpFunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
507 #define VK_NEXT 0xF72D /* NSPageDownFunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
508 #define VK_END 0xF72B /* NSEndFunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
509 #define VK_HOME 0xF729 /* NSHomeFunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
510 #define VK_LEFT 0xF702 /* NSLeftArrowFunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
511 #define VK_UP 0xF700 /* NSUpArrowFunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
512 #define VK_RIGHT 0xF703 /* NSRightArrowFunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
513 #define VK_DOWN 0xF701 /* NSDownArrowFunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
514 #define VK_SELECT 0xF741 /* NSSelectFunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
515 #define VK_PRINT 0xF738 /* NSPrintFunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
516 #define VK_EXECUTE 0xF742 /* NSExecuteFunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
517 #define VK_SNAPSHOT 0xF72E /* NSPrintScreenFunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
518 #define VK_INSERT 0xF727 /* NSInsertFunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
519 #define VK_DELETE 0xF728 /* NSDeleteFunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
520 #define VK_HELP 0xF746 /* NSHelpFunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
521 #define VK_LWIN 55
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
522 #define VK_RWIN 0xFF14 /* TODO */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
523 #define VK_NUMPAD0 82
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
524 #define VK_NUMPAD1 83
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
525 #define VK_NUMPAD2 84
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
526 #define VK_NUMPAD3 85
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
527 #define VK_NUMPAD4 86
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
528 #define VK_NUMPAD5 87
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
529 #define VK_NUMPAD6 88
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
530 #define VK_NUMPAD7 89
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
531 #define VK_NUMPAD8 91
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
532 #define VK_NUMPAD9 92
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
533 #define VK_MULTIPLY 67
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
534 #define VK_ADD 69
724
41080d22edc8 Couple more fixes to keyhandling... committed before I finished what I was doing...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 723
diff changeset
535 #define VK_SEPARATOR 0xFF15 /* TODO */
723
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
536 #define VK_SUBTRACT 78
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
537 #define VK_DECIMAL 65
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
538 #define VK_DIVIDE 75
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
539 #define VK_F1 0xF704 /* NSF1FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
540 #define VK_F2 0xF705 /* NSF2FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
541 #define VK_F3 0xF706 /* NSF3FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
542 #define VK_F4 0xF707 /* NSF4FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
543 #define VK_F5 0xF708 /* NSF5FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
544 #define VK_F6 0xF709 /* NSF6FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
545 #define VK_F7 0xF70A /* NSF7FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
546 #define VK_F8 0xF70B /* NSF8FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
547 #define VK_F9 0xF70C /* NSF9FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
548 #define VK_F10 0xF70D /* NSF10FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
549 #define VK_F11 0xF70E /* NSF11FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
550 #define VK_F12 0xF70F /* NSF12FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
551 #define VK_F13 0xF710 /* NSF13FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
552 #define VK_F14 0xF711 /* NSF14FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
553 #define VK_F15 0xF712 /* NSF15FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
554 #define VK_F16 0xF713 /* NSF16FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
555 #define VK_F17 0xF714 /* NSF17FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
556 #define VK_F18 0xF715 /* NSF18FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
557 #define VK_F19 0xF716 /* NSF19FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
558 #define VK_F20 0xF717 /* NSF20FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
559 #define VK_F21 0xF718 /* NSF21FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
560 #define VK_F22 0xF719 /* NSF22FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
561 #define VK_F23 0xF71A /* NSF23FunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
562 #define VK_F24 0xF71B /* NSF24FunctionKey */
724
41080d22edc8 Couple more fixes to keyhandling... committed before I finished what I was doing...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 723
diff changeset
563 #define VK_NUMLOCK 0xFF16 /* TODO */
723
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
564 #define VK_SCROLL 0xF72F /* NSScrollLockFunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
565 #define VK_LSHIFT 56
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
566 #define VK_RSHIFT 60
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
567 #define VK_LCONTROL 59
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
568 #define VK_RCONTROL 62
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
569 #define VK_LMENU 0xF735 /* NSMenuFunctionKey */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
570 #define VK_RMENU 0xF735 /* NSMenuFunctionKey */
612
c5e5671dec8f Modify Calendar widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 596
diff changeset
571
c5e5671dec8f Modify Calendar widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 596
diff changeset
572 /* Key Modifiers */
723
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
573 #define KC_CTRL (1 << 18) /* NSControlKeyMask */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
574 #define KC_SHIFT (1 << 17) /* NSShiftKeyMask */
37c8d2b4cec5 Initial key press event/signal handling... does not seem to trap on all controls...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 697
diff changeset
575 #define KC_ALT (1 << 19) /* NSAlternateKeyMask */
416
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
576 #endif
a4197ddfc50d Changes to calculate groupbox border widths and take this into account
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 400
diff changeset
577
267
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
578 /* Windows specific section */
2225
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
579 #if defined(__WIN32__)
1960
22e3e829be13 Win: Switch to using winsock 2.x, this will remove support for ancient versions of Windows like 95 and NT 3.5 and older...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1933
diff changeset
580 #include <winsock2.h>
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
581 #include <windows.h>
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
582 #include <commctrl.h>
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
583
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
584 #if defined(MSVC) && !defined(API)
1663
a76fb5f1a6c8 Fixes for building in Unicode mode with MinGW on Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1658
diff changeset
585 # if defined(__MINGW32__) && defined(BUILD_DLL)
a76fb5f1a6c8 Fixes for building in Unicode mode with MinGW on Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1658
diff changeset
586 # define API _cdecl __declspec(dllexport)
571
828e6a66c5c5 Add dw_listbox_list_append()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 567
diff changeset
587 # else
828e6a66c5c5 Add dw_listbox_list_append()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 567
diff changeset
588 # define API _cdecl
828e6a66c5c5 Add dw_listbox_list_append()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 567
diff changeset
589 #endif
1858
952a41463240 Make sure callbacks have their calling convention specified explicitly on Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1853
diff changeset
590 #define DWSIGNAL _cdecl
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
591 #endif
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
592
1788
9d499b162fe1 Discovered a breakage in OS/2 functionality when building
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1783
diff changeset
593 #define DW_DT_LEFT SS_LEFTNOWORDWRAP
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
594 #define DW_DT_QUERYEXTENT 0
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
595 #define DW_DT_UNDERSCORE 0
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
596 #define DW_DT_STRIKEOUT 0
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
597 #define DW_DT_TEXTATTRS 0
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
598 #define DW_DT_EXTERNALLEADING 0
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
599 #define DW_DT_CENTER SS_CENTER
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
600 #define DW_DT_RIGHT SS_RIGHT
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
601 #define DW_DT_TOP 0
1790
209c57a14b09 Rewrite dw_window_set_style() on Windows to properly handle the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1788
diff changeset
602 #define DW_DT_VCENTER (1 << 29)
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
603 #define DW_DT_BOTTOM 0
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
604 #define DW_DT_HALFTONE 0
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
605 #define DW_DT_MNEMONIC 0
1790
209c57a14b09 Rewrite dw_window_set_style() on Windows to properly handle the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1788
diff changeset
606 #define DW_DT_WORDBREAK (1 << 28)
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
607 #define DW_DT_ERASERECT 0
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
608
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
609 #define DW_FCF_CLOSEBUTTON 0
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
610 #define DW_FCF_TITLEBAR WS_CAPTION
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
611 #define DW_FCF_SYSMENU WS_SYSMENU
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
612 #define DW_FCF_MENU 0
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
613 #define DW_FCF_SIZEBORDER WS_THICKFRAME
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
614 #define DW_FCF_MINBUTTON WS_MINIMIZEBOX
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
615 #define DW_FCF_MAXBUTTON WS_MAXIMIZEBOX
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
616 #define DW_FCF_MINMAX (WS_MINIMIZEBOX|WS_MAXIMIZEBOX)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
617 #define DW_FCF_DLGBORDER WS_DLGFRAME
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
618 #define DW_FCF_BORDER WS_BORDER
1535
2913bb58f439 Added DW_FCF_COMPOSITED frame creation flag, used only on Windows currently...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1528
diff changeset
619 #define DW_FCF_TASKLIST (1 << 1)
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
620 #define DW_FCF_NOMOVEWITHOWNER 0
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
621 #define DW_FCF_SYSMODAL 0
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
622 #define DW_FCF_HIDEBUTTON WS_MINIMIZEBOX
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
623 #define DW_FCF_HIDEMAX (WS_MINIMIZEBOX|WS_MAXIMIZEBOX)
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
624 #define DW_FCF_AUTOICON 0
471
fa05a1a0f9b3 Support for "column-click" signal
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 456
diff changeset
625 #define DW_FCF_MAXIMIZE WS_MAXIMIZE
fa05a1a0f9b3 Support for "column-click" signal
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 456
diff changeset
626 #define DW_FCF_MINIMIZE WS_MINIMIZE
1535
2913bb58f439 Added DW_FCF_COMPOSITED frame creation flag, used only on Windows currently...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1528
diff changeset
627 #define DW_FCF_COMPOSITED 1
1802
aedf5903db0a Add DW_FCF_TEXTURED window style; relevant only for Mac port.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1795
diff changeset
628 #define DW_FCF_TEXTURED 0
1933
758f49e54566 Enable dw_windows_get_text() to return value of label under GTK.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1924
diff changeset
629 #define DW_FCF_FULLSCREEN (1 << 2)
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
630
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
631 #define DW_CFA_BITMAPORICON 1
69
9510897c0b03 Added new container functions, and implemented some missing functionality.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 67
diff changeset
632 #define DW_CFA_STRING (1 << 1)
9510897c0b03 Added new container functions, and implemented some missing functionality.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 67
diff changeset
633 #define DW_CFA_ULONG (1 << 2)
9510897c0b03 Added new container functions, and implemented some missing functionality.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 67
diff changeset
634 #define DW_CFA_TIME (1 << 3)
9510897c0b03 Added new container functions, and implemented some missing functionality.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 67
diff changeset
635 #define DW_CFA_DATE (1 << 4)
9510897c0b03 Added new container functions, and implemented some missing functionality.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 67
diff changeset
636 #define DW_CFA_CENTER (1 << 5)
9510897c0b03 Added new container functions, and implemented some missing functionality.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 67
diff changeset
637 #define DW_CFA_LEFT (1 << 6)
9510897c0b03 Added new container functions, and implemented some missing functionality.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 67
diff changeset
638 #define DW_CFA_RIGHT (1 << 7)
471
fa05a1a0f9b3 Support for "column-click" signal
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 456
diff changeset
639 #define DW_CFA_STRINGANDICON (1 << 8)
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
640 #define DW_CFA_HORZSEPARATOR 0
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
641 #define DW_CFA_SEPARATOR 0
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
642
69
9510897c0b03 Added new container functions, and implemented some missing functionality.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 67
diff changeset
643 #define DW_CRA_SELECTED LVNI_SELECTED
9510897c0b03 Added new container functions, and implemented some missing functionality.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 67
diff changeset
644 #define DW_CRA_CURSORED LVNI_FOCUSED
9510897c0b03 Added new container functions, and implemented some missing functionality.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 67
diff changeset
645
1871
3f571ad9b92e First Mac round of changes aimed at separating the data and text
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1863
diff changeset
646 #define DW_CR_RETDATA (1 << 10)
3f571ad9b92e First Mac round of changes aimed at separating the data and text
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1863
diff changeset
647
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
648 #define DW_LS_MULTIPLESEL LBS_MULTIPLESEL
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
649
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
650 #define DW_LIT_NONE -1
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
651
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
652 #define DW_MLE_CASESENSITIVE 1
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
653
763
2cace4e6e69a Added DW_BS_NOBORDER style which can be set on buttons with dw_window_set_style() to make them flat.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 745
diff changeset
654 #define DW_BS_NOBORDER BS_FLAT
2cace4e6e69a Added DW_BS_NOBORDER style which can be set on buttons with dw_window_set_style() to make them flat.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 745
diff changeset
655
531
79696a852401 Added DW_POINTER_DEFAULT, this will return the pointer to the default
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 525
diff changeset
656 #define DW_POINTER_DEFAULT 0
22
6a246b3bb14f Added tree widgets, fixed some delete event processing, fixed a layout bug
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 15
diff changeset
657 #define DW_POINTER_ARROW 32512
6a246b3bb14f Added tree widgets, fixed some delete event processing, fixed a layout bug
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 15
diff changeset
658 #define DW_POINTER_CLOCK 32514
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
659 #define DW_POINTER_QUESTION 32651
22
6a246b3bb14f Added tree widgets, fixed some delete event processing, fixed a layout bug
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 15
diff changeset
660
400
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
661 /* flag values for dw_messagebox() */
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
662 #define DW_MB_OK MB_OK
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
663 #define DW_MB_OKCANCEL MB_OKCANCEL
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
664 #define DW_MB_YESNO MB_YESNO
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
665 #define DW_MB_YESNOCANCEL MB_YESNOCANCEL
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
666
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
667 #define DW_MB_WARNING MB_ICONWARNING
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
668 #define DW_MB_ERROR MB_ICONERROR
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
669 #define DW_MB_INFORMATION MB_ICONINFORMATION
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
670 #define DW_MB_QUESTION MB_ICONQUESTION
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
671
267
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
672 /* Key Modifiers */
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
673 #define KC_CTRL (1)
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
674 #define KC_SHIFT (1 << 1)
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
675 #define KC_ALT (1 << 2)
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
676
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
677 typedef struct _color {
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
678 int fore;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
679 int back;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
680 HWND combo, buddy;
2135
d9720d48d61e Win: Code cleanup, create internal helper functions _dw_window_get_cinfo() and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2132
diff changeset
681 ULONG style;
d9720d48d61e Win: Code cleanup, create internal helper functions _dw_window_get_cinfo() and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2132
diff changeset
682 RECT rect;
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
683 HWND clickdefault;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
684 HBRUSH hbrush;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
685 HFONT hfont;
2141
709f8bfa711f Win: Fix a problem where full dark mode was functioning as forced.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2135
diff changeset
686 HMENU hmenu;
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
687 char fontname[128];
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
688 WNDPROC pOldProc;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
689 UserData *root;
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
690 } ColorInfo;
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
691
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
692 typedef struct _notebookpage {
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
693 ColorInfo cinfo;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
694 TC_ITEM item;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
695 HWND hwnd;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
696 int realid;
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
697 } NotebookPage;
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
698
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
699 typedef HANDLE HMTX;
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
700 typedef HANDLE HEV;
157
a07dd2e819f3 Added module support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 155
diff changeset
701 typedef HANDLE HMOD;
557
1a210e2f214b Added a bunch of support routines I now own due to the settlement
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 535
diff changeset
702 typedef HANDLE HSHM;
975
52cd98b7e45c Changed to using HANDLE as the base type for HICN on Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 960
diff changeset
703 typedef HANDLE HICN;
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
704
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
705 typedef struct _container {
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
706 ColorInfo cinfo;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
707 ULONG *flags;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
708 ULONG columns;
1212
5271d5cb27ac Implemented dw_container_set_row_bg() on Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1206
diff changeset
709 COLORREF odd, even;
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
710 } ContainerInfo;
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
711
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
712 typedef struct _hpixmap {
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
713 unsigned long width, height;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
714 HBITMAP hbm;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
715 HDC hdc;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
716 unsigned long transcolor;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
717 HWND handle;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
718 void *bits;
960
841b66d2d1b9 Added initial support for transparent pixmap/bitmaps on Windows...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 889
diff changeset
719 unsigned long depth;
1146
9d97610b2140 Adding dw_pixmap_set_font() which is equivalent to dw_window_set_font() except for pixmaps.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1136
diff changeset
720 HFONT font;
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
721 } *HPIXMAP;
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
722
238
13d3de3f1e83 Rewrote the menu code to not return structs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 236
diff changeset
723 typedef HWND HMENUI;
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
724 #endif
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
725
2473
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
726 /* Android section */
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
727 #if defined(__ANDROID__)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
728 #include <stdio.h>
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
729 #include <stdlib.h>
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
730 #include <stdarg.h>
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
731 #include <limits.h>
2474
a13e6db064f4 Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2473
diff changeset
732 #include <pthread.h>
2473
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
733
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
734 /* Can remove this for your port when you know where MAX_PATH is */
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
735 #ifndef MAX_PATH
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
736 #define MAX_PATH 260
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
737 #endif
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
738
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
739 #define TRUE 1
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
740 #define FALSE 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
741
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
742 typedef void *HWND;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
743
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
744 typedef unsigned long ULONG;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
745 typedef long LONG;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
746 typedef unsigned short USHORT;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
747 typedef short SHORT;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
748 typedef unsigned short UWORD;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
749 typedef short WORD ;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
750 typedef unsigned char UCHAR;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
751 typedef char CHAR;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
752 typedef unsigned UINT;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
753 typedef int INT;
2474
a13e6db064f4 Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2473
diff changeset
754 typedef pthread_mutex_t *HMTX;
a13e6db064f4 Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2473
diff changeset
755 typedef struct _dw_unix_event {
a13e6db064f4 Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2473
diff changeset
756 pthread_mutex_t mutex;
a13e6db064f4 Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2473
diff changeset
757 pthread_cond_t event;
a13e6db064f4 Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2473
diff changeset
758 pthread_t thread;
a13e6db064f4 Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2473
diff changeset
759 int alive;
a13e6db064f4 Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2473
diff changeset
760 int posted;
a13e6db064f4 Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2473
diff changeset
761 } *HEV;
a13e6db064f4 Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2473
diff changeset
762 typedef pthread_t DWTID;
a13e6db064f4 Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2473
diff changeset
763 typedef void * HMOD;
a13e6db064f4 Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2473
diff changeset
764 struct _dw_unix_shm {
a13e6db064f4 Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2473
diff changeset
765 int fd;
a13e6db064f4 Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2473
diff changeset
766 char *path;
a13e6db064f4 Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2473
diff changeset
767 int sid;
a13e6db064f4 Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2473
diff changeset
768 int size;
a13e6db064f4 Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2473
diff changeset
769 };
2473
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
770 typedef void *HSHM;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
771 typedef void *HTREEITEM;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
772 typedef HWND HMENUI;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
773 typedef unsigned long HICN;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
774
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
775 typedef struct _window_data {
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
776 UserData *root;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
777 HWND clickdefault;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
778 ULONG flags;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
779 void *data;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
780 } WindowData;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
781
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
782 typedef struct _hpixmap {
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
783 unsigned long width, height;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
784 /* ?? *pixmap; */
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
785 HWND handle;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
786 } *HPIXMAP;
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
787
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
788 #define DW_DT_LEFT 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
789 #define DW_DT_QUERYEXTENT 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
790 #define DW_DT_UNDERSCORE 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
791 #define DW_DT_STRIKEOUT 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
792 #define DW_DT_TEXTATTRS 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
793 #define DW_DT_EXTERNALLEADING 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
794 #define DW_DT_CENTER 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
795 #define DW_DT_RIGHT 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
796 #define DW_DT_TOP 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
797 #define DW_DT_VCENTER 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
798 #define DW_DT_BOTTOM 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
799 #define DW_DT_HALFTONE 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
800 #define DW_DT_MNEMONIC 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
801 #define DW_DT_WORDBREAK 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
802 #define DW_DT_ERASERECT 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
803
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
804 #define DW_FCF_CLOSEBUTTON 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
805 #define DW_FCF_TITLEBAR 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
806 #define DW_FCF_SYSMENU 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
807 #define DW_FCF_MENU 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
808 #define DW_FCF_SIZEBORDER 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
809 #define DW_FCF_MINBUTTON 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
810 #define DW_FCF_MAXBUTTON 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
811 #define DW_FCF_MINMAX (DW_FCF_MINBUTTON|DW_FCF_MAXBUTTON)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
812 #define DW_FCF_DLGBORDER 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
813 #define DW_FCF_BORDER 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
814 #define DW_FCF_TASKLIST 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
815 #define DW_FCF_NOMOVEWITHOWNER 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
816 #define DW_FCF_SYSMODAL 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
817 #define DW_FCF_HIDEBUTTON 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
818 #define DW_FCF_HIDEMAX 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
819 #define DW_FCF_AUTOICON 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
820 #define DW_FCF_MAXIMIZE 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
821 #define DW_FCF_MINIMIZE 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
822 #define DW_FCF_TEXTURED 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
823 #define DW_FCF_FULLSCREEN 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
824
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
825 #define DW_CFA_BITMAPORICON 1
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
826 #define DW_CFA_STRING (1 << 1)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
827 #define DW_CFA_ULONG (1 << 2)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
828 #define DW_CFA_TIME (1 << 3)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
829 #define DW_CFA_DATE (1 << 4)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
830 #define DW_CFA_CENTER (1 << 5)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
831 #define DW_CFA_LEFT (1 << 6)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
832 #define DW_CFA_RIGHT (1 << 7)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
833 #define DW_CFA_STRINGANDICON (1 << 8)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
834 #define DW_CFA_HORZSEPARATOR 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
835 #define DW_CFA_SEPARATOR 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
836
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
837 #define DW_CRA_SELECTED 1
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
838 #define DW_CRA_CURSORED (1 << 1)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
839
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
840 #define DW_CR_RETDATA (1 << 10)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
841
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
842 #define DW_LS_MULTIPLESEL 1
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
843
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
844 #define DW_LIT_NONE -1
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
845
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
846 #define DW_MLE_CASESENSITIVE 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
847
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
848 #define DW_BS_NOBORDER 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
849
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
850 #define DW_POINTER_DEFAULT 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
851 #define DW_POINTER_ARROW 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
852 #define DW_POINTER_CLOCK 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
853 #define DW_POINTER_QUESTION 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
854
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
855 #define HWND_DESKTOP ((HWND)0)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
856
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
857 /* flag values for dw_messagebox() */
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
858 #define DW_MB_OK (1 << 1)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
859 #define DW_MB_OKCANCEL (1 << 2)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
860 #define DW_MB_YESNO (1 << 3)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
861 #define DW_MB_YESNOCANCEL (1 << 4)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
862
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
863 #define DW_MB_WARNING (1 << 10)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
864 #define DW_MB_ERROR (1 << 11)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
865 #define DW_MB_INFORMATION (1 << 12)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
866 #define DW_MB_QUESTION (1 << 13)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
867
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
868 /* Virtual Key Codes */
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
869 #define VK_LBUTTON 0
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
870 #define VK_RBUTTON 1
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
871 #define VK_CANCEL 2
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
872 #define VK_MBUTTON 3
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
873 #define VK_BACK 4
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
874 #define VK_TAB 5
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
875 #define VK_CLEAR 6
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
876 #define VK_RETURN 7
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
877 #define VK_MENU 8
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
878 #define VK_PAUSE 9
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
879 #define VK_CAPITAL 10
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
880 #define VK_ESCAPE 11
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
881 #define VK_SPACE 12
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
882 #define VK_PRIOR 13
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
883 #define VK_NEXT 14
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
884 #define VK_END 15
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
885 #define VK_HOME 16
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
886 #define VK_LEFT 17
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
887 #define VK_UP 18
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
888 #define VK_RIGHT 19
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
889 #define VK_DOWN 20
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
890 #define VK_SELECT 21
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
891 #define VK_PRINT 22
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
892 #define VK_EXECUTE 23
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
893 #define VK_SNAPSHOT 24
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
894 #define VK_INSERT 25
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
895 #define VK_DELETE 26
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
896 #define VK_HELP 27
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
897 #define VK_LWIN 28
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
898 #define VK_RWIN 29
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
899 #define VK_NUMPAD0 30
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
900 #define VK_NUMPAD1 31
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
901 #define VK_NUMPAD2 32
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
902 #define VK_NUMPAD3 33
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
903 #define VK_NUMPAD4 34
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
904 #define VK_NUMPAD5 35
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
905 #define VK_NUMPAD6 36
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
906 #define VK_NUMPAD7 37
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
907 #define VK_NUMPAD8 38
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
908 #define VK_NUMPAD9 39
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
909 #define VK_MULTIPLY 40
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
910 #define VK_ADD 41
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
911 #define VK_SEPARATOR 42
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
912 #define VK_SUBTRACT 43
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
913 #define VK_DECIMAL 44
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
914 #define VK_DIVIDE 45
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
915 #define VK_F1 46
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
916 #define VK_F2 47
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
917 #define VK_F3 48
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
918 #define VK_F4 49
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
919 #define VK_F5 50
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
920 #define VK_F6 51
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
921 #define VK_F7 52
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
922 #define VK_F8 53
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
923 #define VK_F9 54
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
924 #define VK_F10 55
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
925 #define VK_F11 56
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
926 #define VK_F12 57
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
927 #define VK_F13 58
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
928 #define VK_F14 59
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
929 #define VK_F15 60
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
930 #define VK_F16 61
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
931 #define VK_F17 62
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
932 #define VK_F18 63
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
933 #define VK_F19 64
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
934 #define VK_F20 65
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
935 #define VK_F21 66
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
936 #define VK_F22 67
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
937 #define VK_F23 68
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
938 #define VK_F24 69
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
939 #define VK_NUMLOCK 70
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
940 #define VK_SCROLL 71
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
941 #define VK_LSHIFT 72
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
942 #define VK_RSHIFT 73
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
943 #define VK_LCONTROL 74
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
944 #define VK_RCONTROL 75
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
945 #define VK_LMENU 76
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
946 #define VK_RMENU 77
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
947
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
948 /* Key Modifiers */
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
949 #define KC_CTRL (1)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
950 #define KC_SHIFT (1 << 1)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
951 #define KC_ALT (1 << 2)
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
952 #endif
aa420e366b2b Android: Initial skeletal commit for Android support, almost nothing implemented...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2451
diff changeset
953
2225
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
954 /* Template section, framework for new platform ports */
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
955 #if defined(__TEMPLATE__)
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
956 #include <stdio.h>
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
957 #include <stdlib.h>
2225
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
958 #include <stdarg.h>
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
959 #include <limits.h>
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
960
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
961 /* Can remove this for your port when you know where MAX_PATH is */
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
962 #ifndef MAX_PATH
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
963 #define MAX_PATH 260
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
964 #endif
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
965
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
966 #define TRUE 1
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
967 #define FALSE 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
968
2225
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
969 typedef void *HWND;
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
970
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
971 typedef unsigned long ULONG;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
972 typedef long LONG;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
973 typedef unsigned short USHORT;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
974 typedef short SHORT;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
975 typedef unsigned short UWORD;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
976 typedef short WORD ;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
977 typedef unsigned char UCHAR;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
978 typedef char CHAR;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
979 typedef unsigned UINT;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
980 typedef int INT;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
981 typedef void *HMTX;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
982 typedef void *HEV;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
983 typedef void *HSHM;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
984 typedef void *HMOD;
2225
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
985 typedef void *HTREEITEM;
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
986 typedef HWND HMENUI;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
987 typedef int DWTID;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
988 typedef unsigned long HICN;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
989
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
990 typedef struct _window_data {
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
991 UserData *root;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
992 HWND clickdefault;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
993 ULONG flags;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
994 void *data;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
995 } WindowData;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
996
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
997 typedef struct _hpixmap {
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
998 unsigned long width, height;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
999 /* ?? *pixmap; */
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1000 HWND handle;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1001 } *HPIXMAP;
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1002
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1003 #define DW_DT_LEFT 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1004 #define DW_DT_QUERYEXTENT 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1005 #define DW_DT_UNDERSCORE 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1006 #define DW_DT_STRIKEOUT 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1007 #define DW_DT_TEXTATTRS 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1008 #define DW_DT_EXTERNALLEADING 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1009 #define DW_DT_CENTER 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1010 #define DW_DT_RIGHT 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1011 #define DW_DT_TOP 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1012 #define DW_DT_VCENTER 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1013 #define DW_DT_BOTTOM 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1014 #define DW_DT_HALFTONE 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1015 #define DW_DT_MNEMONIC 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1016 #define DW_DT_WORDBREAK 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1017 #define DW_DT_ERASERECT 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1018
2225
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1019 #define DW_FCF_CLOSEBUTTON 0
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1020 #define DW_FCF_TITLEBAR 0
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1021 #define DW_FCF_SYSMENU 0
2225
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1022 #define DW_FCF_MENU 0
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1023 #define DW_FCF_SIZEBORDER 0
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1024 #define DW_FCF_MINBUTTON 0
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1025 #define DW_FCF_MAXBUTTON 0
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1026 #define DW_FCF_MINMAX (DW_FCF_MINBUTTON|DW_FCF_MAXBUTTON)
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1027 #define DW_FCF_DLGBORDER 0
2225
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1028 #define DW_FCF_BORDER 0
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1029 #define DW_FCF_TASKLIST 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1030 #define DW_FCF_NOMOVEWITHOWNER 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1031 #define DW_FCF_SYSMODAL 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1032 #define DW_FCF_HIDEBUTTON 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1033 #define DW_FCF_HIDEMAX 0
2225
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1034 #define DW_FCF_AUTOICON 0
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1035 #define DW_FCF_MAXIMIZE 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1036 #define DW_FCF_MINIMIZE 0
1802
aedf5903db0a Add DW_FCF_TEXTURED window style; relevant only for Mac port.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1795
diff changeset
1037 #define DW_FCF_TEXTURED 0
1933
758f49e54566 Enable dw_windows_get_text() to return value of label under GTK.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1924
diff changeset
1038 #define DW_FCF_FULLSCREEN 0
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1039
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1040 #define DW_CFA_BITMAPORICON 1
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1041 #define DW_CFA_STRING (1 << 1)
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1042 #define DW_CFA_ULONG (1 << 2)
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1043 #define DW_CFA_TIME (1 << 3)
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1044 #define DW_CFA_DATE (1 << 4)
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1045 #define DW_CFA_CENTER (1 << 5)
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1046 #define DW_CFA_LEFT (1 << 6)
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1047 #define DW_CFA_RIGHT (1 << 7)
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1048 #define DW_CFA_STRINGANDICON (1 << 8)
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1049 #define DW_CFA_HORZSEPARATOR 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1050 #define DW_CFA_SEPARATOR 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1051
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1052 #define DW_CRA_SELECTED 1
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1053 #define DW_CRA_CURSORED (1 << 1)
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1054
1871
3f571ad9b92e First Mac round of changes aimed at separating the data and text
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1863
diff changeset
1055 #define DW_CR_RETDATA (1 << 10)
3f571ad9b92e First Mac round of changes aimed at separating the data and text
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1863
diff changeset
1056
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1057 #define DW_LS_MULTIPLESEL 1
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1058
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1059 #define DW_LIT_NONE -1
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1060
2225
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1061 #define DW_MLE_CASESENSITIVE 0
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1062
2225
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1063 #define DW_BS_NOBORDER 0
763
2cace4e6e69a Added DW_BS_NOBORDER style which can be set on buttons with dw_window_set_style() to make them flat.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 745
diff changeset
1064
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1065 #define DW_POINTER_DEFAULT 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1066 #define DW_POINTER_ARROW 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1067 #define DW_POINTER_CLOCK 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1068 #define DW_POINTER_QUESTION 0
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1069
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1070 #define HWND_DESKTOP ((HWND)0)
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1071
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1072 /* flag values for dw_messagebox() */
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1073 #define DW_MB_OK (1 << 1)
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1074 #define DW_MB_OKCANCEL (1 << 2)
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1075 #define DW_MB_YESNO (1 << 3)
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1076 #define DW_MB_YESNOCANCEL (1 << 4)
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1077
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1078 #define DW_MB_WARNING (1 << 10)
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1079 #define DW_MB_ERROR (1 << 11)
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1080 #define DW_MB_INFORMATION (1 << 12)
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1081 #define DW_MB_QUESTION (1 << 13)
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1082
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1083 /* Virtual Key Codes */
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1084 #define VK_LBUTTON 0
2226
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1085 #define VK_RBUTTON 1
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1086 #define VK_CANCEL 2
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1087 #define VK_MBUTTON 3
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1088 #define VK_BACK 4
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1089 #define VK_TAB 5
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1090 #define VK_CLEAR 6
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1091 #define VK_RETURN 7
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1092 #define VK_MENU 8
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1093 #define VK_PAUSE 9
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1094 #define VK_CAPITAL 10
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1095 #define VK_ESCAPE 11
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1096 #define VK_SPACE 12
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1097 #define VK_PRIOR 13
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1098 #define VK_NEXT 14
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1099 #define VK_END 15
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1100 #define VK_HOME 16
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1101 #define VK_LEFT 17
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1102 #define VK_UP 18
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1103 #define VK_RIGHT 19
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1104 #define VK_DOWN 20
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1105 #define VK_SELECT 21
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1106 #define VK_PRINT 22
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1107 #define VK_EXECUTE 23
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1108 #define VK_SNAPSHOT 24
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1109 #define VK_INSERT 25
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1110 #define VK_DELETE 26
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1111 #define VK_HELP 27
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1112 #define VK_LWIN 28
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1113 #define VK_RWIN 29
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1114 #define VK_NUMPAD0 30
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1115 #define VK_NUMPAD1 31
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1116 #define VK_NUMPAD2 32
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1117 #define VK_NUMPAD3 33
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1118 #define VK_NUMPAD4 34
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1119 #define VK_NUMPAD5 35
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1120 #define VK_NUMPAD6 36
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1121 #define VK_NUMPAD7 37
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1122 #define VK_NUMPAD8 38
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1123 #define VK_NUMPAD9 39
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1124 #define VK_MULTIPLY 40
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1125 #define VK_ADD 41
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1126 #define VK_SEPARATOR 42
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1127 #define VK_SUBTRACT 43
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1128 #define VK_DECIMAL 44
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1129 #define VK_DIVIDE 45
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1130 #define VK_F1 46
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1131 #define VK_F2 47
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1132 #define VK_F3 48
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1133 #define VK_F4 49
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1134 #define VK_F5 50
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1135 #define VK_F6 51
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1136 #define VK_F7 52
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1137 #define VK_F8 53
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1138 #define VK_F9 54
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1139 #define VK_F10 55
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1140 #define VK_F11 56
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1141 #define VK_F12 57
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1142 #define VK_F13 58
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1143 #define VK_F14 59
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1144 #define VK_F15 60
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1145 #define VK_F16 61
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1146 #define VK_F17 62
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1147 #define VK_F18 63
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1148 #define VK_F19 64
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1149 #define VK_F20 65
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1150 #define VK_F21 66
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1151 #define VK_F22 67
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1152 #define VK_F23 68
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1153 #define VK_F24 69
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1154 #define VK_NUMLOCK 70
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1155 #define VK_SCROLL 71
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1156 #define VK_LSHIFT 72
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1157 #define VK_RSHIFT 73
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1158 #define VK_LCONTROL 74
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1159 #define VK_RCONTROL 75
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1160 #define VK_LMENU 76
2de088fb5dd4 Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2225
diff changeset
1161 #define VK_RMENU 77
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1162
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1163 /* Key Modifiers */
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1164 #define KC_CTRL (1)
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1165 #define KC_SHIFT (1 << 1)
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1166 #define KC_ALT (1 << 2)
2225
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1167 #endif
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1168
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1169 typedef struct _item {
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1170 /* Item type - Box or Item */
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1171 int type;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1172 /* Handle to Frame or Window */
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1173 HWND hwnd;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1174 /* Width and Height of static size */
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1175 int width, height, origwidth, origheight;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1176 /* Size Type - Static or Expand */
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1177 int hsize, vsize;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1178 /* Padding */
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1179 int pad;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1180 } Item;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1181
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1182 typedef struct _box {
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1183 #if defined(__WIN32__)
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1184 ColorInfo cinfo;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1185 int fullscreen;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1186 #elif defined(__OS2__) || defined(__EMX__)
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1187 PFNWP oldproc;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1188 UserData *root;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1189 HWND hwndtitle, hwnd;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1190 int titlebar;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1191 #endif
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1192 /* Number of items in the box */
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1193 int count;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1194 /* Box type - horizontal or vertical */
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1195 int type;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1196 /* Keep track of how box is packed */
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1197 int hsize, vsize;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1198 /* Padding */
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1199 int pad, grouppadx, grouppady;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1200 /* Groupbox */
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1201 HWND grouphwnd;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1202 /* Default item */
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1203 HWND defaultitem;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1204 /* Used as temporary storage in the calculation stage */
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1205 int usedpadx, usedpady, minheight, minwidth;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1206 /* Used for calculating individual item ratios */
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1207 int width, height;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1208 /* Any combinations of flags describing the box */
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1209 unsigned long flags;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1210 /* Array of item structures */
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1211 struct _item *items;
1ec6300a627b Updated the platform template for the new 3.1 APIs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2210
diff changeset
1212 } Box;
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1213
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1214 #else
267
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1215 /* GTK Specific section */
1893
c6b47f3db988 Oops missed change to dw.h adding _GNU_SOURCE define to the header.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1887
diff changeset
1216 #define _GNU_SOURCE
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1217 #include <gtk/gtk.h>
2264
5c981407b0f3 GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2239
diff changeset
1218 #if GTK_MAJOR_VERSION < 4
634
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 633
diff changeset
1219 #ifdef GDK_WINDOWING_X11
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 633
diff changeset
1220 # include <gdk/gdkx.h>
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 633
diff changeset
1221 #else
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 633
diff changeset
1222 # include <gdk/gdk.h>
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 633
diff changeset
1223 #endif
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1224 #include <gdk/gdkprivate.h>
2264
5c981407b0f3 GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2239
diff changeset
1225 #endif
267
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1226 #include <gdk/gdkkeysyms.h>
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1227 #include <pthread.h>
634
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 633
diff changeset
1228 #if !defined(GDK_WINDOWING_WIN32)
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 633
diff changeset
1229 # include <dlfcn.h>
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 633
diff changeset
1230 #endif
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1231
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1232 #define DW_DT_LEFT 1
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1233 #define DW_DT_UNDERSCORE (1 << 1)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1234 #define DW_DT_STRIKEOUT (1 << 2)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1235 #define DW_DT_CENTER (1 << 3)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1236 #define DW_DT_RIGHT (1 << 4)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1237 #define DW_DT_TOP (1 << 5)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1238 #define DW_DT_VCENTER (1 << 6)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1239 #define DW_DT_BOTTOM (1 << 7)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1240 #define DW_DT_HALFTONE (1 << 8)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1241 #define DW_DT_MNEMONIC (1 << 9)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1242 #define DW_DT_WORDBREAK (1 << 10)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1243 #define DW_DT_ERASERECT (1 << 11)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1244
262
ccddd3ca0637 DW_DT_QUERYEXTENT, DW_DT_TEXTATTRS, and DW_DT_EXTERNALLEADING not defined for gtk.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 257
diff changeset
1245 /* these don't exist under gtk, so make them dummy entries */
ccddd3ca0637 DW_DT_QUERYEXTENT, DW_DT_TEXTATTRS, and DW_DT_EXTERNALLEADING not defined for gtk.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 257
diff changeset
1246 #define DW_DT_QUERYEXTENT 0
ccddd3ca0637 DW_DT_QUERYEXTENT, DW_DT_TEXTATTRS, and DW_DT_EXTERNALLEADING not defined for gtk.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 257
diff changeset
1247 #define DW_DT_TEXTATTRS 0
ccddd3ca0637 DW_DT_QUERYEXTENT, DW_DT_TEXTATTRS, and DW_DT_EXTERNALLEADING not defined for gtk.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 257
diff changeset
1248 #define DW_DT_EXTERNALLEADING 0
ccddd3ca0637 DW_DT_QUERYEXTENT, DW_DT_TEXTATTRS, and DW_DT_EXTERNALLEADING not defined for gtk.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 257
diff changeset
1249
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1250 #define DW_FCF_TITLEBAR 1
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1251 #define DW_FCF_SYSMENU (1 << 1)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1252 #define DW_FCF_MENU (1 << 2)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1253 #define DW_FCF_SIZEBORDER (1 << 3)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1254 #define DW_FCF_MINBUTTON (1 << 4)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1255 #define DW_FCF_MAXBUTTON (1 << 5)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1256 #define DW_FCF_MINMAX (1 << 6)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1257 #define DW_FCF_DLGBORDER (1 << 9)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1258 #define DW_FCF_BORDER (1 << 10)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1259 #define DW_FCF_TASKLIST (1 << 12)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1260 #define DW_FCF_NOMOVEWITHOWNER (1 << 14)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1261 #define DW_FCF_SYSMODAL (1 << 15)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1262 #define DW_FCF_HIDEBUTTON (1 << 16)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1263 #define DW_FCF_HIDEMAX (1 << 17)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1264 #define DW_FCF_AUTOICON (1 << 18)
471
fa05a1a0f9b3 Support for "column-click" signal
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 456
diff changeset
1265 #define DW_FCF_MAXIMIZE (1 << 19)
fa05a1a0f9b3 Support for "column-click" signal
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 456
diff changeset
1266 #define DW_FCF_MINIMIZE (1 << 20)
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1267 #define DW_FCF_CLOSEBUTTON (1 << 21)
1802
aedf5903db0a Add DW_FCF_TEXTURED window style; relevant only for Mac port.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1795
diff changeset
1268 #define DW_FCF_TEXTURED 0
1933
758f49e54566 Enable dw_windows_get_text() to return value of label under GTK.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1924
diff changeset
1269 #define DW_FCF_FULLSCREEN (1 << 22)
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1270
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1271 #define DW_CFA_BITMAPORICON 1
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1272 #define DW_CFA_STRING (1 << 1)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1273 #define DW_CFA_ULONG (1 << 2)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1274 #define DW_CFA_TIME (1 << 3)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1275 #define DW_CFA_DATE (1 << 4)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1276 #define DW_CFA_CENTER (1 << 5)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1277 #define DW_CFA_LEFT (1 << 6)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1278 #define DW_CFA_RIGHT (1 << 7)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1279 #define DW_CFA_HORZSEPARATOR (1 << 8)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1280 #define DW_CFA_SEPARATOR (1 << 9)
471
fa05a1a0f9b3 Support for "column-click" signal
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 456
diff changeset
1281 #define DW_CFA_STRINGANDICON (1 << 10)
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1282
69
9510897c0b03 Added new container functions, and implemented some missing functionality.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 67
diff changeset
1283 #define DW_CRA_SELECTED 1
9510897c0b03 Added new container functions, and implemented some missing functionality.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 67
diff changeset
1284 #define DW_CRA_CURSORED (1 << 1)
9510897c0b03 Added new container functions, and implemented some missing functionality.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 67
diff changeset
1285
1871
3f571ad9b92e First Mac round of changes aimed at separating the data and text
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1863
diff changeset
1286 #define DW_CR_RETDATA (1 << 10)
3f571ad9b92e First Mac round of changes aimed at separating the data and text
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1863
diff changeset
1287
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1288 #define DW_LS_MULTIPLESEL 1
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1289
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1290 #define DW_LIT_NONE -1
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1291
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1292 #define DW_MLE_CASESENSITIVE 1
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1293
763
2cace4e6e69a Added DW_BS_NOBORDER style which can be set on buttons with dw_window_set_style() to make them flat.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 745
diff changeset
1294 #define DW_BS_NOBORDER 1
2cace4e6e69a Added DW_BS_NOBORDER style which can be set on buttons with dw_window_set_style() to make them flat.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 745
diff changeset
1295
532
1e60e98a9168 Forgot DW_POINTER_DEFAULT on Unix.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 531
diff changeset
1296 #define DW_POINTER_DEFAULT 0
2265
63bb97e94cd3 GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2264
diff changeset
1297 #if GTK_MAJOR_VERSION > 3
63bb97e94cd3 GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2264
diff changeset
1298 #define DW_POINTER_ARROW 1
63bb97e94cd3 GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2264
diff changeset
1299 #define DW_POINTER_CLOCK 2
63bb97e94cd3 GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2264
diff changeset
1300 #define DW_POINTER_QUESTION 3
63bb97e94cd3 GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2264
diff changeset
1301 #else
390
2dbed2673df0 Change mouse cursor definitions under GTK. DW_POINTER_ARROW now uses "default"
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 384
diff changeset
1302 #define DW_POINTER_ARROW GDK_TOP_LEFT_ARROW
2dbed2673df0 Change mouse cursor definitions under GTK. DW_POINTER_ARROW now uses "default"
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 384
diff changeset
1303 #define DW_POINTER_CLOCK GDK_WATCH
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1304 #define DW_POINTER_QUESTION GDK_QUESTION_ARROW
2265
63bb97e94cd3 GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2264
diff changeset
1305 #endif
22
6a246b3bb14f Added tree widgets, fixed some delete event processing, fixed a layout bug
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 15
diff changeset
1306
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1307 #define HWND_DESKTOP ((HWND)0)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1308
400
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
1309 /* flag values for dw_messagebox() */
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
1310 #define DW_MB_OK (1 << 1)
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
1311 #define DW_MB_OKCANCEL (1 << 2)
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
1312 #define DW_MB_YESNO (1 << 3)
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
1313 #define DW_MB_YESNOCANCEL (1 << 4)
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
1314
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
1315 #define DW_MB_WARNING (1 << 10)
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
1316 #define DW_MB_ERROR (1 << 11)
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
1317 #define DW_MB_INFORMATION (1 << 12)
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
1318 #define DW_MB_QUESTION (1 << 13)
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
1319
267
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1320 /* Virtual Key Codes */
775
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1321 #if GTK_MAJOR_VERSION > 2
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1322 #define VK_LBUTTON GDK_KEY_Pointer_Button1
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1323 #define VK_RBUTTON GDK_KEY_Pointer_Button3
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1324 #define VK_CANCEL GDK_KEY_Cancel
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1325 #define VK_MBUTTON GDK_KEY_Pointer_Button2
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1326 #define VK_BACK GDK_KEY_BackSpace
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1327 #define VK_TAB GDK_KEY_Tab
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1328 #define VK_CLEAR GDK_KEY_Clear
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1329 #define VK_RETURN GDK_KEY_Return
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1330 #define VK_MENU GDK_KEY_Menu
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1331 #define VK_PAUSE GDK_KEY_Pause
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1332 #define VK_CAPITAL GDK_KEY_Caps_Lock
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1333 #define VK_ESCAPE GDK_KEY_Escape
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1334 #define VK_SPACE GDK_KEY_space
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1335 #define VK_PRIOR GDK_KEY_Page_Up
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1336 #define VK_NEXT GDK_KEY_Page_Down
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1337 #define VK_END GDK_KEY_End
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1338 #define VK_HOME GDK_KEY_Home
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1339 #define VK_LEFT GDK_KEY_Left
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1340 #define VK_UP GDK_KEY_Up
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1341 #define VK_RIGHT GDK_KEY_Right
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1342 #define VK_DOWN GDK_KEY_Down
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1343 #define VK_SELECT GDK_KEY_Select
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1344 #define VK_PRINT GDK_KEY_Sys_Req
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1345 #define VK_EXECUTE GDK_KEY_Execute
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1346 #define VK_SNAPSHOT GDK_KEY_Print
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1347 #define VK_INSERT GDK_KEY_Insert
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1348 #define VK_DELETE GDK_KEY_Delete
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1349 #define VK_HELP GDK_KEY_Help
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1350 #define VK_LWIN GDK_KEY_Super_L
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1351 #define VK_RWIN GDK_KEY_Super_R
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1352 #define VK_NUMPAD0 GDK_KEY_KP_0
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1353 #define VK_NUMPAD1 GDK_KEY_KP_1
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1354 #define VK_NUMPAD2 GDK_KEY_KP_2
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1355 #define VK_NUMPAD3 GDK_KEY_KP_3
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1356 #define VK_NUMPAD4 GDK_KEY_KP_4
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1357 #define VK_NUMPAD5 GDK_KEY_KP_5
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1358 #define VK_NUMPAD6 GDK_KEY_KP_6
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1359 #define VK_NUMPAD7 GDK_KEY_KP_7
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1360 #define VK_NUMPAD8 GDK_KEY_KP_8
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1361 #define VK_NUMPAD9 GDK_KEY_KP_9
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1362 #define VK_MULTIPLY GDK_KEY_KP_Multiply
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1363 #define VK_ADD GDK_KEY_KP_Add
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1364 #define VK_SEPARATOR GDK_KEY_KP_Separator
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1365 #define VK_SUBTRACT GDK_KEY_KP_Subtract
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1366 #define VK_DECIMAL GDK_KEY_KP_Decimal
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1367 #define VK_DIVIDE GDK_KEY_KP_Divide
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1368 #define VK_F1 GDK_KEY_F1
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1369 #define VK_F2 GDK_KEY_F2
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1370 #define VK_F3 GDK_KEY_F3
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1371 #define VK_F4 GDK_KEY_F4
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1372 #define VK_F5 GDK_KEY_F5
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1373 #define VK_F6 GDK_KEY_F6
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1374 #define VK_F7 GDK_KEY_F7
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1375 #define VK_F8 GDK_KEY_F8
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1376 #define VK_F9 GDK_KEY_F9
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1377 #define VK_F10 GDK_KEY_F10
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1378 #define VK_F11 GDK_KEY_F11
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1379 #define VK_F12 GDK_KEY_F12
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1380 #define VK_F13 GDK_KEY_F13
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1381 #define VK_F14 GDK_KEY_F14
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1382 #define VK_F15 GDK_KEY_F15
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1383 #define VK_F16 GDK_KEY_F16
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1384 #define VK_F17 GDK_KEY_F17
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1385 #define VK_F18 GDK_KEY_F18
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1386 #define VK_F19 GDK_KEY_F19
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1387 #define VK_F20 GDK_KEY_F20
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1388 #define VK_F21 GDK_KEY_F21
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1389 #define VK_F22 GDK_KEY_F22
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1390 #define VK_F23 GDK_KEY_F23
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1391 #define VK_F24 GDK_KEY_F24
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1392 #define VK_NUMLOCK GDK_KEY_Num_Lock
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1393 #define VK_SCROLL GDK_KEY_Scroll_Lock
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1394 #define VK_LSHIFT GDK_KEY_Shift_L
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1395 #define VK_RSHIFT GDK_KEY_Shift_R
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1396 #define VK_LCONTROL GDK_KEY_Control_L
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1397 #define VK_RCONTROL GDK_KEY_Control_R
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1398 #define VK_LMENU GDK_KEY_Menu
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1399 #define VK_RMENU GDK_KEY_Menu
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1400
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1401 #else
267
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1402 #define VK_LBUTTON GDK_Pointer_Button1
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1403 #define VK_RBUTTON GDK_Pointer_Button3
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1404 #define VK_CANCEL GDK_Cancel
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1405 #define VK_MBUTTON GDK_Pointer_Button2
384
cbf4df4bc2f1 Fix typo with backspace key name under GTK
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 369
diff changeset
1406 #define VK_BACK GDK_BackSpace
267
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1407 #define VK_TAB GDK_Tab
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1408 #define VK_CLEAR GDK_Clear
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1409 #define VK_RETURN GDK_Return
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1410 #define VK_MENU GDK_Menu
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1411 #define VK_PAUSE GDK_Pause
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1412 #define VK_CAPITAL GDK_Caps_Lock
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1413 #define VK_ESCAPE GDK_Escape
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1414 #define VK_SPACE GDK_space
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1415 #define VK_PRIOR GDK_Page_Up
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1416 #define VK_NEXT GDK_Page_Down
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1417 #define VK_END GDK_End
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1418 #define VK_HOME GDK_Home
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1419 #define VK_LEFT GDK_Left
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1420 #define VK_UP GDK_Up
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1421 #define VK_RIGHT GDK_Right
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1422 #define VK_DOWN GDK_Down
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1423 #define VK_SELECT GDK_Select
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1424 #define VK_PRINT GDK_Sys_Req
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1425 #define VK_EXECUTE GDK_Execute
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1426 #define VK_SNAPSHOT GDK_Print
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1427 #define VK_INSERT GDK_Insert
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1428 #define VK_DELETE GDK_Delete
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1429 #define VK_HELP GDK_Help
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1430 #define VK_LWIN GDK_Super_L
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1431 #define VK_RWIN GDK_Super_R
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1432 #define VK_NUMPAD0 GDK_KP_0
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1433 #define VK_NUMPAD1 GDK_KP_1
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1434 #define VK_NUMPAD2 GDK_KP_2
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1435 #define VK_NUMPAD3 GDK_KP_3
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1436 #define VK_NUMPAD4 GDK_KP_4
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1437 #define VK_NUMPAD5 GDK_KP_5
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1438 #define VK_NUMPAD6 GDK_KP_6
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1439 #define VK_NUMPAD7 GDK_KP_7
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1440 #define VK_NUMPAD8 GDK_KP_8
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1441 #define VK_NUMPAD9 GDK_KP_9
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1442 #define VK_MULTIPLY GDK_KP_Multiply
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1443 #define VK_ADD GDK_KP_Add
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1444 #define VK_SEPARATOR GDK_KP_Separator
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1445 #define VK_SUBTRACT GDK_KP_Subtract
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1446 #define VK_DECIMAL GDK_KP_Decimal
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1447 #define VK_DIVIDE GDK_KP_Divide
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1448 #define VK_F1 GDK_F1
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1449 #define VK_F2 GDK_F2
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1450 #define VK_F3 GDK_F3
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1451 #define VK_F4 GDK_F4
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1452 #define VK_F5 GDK_F5
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1453 #define VK_F6 GDK_F6
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1454 #define VK_F7 GDK_F7
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1455 #define VK_F8 GDK_F8
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1456 #define VK_F9 GDK_F9
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1457 #define VK_F10 GDK_F10
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1458 #define VK_F11 GDK_F11
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1459 #define VK_F12 GDK_F12
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1460 #define VK_F13 GDK_F13
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1461 #define VK_F14 GDK_F14
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1462 #define VK_F15 GDK_F15
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1463 #define VK_F16 GDK_F16
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1464 #define VK_F17 GDK_F17
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1465 #define VK_F18 GDK_F18
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1466 #define VK_F19 GDK_F19
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1467 #define VK_F20 GDK_F20
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1468 #define VK_F21 GDK_F21
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1469 #define VK_F22 GDK_F22
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1470 #define VK_F23 GDK_F23
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1471 #define VK_F24 GDK_F24
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1472 #define VK_NUMLOCK GDK_Num_Lock
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1473 #define VK_SCROLL GDK_Scroll_Lock
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1474 #define VK_LSHIFT GDK_Shift_L
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1475 #define VK_RSHIFT GDK_Shift_R
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1476 #define VK_LCONTROL GDK_Control_L
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1477 #define VK_RCONTROL GDK_Control_R
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1478 #define VK_LMENU GDK_Menu
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1479 #define VK_RMENU GDK_Menu
775
5ec50e403a8a Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 768
diff changeset
1480 #endif
267
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1481
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1482 /* Key Modifiers */
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1483 #define KC_CTRL GDK_CONTROL_MASK
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1484 #define KC_SHIFT GDK_SHIFT_MASK
2266
bb0690c04413 GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2265
diff changeset
1485 #if GTK_MAJOR_VERSION > 3
bb0690c04413 GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2265
diff changeset
1486 #define KC_ALT GDK_ALT_MASK
bb0690c04413 GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2265
diff changeset
1487 #else
267
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1488 #define KC_ALT GDK_MOD1_MASK
2266
bb0690c04413 GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2265
diff changeset
1489 #endif
267
bf8b907f8a29 Added initial version of updated key_press_event callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 262
diff changeset
1490
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1491 typedef GtkWidget *HWND;
38
538db2a48bac Added typecast to MPARAM.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 34
diff changeset
1492 #ifndef _ENVRNMNT_H
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1493 typedef unsigned long ULONG;
38
538db2a48bac Added typecast to MPARAM.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 34
diff changeset
1494 #endif
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1495 typedef long LONG;
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1496 typedef unsigned short USHORT;
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1497 typedef short SHORT;
236
5592cdeb29cf Make sure all platforms have the same typedefs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 224
diff changeset
1498 typedef unsigned short UWORD;
5592cdeb29cf Make sure all platforms have the same typedefs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 224
diff changeset
1499 typedef short WORD ;
5592cdeb29cf Make sure all platforms have the same typedefs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 224
diff changeset
1500 typedef unsigned char UCHAR;
5592cdeb29cf Make sure all platforms have the same typedefs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 224
diff changeset
1501 typedef char CHAR;
5592cdeb29cf Make sure all platforms have the same typedefs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 224
diff changeset
1502 typedef unsigned UINT;
5592cdeb29cf Make sure all platforms have the same typedefs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 224
diff changeset
1503 typedef int INT;
239
403b07f873e1 Use a pointer for HMTX instead of a pthread_mutex_t struct.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 238
diff changeset
1504 typedef pthread_mutex_t *HMTX;
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1505 typedef struct _dw_unix_event {
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1506 pthread_mutex_t mutex;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1507 pthread_cond_t event;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1508 pthread_t thread;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1509 int alive;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1510 int posted;
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1511 } *HEV;
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1512 typedef pthread_t DWTID;
157
a07dd2e819f3 Added module support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 155
diff changeset
1513 typedef void * HMOD;
558
05060ce4d6ae Fixes for the new shared memory and named event code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 557
diff changeset
1514 struct _dw_unix_shm {
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1515 int fd;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1516 char *path;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1517 int sid;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1518 int size;
558
05060ce4d6ae Fixes for the new shared memory and named event code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 557
diff changeset
1519 };
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1520
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1521 typedef struct _hpixmap {
633
87db549e79bc Add dw_polygon_draw() to draw closed polygons.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 624
diff changeset
1522 unsigned long width, height;
1146
9d97610b2140 Adding dw_pixmap_set_font() which is equivalent to dw_window_set_font() except for pixmaps.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1136
diff changeset
1523 HWND handle;
1148
439f276042cc Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1146
diff changeset
1524 char *font;
1253
28c2c7e6671c On GTK2 save the original pixbuf that is loaded so we can use it
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1243
diff changeset
1525 #if GTK_MAJOR_VERSION > 1
28c2c7e6671c On GTK2 save the original pixbuf that is loaded so we can use it
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1243
diff changeset
1526 GdkPixbuf *pixbuf; /* the actual image */
28c2c7e6671c On GTK2 save the original pixbuf that is loaded so we can use it
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1243
diff changeset
1527 #endif
776
425f3d46b75f Accidentally clobbered something in dw.h required for GTK 2.x.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 775
diff changeset
1528 #if GTK_MAJOR_VERSION > 2
815
c1e93dd575a5 Initial implementation of a slightly disjointed dual cairo_surface gdkpixbuf image model.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 776
diff changeset
1529 cairo_surface_t *image; /* Going to have dual storage for now */
776
425f3d46b75f Accidentally clobbered something in dw.h required for GTK 2.x.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 775
diff changeset
1530 #else
1004
cb81c08bd8c3 Correct OS/2 question mark pointer #define; should be SPTR_ICONQUESTION despite some online
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 987
diff changeset
1531 GdkPixmap *pixmap; /* the actual image */
cb81c08bd8c3 Correct OS/2 question mark pointer #define; should be SPTR_ICONQUESTION despite some online
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 987
diff changeset
1532 GdkBitmap *bitmap; /* if not null, the image mask representing the transparency mask */
1168
4e8f00c31c91 Added basic printing support for GTK 2.10 and above...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1157
diff changeset
1533 void *image; /* Opaque handle to a cairo_surface_t for printing */
776
425f3d46b75f Accidentally clobbered something in dw.h required for GTK 2.x.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 775
diff changeset
1534 #endif
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1535 } *HPIXMAP;
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1536
2271
1c52cd5a817f GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2270
diff changeset
1537 typedef void *HMENUI;
328
e00aff2b899e Tree item handles are now of the type HTREEITEM instead of HWND since they
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 325
diff changeset
1538 typedef void *HTREEITEM;
558
05060ce4d6ae Fixes for the new shared memory and named event code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 557
diff changeset
1539 typedef void *HSHM;
977
634bb6cecef1 Oops... missed including the header change in that last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 975
diff changeset
1540 typedef void *HICN;
185
f55677513954 Updated the menu code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 182
diff changeset
1541
2202
c677d728e143 GTK3: Switch to using GResource for compiled in image resources.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2171
diff changeset
1542 /* As of Dynamic Windows 3.1 GResource is default if supported.
2203
12fb7f32f3a9 GTK: DW_INCLUDE_DEPRECATED should bring in DW_INCLUDE_DEPRECATED_RESOURCES.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2202
diff changeset
1543 * Using --with-deprecated at configure time will include
12fb7f32f3a9 GTK: DW_INCLUDE_DEPRECATED should bring in DW_INCLUDE_DEPRECATED_RESOURCES.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2202
diff changeset
1544 * support for our old home brewed resource system.
2202
c677d728e143 GTK3: Switch to using GResource for compiled in image resources.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2171
diff changeset
1545 * GLib 2.32 is required for GResource, so we automatically
c677d728e143 GTK3: Switch to using GResource for compiled in image resources.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2171
diff changeset
1546 * enable our old system if using an old Glib.
c677d728e143 GTK3: Switch to using GResource for compiled in image resources.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2171
diff changeset
1547 * Test for GResource using: dwindows-config --gresource
c677d728e143 GTK3: Switch to using GResource for compiled in image resources.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2171
diff changeset
1548 */
c677d728e143 GTK3: Switch to using GResource for compiled in image resources.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2171
diff changeset
1549 #ifndef DW_INCLUDE_DEPRECATED_RESOURCES
2204
b86ae2abb3b3 GTK: Added GTK2 support for GResource embedded images.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2203
diff changeset
1550 #if defined(DW_INCLUDE_DEPRECATED) || GTK_MAJOR_VERSION < 2 || !GLIB_CHECK_VERSION(2,32,0)
2202
c677d728e143 GTK3: Switch to using GResource for compiled in image resources.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2171
diff changeset
1551 #define DW_INCLUDE_DEPRECATED_RESOURCES 1
c677d728e143 GTK3: Switch to using GResource for compiled in image resources.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2171
diff changeset
1552 #endif
c677d728e143 GTK3: Switch to using GResource for compiled in image resources.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2171
diff changeset
1553 #endif
c677d728e143 GTK3: Switch to using GResource for compiled in image resources.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2171
diff changeset
1554
c677d728e143 GTK3: Switch to using GResource for compiled in image resources.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2171
diff changeset
1555 /* Only reference our old style resources if required. */
c677d728e143 GTK3: Switch to using GResource for compiled in image resources.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2171
diff changeset
1556 #ifdef DW_INCLUDE_DEPRECATED_RESOURCES
2204
b86ae2abb3b3 GTK: Added GTK2 support for GResource embedded images.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2203
diff changeset
1557 typedef struct _resource_struct {
b86ae2abb3b3 GTK: Added GTK2 support for GResource embedded images.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2203
diff changeset
1558 long resource_max, *resource_id;
b86ae2abb3b3 GTK: Added GTK2 support for GResource embedded images.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2203
diff changeset
1559 char **resource_data;
b86ae2abb3b3 GTK: Added GTK2 support for GResource embedded images.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2203
diff changeset
1560 } DWResources;
b86ae2abb3b3 GTK: Added GTK2 support for GResource embedded images.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2203
diff changeset
1561
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1562 #if !defined(DW_RESOURCES) || defined(BUILD_DLL)
2159
48172881415c GTK: Add DW_UNUSED() macro for defining variables that may be unused.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2141
diff changeset
1563 static DWResources DW_UNUSED(_resources) = { 0, 0, 0 };
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1564 #else
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1565 extern DWResources _resources;
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1566 #endif
2202
c677d728e143 GTK3: Switch to using GResource for compiled in image resources.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2171
diff changeset
1567 #endif
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1568
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1569 #endif
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1570
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1571 #if !defined(__OS2__) && !defined(__EMX__)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1572 typedef struct _CDATE
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1573 {
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1574 UCHAR day;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1575 UCHAR month;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1576 USHORT year;
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1577 } CDATE;
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1578 typedef CDATE *PCDATE;
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1579
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1580 typedef struct _CTIME
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1581 {
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1582 UCHAR hours;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1583 UCHAR minutes;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1584 UCHAR seconds;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1585 UCHAR ucReserved;
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1586 } CTIME;
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1587 typedef CTIME *PCTIME;
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1588 #endif
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1589
2451
44b77654c406 Add DW_DIR_SEPARATOR for easy access to the separator characters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2410
diff changeset
1590 /* Define a few things missing on OS/2 and Windows */
44b77654c406 Add DW_DIR_SEPARATOR for easy access to the separator characters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2410
diff changeset
1591 #if defined(__OS2__) || (defined(__WIN32__) && !defined(GDK_WINDOWING_WIN32)) || \
44b77654c406 Add DW_DIR_SEPARATOR for easy access to the separator characters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2410
diff changeset
1592 (defined(WINNT) && !defined(GDK_WINDOWING_WIN32)) || defined(__EMX__)
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1593 typedef unsigned long DWTID;
2451
44b77654c406 Add DW_DIR_SEPARATOR for easy access to the separator characters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2410
diff changeset
1594 #define DW_DIR_SEPARATOR '\\'
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1595 #endif
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1596
2127
663467f6eee4 Code cleanup: Add constants to header for dark mode, buffer sizes and Unicode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2114
diff changeset
1597 /* Some dark mode constants for supported platforms */
663467f6eee4 Code cleanup: Add constants to header for dark mode, buffer sizes and Unicode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2114
diff changeset
1598 #define DW_DARK_MODE_DISABLED 0
663467f6eee4 Code cleanup: Add constants to header for dark mode, buffer sizes and Unicode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2114
diff changeset
1599 #define DW_DARK_MODE_BASIC 1
663467f6eee4 Code cleanup: Add constants to header for dark mode, buffer sizes and Unicode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2114
diff changeset
1600 #define DW_DARK_MODE_FULL 2
663467f6eee4 Code cleanup: Add constants to header for dark mode, buffer sizes and Unicode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2114
diff changeset
1601 #define DW_DARK_MODE_FORCED 3
663467f6eee4 Code cleanup: Add constants to header for dark mode, buffer sizes and Unicode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2114
diff changeset
1602
663467f6eee4 Code cleanup: Add constants to header for dark mode, buffer sizes and Unicode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2114
diff changeset
1603 /* Application ID support lengths */
663467f6eee4 Code cleanup: Add constants to header for dark mode, buffer sizes and Unicode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2114
diff changeset
1604 #define _DW_APP_ID_SIZE 100
663467f6eee4 Code cleanup: Add constants to header for dark mode, buffer sizes and Unicode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2114
diff changeset
1605
2083
f1acc157b2dd Win: Correctly show "IE" as HTML renderer if built with Edge support...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2081
diff changeset
1606 /* Use at least the linux utsname limit to avoid gcc fortify warnings */
2210
7677e1083d07 Increase _DW_ENV_STRING_SIZE to 257 bytes, this is the maximum size the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2205
diff changeset
1607 #define _DW_ENV_STRING_SIZE 257
2083
f1acc157b2dd Win: Correctly show "IE" as HTML renderer if built with Edge support...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2081
diff changeset
1608
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1609 typedef struct _dwenv {
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1610 /* Operating System Name and DW Build Date/Time */
2083
f1acc157b2dd Win: Correctly show "IE" as HTML renderer if built with Edge support...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2081
diff changeset
1611 char osName[_DW_ENV_STRING_SIZE], buildDate[_DW_ENV_STRING_SIZE], buildTime[_DW_ENV_STRING_SIZE];
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1612 /* Versions and builds */
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1613 short MajorVersion, MinorVersion, MajorBuild, MinorBuild;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1614 /* Dynamic Window version */
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1615 short DWMajorVersion, DWMinorVersion, DWSubVersion;
2081
24875681eec5 Added htmlEngine to DWEnv
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2077
diff changeset
1616 /* Which HTML engine is compiled in */
2083
f1acc157b2dd Win: Correctly show "IE" as HTML renderer if built with Edge support...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2081
diff changeset
1617 char htmlEngine[_DW_ENV_STRING_SIZE];
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1618 } DWEnv;
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1619
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1620
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1621 typedef struct _dwexpose {
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1622 int x, y;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1623 int width, height;
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1624 } DWExpose;
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1625
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1626 typedef struct _dwdialog {
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1627 HEV eve;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1628 int done;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1629 int method;
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1630 void *data, *result;
2270
819f2492c85f GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2266
diff changeset
1631 #if GTK_MAJOR_VERSION > 3
819f2492c85f GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2266
diff changeset
1632 GMainLoop *mainloop;
819f2492c85f GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2266
diff changeset
1633 #endif
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1634 } DWDialog;
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1635
1136
1a5b0908659b Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1108
diff changeset
1636 typedef void *HPRINT;
1a5b0908659b Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1108
diff changeset
1637
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1638 #define DW_SIGNAL_FUNC(a) ((void *)a)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1639
262
ccddd3ca0637 DW_DT_QUERYEXTENT, DW_DT_TEXTATTRS, and DW_DT_EXTERNALLEADING not defined for gtk.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 257
diff changeset
1640 #define DW_DESKTOP HWND_DESKTOP
7
005fa766e8c2 Updates to latest build.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 3
diff changeset
1641 #define DW_MINIMIZED 1
005fa766e8c2 Updates to latest build.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 3
diff changeset
1642
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1643 #define DW_BUTTON1_MASK 1
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1644 #define DW_BUTTON2_MASK (1 << 1)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1645 #define DW_BUTTON3_MASK (1 << 2)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1646
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1647 #define DW_EXEC_CON 0
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1648 #define DW_EXEC_GUI 1
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1649
449
787cc1e27897 Add support for directory browsing under Win32. DW_DIRECTORY_OPEN can be
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 446
diff changeset
1650 #define DW_FILE_OPEN 0
787cc1e27897 Add support for directory browsing under Win32. DW_DIRECTORY_OPEN can be
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 446
diff changeset
1651 #define DW_FILE_SAVE 1
787cc1e27897 Add support for directory browsing under Win32. DW_DIRECTORY_OPEN can be
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 446
diff changeset
1652 #define DW_DIRECTORY_OPEN 2
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1653
283
54aafc134652 BOXVERT is now DW_VERT and BOXHORZ is now DW_HORZ. Also code cleanups,
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 279
diff changeset
1654 #define DW_HORZ 0
54aafc134652 BOXVERT is now DW_VERT and BOXHORZ is now DW_HORZ. Also code cleanups,
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 279
diff changeset
1655 #define DW_VERT 1
54aafc134652 BOXVERT is now DW_VERT and BOXHORZ is now DW_HORZ. Also code cleanups,
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 279
diff changeset
1656
1157
79bd0aff0bc2 Added DW_TIMEOUT_INFINITE constant to the header file.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1152
diff changeset
1657 #define DW_TIMEOUT_INFINITE ((unsigned long)-1)
79bd0aff0bc2 Added DW_TIMEOUT_INFINITE constant to the header file.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1152
diff changeset
1658
283
54aafc134652 BOXVERT is now DW_VERT and BOXHORZ is now DW_HORZ. Also code cleanups,
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 279
diff changeset
1659 /* Obsolete, should disappear sometime */
54aafc134652 BOXVERT is now DW_VERT and BOXHORZ is now DW_HORZ. Also code cleanups,
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 279
diff changeset
1660 #define BOXHORZ DW_HORZ
54aafc134652 BOXVERT is now DW_VERT and BOXHORZ is now DW_HORZ. Also code cleanups,
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 279
diff changeset
1661 #define BOXVERT DW_VERT
1483
73f2ad84d4ec Fixed OS/2 windows being shown when setting position/size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1468
diff changeset
1662 #define DW_FCF_SHELLPOSITION 0
73f2ad84d4ec Fixed OS/2 windows being shown when setting position/size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1468
diff changeset
1663 #define DW_FCF_NOBYTEALIGN 0
1535
2913bb58f439 Added DW_FCF_COMPOSITED frame creation flag, used only on Windows currently...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1528
diff changeset
1664 #define DW_FCF_VERTSCROLL 0
2913bb58f439 Added DW_FCF_COMPOSITED frame creation flag, used only on Windows currently...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1528
diff changeset
1665 #define DW_FCF_HORZSCROLL 0
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1666
1483
73f2ad84d4ec Fixed OS/2 windows being shown when setting position/size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1468
diff changeset
1667 /* Scrolling constants */
22
6a246b3bb14f Added tree widgets, fixed some delete event processing, fixed a layout bug
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 15
diff changeset
1668 #define DW_SCROLL_UP 0
6a246b3bb14f Added tree widgets, fixed some delete event processing, fixed a layout bug
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 15
diff changeset
1669 #define DW_SCROLL_DOWN 1
6a246b3bb14f Added tree widgets, fixed some delete event processing, fixed a layout bug
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 15
diff changeset
1670 #define DW_SCROLL_TOP 2
6a246b3bb14f Added tree widgets, fixed some delete event processing, fixed a layout bug
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 15
diff changeset
1671 #define DW_SCROLL_BOTTOM 3
6a246b3bb14f Added tree widgets, fixed some delete event processing, fixed a layout bug
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 15
diff changeset
1672
400
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
1673 /* return values for dw_messagebox() */
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
1674 #define DW_MB_RETURN_OK 0
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
1675 #define DW_MB_RETURN_YES 1
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
1676 #define DW_MB_RETURN_NO 0
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
1677 #define DW_MB_RETURN_CANCEL 2
3d4c34bb7834 Add #defines for dw_messagebox()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 390
diff changeset
1678
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1679 #define DW_PIXMAP_WIDTH(x) (x ? x->width : 0)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1680 #define DW_PIXMAP_HEIGHT(x) (x ? x->height : 0)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1681
62
2be5174bdb5d Sync with latest DW code. Tab and RGB fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 61
diff changeset
1682 #define DW_RGB_COLOR (0xF0000000)
369
39983df2b93d Updated the license information, and copyrights. Code to do background
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 350
diff changeset
1683 #define DW_RGB_TRANSPARENT (0x0F000000)
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1684 #define DW_RGB_MASK (0x00FFFFFF)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1685 #define DW_RED_MASK (0x000000FF)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1686 #define DW_GREEN_MASK (0x0000FF00)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1687 #define DW_BLUE_MASK (0x00FF0000)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1688 #define DW_RED_VALUE(a) (a & DW_RED_MASK)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1689 #define DW_GREEN_VALUE(a) ((a & DW_GREEN_MASK) >> 8)
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1690 #define DW_BLUE_VALUE(a) ((a & DW_BLUE_MASK) >> 16)
1103
bf932c9316ff Minor change to the DW_RGB() macro to avoid compiler warnings under certain circumstances.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1102
diff changeset
1691 #define DW_RGB(a, b, c) (0xF0000000 | (a) | (b) << 8 | (c) << 16)
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1692
1863
0656c716dc9f Added a few convenience paramater macros to match some code I added in godwindows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1861
diff changeset
1693 /* Menu convenience paramaters */
325
e5f0613b65cd Added DW_MENU_SEPARATOR.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 317
diff changeset
1694 #define DW_MENU_SEPARATOR ""
441
b559c06a76c2 Implemented more functionality on MacOS and include the platform define
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 438
diff changeset
1695 #define DW_NOMENU 0
1305
18a31ab94e3d Added DW_MENU_AUTO and DW_MENU_POPUP flags that can be passed to dw_menu_append_item() in the id field.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1291
diff changeset
1696 #define DW_MENU_AUTO 0
18a31ab94e3d Added DW_MENU_AUTO and DW_MENU_POPUP flags that can be passed to dw_menu_append_item() in the id field.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1291
diff changeset
1697 #define DW_MENU_POPUP (unsigned long)-1
325
e5f0613b65cd Added DW_MENU_SEPARATOR.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 317
diff changeset
1698
1863
0656c716dc9f Added a few convenience paramater macros to match some code I added in godwindows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1861
diff changeset
1699 /* Convenience parameters for various types */
0656c716dc9f Added a few convenience paramater macros to match some code I added in godwindows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1861
diff changeset
1700 #define DW_NOHWND 0
0656c716dc9f Added a few convenience paramater macros to match some code I added in godwindows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1861
diff changeset
1701 #define DW_NOHTIMER 0
0656c716dc9f Added a few convenience paramater macros to match some code I added in godwindows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1861
diff changeset
1702 #define DW_NOHPRINT 0
0656c716dc9f Added a few convenience paramater macros to match some code I added in godwindows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1861
diff changeset
1703 #define DW_NOHPIXMAP 0
0656c716dc9f Added a few convenience paramater macros to match some code I added in godwindows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1861
diff changeset
1704 #define DW_NOHICN 0
0656c716dc9f Added a few convenience paramater macros to match some code I added in godwindows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1861
diff changeset
1705
1190
76262040ed5f Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1182
diff changeset
1706 #define DW_PERCENT_INDETERMINATE ((unsigned int)-1)
76262040ed5f Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1182
diff changeset
1707
557
1a210e2f214b Added a bunch of support routines I now own due to the settlement
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 535
diff changeset
1708 /* Return value error codes */
1a210e2f214b Added a bunch of support routines I now own due to the settlement
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 535
diff changeset
1709 #define DW_ERROR_NONE 0
1a210e2f214b Added a bunch of support routines I now own due to the settlement
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 535
diff changeset
1710 #define DW_ERROR_GENERAL 1
1a210e2f214b Added a bunch of support routines I now own due to the settlement
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 535
diff changeset
1711 #define DW_ERROR_TIMEOUT 2
1a210e2f214b Added a bunch of support routines I now own due to the settlement
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 535
diff changeset
1712 #define DW_ERROR_NON_INIT 3
1a210e2f214b Added a bunch of support routines I now own due to the settlement
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 535
diff changeset
1713 #define DW_ERROR_NO_MEM 4
1a210e2f214b Added a bunch of support routines I now own due to the settlement
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 535
diff changeset
1714 #define DW_ERROR_INTERRUPT 5
984
57cb9edb8944 Added a template skeleton file for porting DW to other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 977
diff changeset
1715 #define DW_ERROR_UNKNOWN -1
557
1a210e2f214b Added a bunch of support routines I now own due to the settlement
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 535
diff changeset
1716
584
420c6c94abc7 Added dw_html_* functionality for embedding HTML pages in Dynamic Windows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 571
diff changeset
1717 /* Embedded HTML actions */
643
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1718 #define DW_HTML_GOBACK 0
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1719 #define DW_HTML_GOFORWARD 1
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1720 #define DW_HTML_GOHOME 2
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1721 #define DW_HTML_SEARCH 3
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1722 #define DW_HTML_RELOAD 4
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1723 #define DW_HTML_STOP 5
9ab89d89e6b4 Add dw_listview_insert()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 637
diff changeset
1724 #define DW_HTML_PRINT 6
584
420c6c94abc7 Added dw_html_* functionality for embedding HTML pages in Dynamic Windows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 571
diff changeset
1725
2006
6f1adc77de02 GTK: Added DW_SIGNAL_HTML_CHANGED and DW_SIGNAL_HTML_RESULT.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2005
diff changeset
1726 /* Embedded HTML notifcations */
6f1adc77de02 GTK: Added DW_SIGNAL_HTML_CHANGED and DW_SIGNAL_HTML_RESULT.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2005
diff changeset
1727 #define DW_HTML_CHANGE_STARTED 1
6f1adc77de02 GTK: Added DW_SIGNAL_HTML_CHANGED and DW_SIGNAL_HTML_RESULT.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2005
diff changeset
1728 #define DW_HTML_CHANGE_REDIRECT 2
6f1adc77de02 GTK: Added DW_SIGNAL_HTML_CHANGED and DW_SIGNAL_HTML_RESULT.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2005
diff changeset
1729 #define DW_HTML_CHANGE_LOADING 3
6f1adc77de02 GTK: Added DW_SIGNAL_HTML_CHANGED and DW_SIGNAL_HTML_RESULT.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2005
diff changeset
1730 #define DW_HTML_CHANGE_COMPLETE 4
6f1adc77de02 GTK: Added DW_SIGNAL_HTML_CHANGED and DW_SIGNAL_HTML_RESULT.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2005
diff changeset
1731
1523
026c0b4d6ee9 Initial implmentation of DW_DRAW_NOAA on Mac... only works on pixmaps right now.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1483
diff changeset
1732 /* Drawing flags */
1269
9e477efbacca Added DW_DRAW_DEFAULT, DW_DRAW_FILL and DW_DRAW_FULL drawing flags.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1261
diff changeset
1733 #define DW_DRAW_DEFAULT 0
9e477efbacca Added DW_DRAW_DEFAULT, DW_DRAW_FILL and DW_DRAW_FULL drawing flags.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1261
diff changeset
1734 #define DW_DRAW_FILL 1
9e477efbacca Added DW_DRAW_DEFAULT, DW_DRAW_FILL and DW_DRAW_FULL drawing flags.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1261
diff changeset
1735 #define DW_DRAW_FULL (1 << 1)
1523
026c0b4d6ee9 Initial implmentation of DW_DRAW_NOAA on Mac... only works on pixmaps right now.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1483
diff changeset
1736 #define DW_DRAW_NOAA (1 << 2)
1269
9e477efbacca Added DW_DRAW_DEFAULT, DW_DRAW_FILL and DW_DRAW_FULL drawing flags.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1261
diff changeset
1737
1924
c47a04d83b90 Added dw_mle_set_auto_complete() to enable MLE auto completion on supported platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1897
diff changeset
1738 /* MLE Completion flags */
c47a04d83b90 Added dw_mle_set_auto_complete() to enable MLE auto completion on supported platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1897
diff changeset
1739 #define DW_MLE_COMPLETE_TEXT 1
c47a04d83b90 Added dw_mle_set_auto_complete() to enable MLE auto completion on supported platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1897
diff changeset
1740 #define DW_MLE_COMPLETE_DASH (1 << 1)
c47a04d83b90 Added dw_mle_set_auto_complete() to enable MLE auto completion on supported platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1897
diff changeset
1741 #define DW_MLE_COMPLETE_QUOTE (1 << 2)
c47a04d83b90 Added dw_mle_set_auto_complete() to enable MLE auto completion on supported platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1897
diff changeset
1742
2090
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1743 /* Library feature constants */
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1744 #define DW_FEATURE_UNSUPPORTED -1
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1745 #define DW_FEATURE_DISABLED 0
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1746 #define DW_FEATURE_ENABLED 1
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1747
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1748 typedef enum
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1749 {
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1750 DW_FEATURE_HTML = 0, /* Supports the HTML Widget */
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1751 DW_FEATURE_HTML_RESULT, /* Supports the DW_SIGNAL_HTML_RESULT callback */
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1752 DW_FEATURE_WINDOW_BORDER, /* Supports custom window border sizes */
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1753 DW_FEATURE_WINDOW_TRANSPARENCY, /* Supports window frame transparency */
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1754 DW_FEATURE_DARK_MODE, /* Supports Dark Mode user interface */
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1755 DW_FEATURE_MLE_AUTO_COMPLETE, /* Supports auto completion in Multi-line Edit boxes */
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1756 DW_FEATURE_MLE_WORD_WRAP, /* Supports word wrapping in Multi-line Edit boxes */
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1757 DW_FEATURE_CONTAINER_STRIPE, /* Supports striped line display in container widgets */
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1758 DW_FEATURE_MDI, /* Supports Multiple Document Interface window frame */
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1759 DW_FEATURE_NOTEBOOK_STATUS_TEXT, /* Supports status text area on notebook/tabbed controls */
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1760 DW_FEATURE_NOTIFICATION, /* Supports sending system notifications */
2127
663467f6eee4 Code cleanup: Add constants to header for dark mode, buffer sizes and Unicode support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2114
diff changeset
1761 DW_FEATURE_UTF8_UNICODE, /* Supports UTF8 encoded Unicode text */
2236
e7060d262939 Win: Switched to using Rich Edit MLE by default on Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2226
diff changeset
1762 DW_FEATURE_MLE_RICH_EDIT, /* Supports Rich Edit based MLE control (Windows) */
2284
3361ce6070ce Add DW_FEATURE_TASK_BAR to the feature tests, for taskbar icon support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2283
diff changeset
1763 DW_FEATURE_TASK_BAR, /* Supports icons in the taskbar or similar system widget */
2410
0286ac44d347 Add DW_FEATURE_TREE feature test, since iOS does not suppor tree.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2398
diff changeset
1764 DW_FEATURE_TREE, /* Supports the Tree Widget */
2090
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1765 DW_FEATURE_MAX
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1766 } DWFEATURE;
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
1767
987
297f2e790e57 Added a DW_RESOURCE() macro for typecasting parameters to HICN and for doing bounds checking.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 986
diff changeset
1768 /* Macro for casting resource IDs to HICN */
297f2e790e57 Added a DW_RESOURCE() macro for typecasting parameters to HICN and for doing bounds checking.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 986
diff changeset
1769 #define DW_RESOURCE(a) (a < 65536 ? (HICN)a : (HICN)0)
297f2e790e57 Added a DW_RESOURCE() macro for typecasting parameters to HICN and for doing bounds checking.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 986
diff changeset
1770
1102
cfe7d2b6bc16 Added DW_INT_TO_POINTER/DW_UINT_TO_POINTER/DW_POINTER_TO_INT/DW_POINTER_TO_UINT macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1077
diff changeset
1771 #include <limits.h>
cfe7d2b6bc16 Added DW_INT_TO_POINTER/DW_UINT_TO_POINTER/DW_POINTER_TO_INT/DW_POINTER_TO_UINT macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1077
diff changeset
1772 /* Macros for converting from INT/UINT to and from POINTER without compiler warnings */
2171
6533fc42c951 Fix building on Windows 2000 and changes to avoid CRT warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2166
diff changeset
1773 #if _MSC_VER > 1500 || __GNUC_PREREQ(3, 1) || defined(__clang__)
1841
7677754a1ca5 Ok, slight changes to prevent missing stdint.h with
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1840
diff changeset
1774 #include <stdint.h>
1839
22225eb286e5 Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1802
diff changeset
1775 /* There has got to be a better way to check for the intptr_t type....
22225eb286e5 Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1802
diff changeset
1776 * for now just include valid versions of Visual C and GCC plus clang.
22225eb286e5 Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1802
diff changeset
1777 */
22225eb286e5 Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1802
diff changeset
1778 #define DW_INT_TO_POINTER(a) ((void *)(intptr_t)a)
22225eb286e5 Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1802
diff changeset
1779 #define DW_POINTER_TO_INT(a) ((int)(intptr_t)a)
22225eb286e5 Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1802
diff changeset
1780 #define DW_UINT_TO_POINTER(a) ((void *)(uintptr_t)a)
22225eb286e5 Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1802
diff changeset
1781 #define DW_POINTER_TO_UINT(a) ((unsigned int)(uintptr_t)a)
2132
42f8ad7a89e8 Added DW_POINTER_TO_(U)LONGLONG and DW_(U)LONGLONG_TO_POINTER macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2127
diff changeset
1782 #define DW_LONGLONG_TO_POINTER(a) ((void *)(intptr_t)a)
42f8ad7a89e8 Added DW_POINTER_TO_(U)LONGLONG and DW_(U)LONGLONG_TO_POINTER macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2127
diff changeset
1783 #define DW_POINTER_TO_LONGLONG(a) ((long long)(intptr_t)a)
42f8ad7a89e8 Added DW_POINTER_TO_(U)LONGLONG and DW_(U)LONGLONG_TO_POINTER macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2127
diff changeset
1784 #define DW_ULONGLONG_TO_POINTER(a) ((void *)(uintptr_t)a)
42f8ad7a89e8 Added DW_POINTER_TO_(U)LONGLONG and DW_(U)LONGLONG_TO_POINTER macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2127
diff changeset
1785 #define DW_POINTER_TO_ULONGLONG(a) ((unsigned long long)(uintptr_t)a)
1839
22225eb286e5 Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1802
diff changeset
1786 #elif ULONG_MAX > UINT_MAX
22225eb286e5 Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1802
diff changeset
1787 /* If no intptr_t... ULONG is often bigger than UINT */
1102
cfe7d2b6bc16 Added DW_INT_TO_POINTER/DW_UINT_TO_POINTER/DW_POINTER_TO_INT/DW_POINTER_TO_UINT macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1077
diff changeset
1788 #define DW_INT_TO_POINTER(a) ((void *)(long)a)
cfe7d2b6bc16 Added DW_INT_TO_POINTER/DW_UINT_TO_POINTER/DW_POINTER_TO_INT/DW_POINTER_TO_UINT macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1077
diff changeset
1789 #define DW_POINTER_TO_INT(a) ((int)(long)a)
cfe7d2b6bc16 Added DW_INT_TO_POINTER/DW_UINT_TO_POINTER/DW_POINTER_TO_INT/DW_POINTER_TO_UINT macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1077
diff changeset
1790 #define DW_UINT_TO_POINTER(a) ((void *)(unsigned long)a)
cfe7d2b6bc16 Added DW_INT_TO_POINTER/DW_UINT_TO_POINTER/DW_POINTER_TO_INT/DW_POINTER_TO_UINT macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1077
diff changeset
1791 #define DW_POINTER_TO_UINT(a) ((unsigned int)(unsigned long)a)
cfe7d2b6bc16 Added DW_INT_TO_POINTER/DW_UINT_TO_POINTER/DW_POINTER_TO_INT/DW_POINTER_TO_UINT macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1077
diff changeset
1792 #else
1839
22225eb286e5 Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1802
diff changeset
1793 /* Otherwise just fall back to standard casts */
1102
cfe7d2b6bc16 Added DW_INT_TO_POINTER/DW_UINT_TO_POINTER/DW_POINTER_TO_INT/DW_POINTER_TO_UINT macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1077
diff changeset
1794 #define DW_INT_TO_POINTER(a) ((void *)a)
cfe7d2b6bc16 Added DW_INT_TO_POINTER/DW_UINT_TO_POINTER/DW_POINTER_TO_INT/DW_POINTER_TO_UINT macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1077
diff changeset
1795 #define DW_POINTER_TO_INT(a) ((int)a)
cfe7d2b6bc16 Added DW_INT_TO_POINTER/DW_UINT_TO_POINTER/DW_POINTER_TO_INT/DW_POINTER_TO_UINT macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1077
diff changeset
1796 #define DW_UINT_TO_POINTER(a) ((void *)a)
cfe7d2b6bc16 Added DW_INT_TO_POINTER/DW_UINT_TO_POINTER/DW_POINTER_TO_INT/DW_POINTER_TO_UINT macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1077
diff changeset
1797 #define DW_POINTER_TO_UINT(a) ((unsigned int)a)
cfe7d2b6bc16 Added DW_INT_TO_POINTER/DW_UINT_TO_POINTER/DW_POINTER_TO_INT/DW_POINTER_TO_UINT macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1077
diff changeset
1798 #endif
2132
42f8ad7a89e8 Added DW_POINTER_TO_(U)LONGLONG and DW_(U)LONGLONG_TO_POINTER macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2127
diff changeset
1799 #ifndef DW_LONGLONG_TO_POINTER
42f8ad7a89e8 Added DW_POINTER_TO_(U)LONGLONG and DW_(U)LONGLONG_TO_POINTER macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2127
diff changeset
1800 #define DW_LONGLONG_TO_POINTER(a) ((void *)a)
42f8ad7a89e8 Added DW_POINTER_TO_(U)LONGLONG and DW_(U)LONGLONG_TO_POINTER macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2127
diff changeset
1801 #define DW_POINTER_TO_LONGLONG(a) ((long long)a)
42f8ad7a89e8 Added DW_POINTER_TO_(U)LONGLONG and DW_(U)LONGLONG_TO_POINTER macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2127
diff changeset
1802 #define DW_ULONGLONG_TO_POINTER(a) ((void *)a)
42f8ad7a89e8 Added DW_POINTER_TO_(U)LONGLONG and DW_(U)LONGLONG_TO_POINTER macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2127
diff changeset
1803 #define DW_POINTER_TO_ULONGLONG(a) ((unsigned long long)a)
42f8ad7a89e8 Added DW_POINTER_TO_(U)LONGLONG and DW_(U)LONGLONG_TO_POINTER macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2127
diff changeset
1804 #endif
1658
6fe1e91da477 Added DW_POINTER() macro for casting parameters to (void *)
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1616
diff changeset
1805 #define DW_POINTER(a) ((void *)a)
1102
cfe7d2b6bc16 Added DW_INT_TO_POINTER/DW_UINT_TO_POINTER/DW_POINTER_TO_INT/DW_POINTER_TO_UINT macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1077
diff changeset
1806
1535
2913bb58f439 Added DW_FCF_COMPOSITED frame creation flag, used only on Windows currently...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1528
diff changeset
1807 #ifndef DW_FCF_COMPOSITED
2913bb58f439 Added DW_FCF_COMPOSITED frame creation flag, used only on Windows currently...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1528
diff changeset
1808 #define DW_FCF_COMPOSITED 0
2913bb58f439 Added DW_FCF_COMPOSITED frame creation flag, used only on Windows currently...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1528
diff changeset
1809 #endif
2913bb58f439 Added DW_FCF_COMPOSITED frame creation flag, used only on Windows currently...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1528
diff changeset
1810
2451
44b77654c406 Add DW_DIR_SEPARATOR for easy access to the separator characters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2410
diff changeset
1811 #ifndef DW_DIR_SEPARATOR
44b77654c406 Add DW_DIR_SEPARATOR for easy access to the separator characters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2410
diff changeset
1812 #define DW_DIR_SEPARATOR '/'
44b77654c406 Add DW_DIR_SEPARATOR for easy access to the separator characters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2410
diff changeset
1813 #endif
44b77654c406 Add DW_DIR_SEPARATOR for easy access to the separator characters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2410
diff changeset
1814
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1815 #ifndef API
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1816 #define API
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1817 #endif
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1818
1858
952a41463240 Make sure callbacks have their calling convention specified explicitly on Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1853
diff changeset
1819 #ifndef DWSIGNAL
175
d78d08440246 Use _System/_stdcall for callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 174
diff changeset
1820 #define DWSIGNAL API
1858
952a41463240 Make sure callbacks have their calling convention specified explicitly on Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1853
diff changeset
1821 #endif
175
d78d08440246 Use _System/_stdcall for callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 174
diff changeset
1822
1541
1c6593b0ce45 Initial scrolled minimum and maximum code on Windows... MLE implemented, container to go.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1535
diff changeset
1823 /* Constants for sizing scrolled widgets */
1c6593b0ce45 Initial scrolled minimum and maximum code on Windows... MLE implemented, container to go.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1535
diff changeset
1824 #define _DW_SCROLLED_MIN_WIDTH 100
1c6593b0ce45 Initial scrolled minimum and maximum code on Windows... MLE implemented, container to go.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1535
diff changeset
1825 #define _DW_SCROLLED_MIN_HEIGHT 75
1c6593b0ce45 Initial scrolled minimum and maximum code on Windows... MLE implemented, container to go.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1535
diff changeset
1826 #define _DW_SCROLLED_MAX_WIDTH 500
1c6593b0ce45 Initial scrolled minimum and maximum code on Windows... MLE implemented, container to go.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1535
diff changeset
1827 #define _DW_SCROLLED_MAX_HEIGHT 400
1c6593b0ce45 Initial scrolled minimum and maximum code on Windows... MLE implemented, container to go.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1535
diff changeset
1828
1783
9de6d1cc8fb8 Put test program code into DEPRECATED #ifdef again to avoid build warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1769
diff changeset
1829 #include <wchar.h>
9de6d1cc8fb8 Put test program code into DEPRECATED #ifdef again to avoid build warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1769
diff changeset
1830
492
9354c460d76b Added some type declarations to allow better interoperability with Regina
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 487
diff changeset
1831 /* Let other APIs know what types we've defined,
9354c460d76b Added some type declarations to allow better interoperability with Regina
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 487
diff changeset
1832 * Regina REXX in particular, on Unix.
9354c460d76b Added some type declarations to allow better interoperability with Regina
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 487
diff changeset
1833 */
9354c460d76b Added some type declarations to allow better interoperability with Regina
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 487
diff changeset
1834 #define ULONG_TYPEDEFED 1
9354c460d76b Added some type declarations to allow better interoperability with Regina
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 487
diff changeset
1835 #define LONG_TYPEDEFED 1
9354c460d76b Added some type declarations to allow better interoperability with Regina
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 487
diff changeset
1836 #define USHORT_TYPEDEFED 1
9354c460d76b Added some type declarations to allow better interoperability with Regina
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 487
diff changeset
1837 #define SHORT_TYPEDEFED 1
9354c460d76b Added some type declarations to allow better interoperability with Regina
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 487
diff changeset
1838 #define UWORD_TYPEDEFED 1
9354c460d76b Added some type declarations to allow better interoperability with Regina
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 487
diff changeset
1839 #define WORD_TYPEDEFED 1
9354c460d76b Added some type declarations to allow better interoperability with Regina
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 487
diff changeset
1840 #define UCHAR_TYPEDEFED 1
9354c460d76b Added some type declarations to allow better interoperability with Regina
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 487
diff changeset
1841 #define CHAR_TYPEDEFED 1
9354c460d76b Added some type declarations to allow better interoperability with Regina
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 487
diff changeset
1842 #define UINT_TYPEDEFED 1
9354c460d76b Added some type declarations to allow better interoperability with Regina
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 487
diff changeset
1843 #define INT_TYPEDEFED 1
9354c460d76b Added some type declarations to allow better interoperability with Regina
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 487
diff changeset
1844
2070
370baf78abdc Mac: Added dw_app_id_set() and updates to generate the APP ID automatically.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2069
diff changeset
1845 /* Use the dbsoft.org application domain by default if not specified */
370baf78abdc Mac: Added dw_app_id_set() and updates to generate the APP ID automatically.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2069
diff changeset
1846 #define DW_APP_DOMAIN_DEFAULT "org.dbsoft.dwindows"
370baf78abdc Mac: Added dw_app_id_set() and updates to generate the APP ID automatically.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2069
diff changeset
1847
2283
0c88059df8e9 Add forwarder macros to the new names of the "query" functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2271
diff changeset
1848 /* Forwarder macros to the future names of these functions */
0c88059df8e9 Add forwarder macros to the new names of the "query" functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2271
diff changeset
1849 #define dw_pointer_get_pos(a, b) dw_pointer_query_pos(a, b)
0c88059df8e9 Add forwarder macros to the new names of the "query" functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2271
diff changeset
1850 #define dw_environment_get(a) dw_environment_query(a)
0c88059df8e9 Add forwarder macros to the new names of the "query" functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2271
diff changeset
1851 #define dw_container_get_start(a, b) dw_container_query_start(a, b)
0c88059df8e9 Add forwarder macros to the new names of the "query" functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2271
diff changeset
1852 #define dw_container_get_next(a, b) dw_container_query_next(a, b)
0c88059df8e9 Add forwarder macros to the new names of the "query" functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2271
diff changeset
1853
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2376
diff changeset
1854 /* Entrypoint handling macros */
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2376
diff changeset
1855 #ifdef __IOS__
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2376
diff changeset
1856 #define dwmain(a, b) \
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2376
diff changeset
1857 _dwmain(a, b); \
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2376
diff changeset
1858 void _dw_main_thread(int argc, char **argv); \
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2376
diff changeset
1859 void _dw_main_launch(void **); \
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2376
diff changeset
1860 int main(a, b) { \
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2376
diff changeset
1861 void **data = calloc(sizeof(void *), 3); \
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2376
diff changeset
1862 data[0] = DW_POINTER(_dwmain); \
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2376
diff changeset
1863 data[1] = DW_INT_TO_POINTER(argc); \
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2376
diff changeset
1864 data[2] = DW_POINTER(argv); \
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2376
diff changeset
1865 dw_thread_new(_dw_main_launch, data, 0); \
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2376
diff changeset
1866 _dw_main_thread(argc, argv); } \
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2376
diff changeset
1867 int _dwmain(a, b)
2398
4de830d3bf9e Win: Remove winmain.c as it is unnecessary when using the dwmain() entrypoint macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
1868 #elif defined(__WIN32__)
4de830d3bf9e Win: Remove winmain.c as it is unnecessary when using the dwmain() entrypoint macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
1869 #define dwmain(a, b) \
4de830d3bf9e Win: Remove winmain.c as it is unnecessary when using the dwmain() entrypoint macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
1870 _dwmain(a, b); \
4de830d3bf9e Win: Remove winmain.c as it is unnecessary when using the dwmain() entrypoint macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
1871 char ** API _dw_convertargs(int *count, char *start, HINSTANCE hInstance); \
4de830d3bf9e Win: Remove winmain.c as it is unnecessary when using the dwmain() entrypoint macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
1872 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {\
4de830d3bf9e Win: Remove winmain.c as it is unnecessary when using the dwmain() entrypoint macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
1873 int argc; \
4de830d3bf9e Win: Remove winmain.c as it is unnecessary when using the dwmain() entrypoint macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
1874 char **argv = _dw_convertargs(&argc, lpCmdLine, hInstance); \
4de830d3bf9e Win: Remove winmain.c as it is unnecessary when using the dwmain() entrypoint macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
1875 return _dwmain(argc, argv); } \
4de830d3bf9e Win: Remove winmain.c as it is unnecessary when using the dwmain() entrypoint macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
1876 int _dwmain(a, b)
2474
a13e6db064f4 Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2473
diff changeset
1877 #elif defined(__ANDROID__)
a13e6db064f4 Android: Implement thread, semaphore, shared memory API functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2473
diff changeset
1878 int dwmain(int argc, char *argv[]);
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2376
diff changeset
1879 #else
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2376
diff changeset
1880 #define dwmain(a, b) main(a, b)
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2376
diff changeset
1881 #endif
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2376
diff changeset
1882
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1883 /* Public function prototypes */
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1884 void API dw_box_pack_start(HWND box, HWND item, int width, int height, int hsize, int vsize, int pad);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1885 void API dw_box_pack_end(HWND box, HWND item, int width, int height, int hsize, int vsize, int pad);
1077
34f1d6f5f1c3 Added function dw_box_pack_at_index() on Windows, Mac and OS/2. And an example usage in dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1075
diff changeset
1886 void API dw_box_pack_at_index(HWND box, HWND item, int index, int width, int height, int hsize, int vsize, int pad);
1769
d81bebc5c8cc Mark and I decided to change dw_box_remove*() to dw_box_unpack*() for consistency.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1768
diff changeset
1887 HWND API dw_box_unpack_at_index(HWND box, int index);
d81bebc5c8cc Mark and I decided to change dw_box_remove*() to dw_box_unpack*() for consistency.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1768
diff changeset
1888 int API dw_box_unpack(HWND handle);
2205
a43a3f80ed32 GTK: Changes to include both dw_(int_)init() functions with deprecated.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2204
diff changeset
1889 int API dw_init(int newthread, int argc, char *argv[]);
2202
c677d728e143 GTK3: Switch to using GResource for compiled in image resources.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2171
diff changeset
1890 #ifdef DW_INCLUDE_DEPRECATED_RESOURCES
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1891 int API dw_int_init(DWResources *res, int newthread, int *argc, char **argv[]);
134
caeb52bb5ef4 Pass pointers to argc and argv on Unix.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 120
diff changeset
1892 #define dw_init(a, b, c) dw_int_init(&_resources, a, &b, &c)
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1893 #endif
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1894 void API dw_main(void);
1528
5facb5380944 Added dw_main_quit() function for exiting the dw_main() loop.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1523
diff changeset
1895 void API dw_main_quit(void);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1896 void API dw_main_sleep(int seconds);
203
e0beea487e8f Added the basics for scrollbar thumb size on OS/2, and dw_main_iteration()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 199
diff changeset
1897 void API dw_main_iteration(void);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1898 void API dw_free(void *ptr);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1899 int API dw_window_show(HWND handle);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1900 int API dw_window_hide(HWND handle);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1901 int API dw_window_minimize(HWND handle);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1902 int API dw_window_raise(HWND handle);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1903 int API dw_window_lower(HWND handle);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1904 int API dw_window_destroy(HWND handle);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1905 void API dw_window_redraw(HWND handle);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
1906 int API dw_window_set_font(HWND handle, const char *fontname);
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1907 char * API dw_window_get_font(HWND handle);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1908 int API dw_window_set_color(HWND handle, unsigned long fore, unsigned long back);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
1909 HWND API dw_window_new(HWND hwndOwner, const char *title, unsigned long flStyle);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1910 HWND API dw_box_new(int type, int pad);
634
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 633
diff changeset
1911 HWND API dw_scrollbox_new(int type, int pad);
731
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1912 int API dw_scrollbox_get_pos( HWND handle, int orient );
6a589a1a42b0 Add dw_window_get_font()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 724
diff changeset
1913 int API dw_scrollbox_get_range( HWND handle, int orient );
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
1914 HWND API dw_groupbox_new(int type, int pad, const char *title);
1598
a2cd4b78048f Added initial API deprecation support for clang, GCC and Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1595
diff changeset
1915 DW_DEPRECATED(HWND API dw_mdi_new(unsigned long id), "Due to lack of full Mac support consider avoiding this function.");
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1916 HWND API dw_bitmap_new(unsigned long id);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
1917 HWND API dw_bitmapbutton_new(const char *text, unsigned long id);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
1918 HWND API dw_bitmapbutton_new_from_file(const char *text, unsigned long id, const char *filename);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
1919 HWND API dw_bitmapbutton_new_from_data(const char *text, unsigned long id, const char *str, int len);
350
2216e65ad2ae Removed slider flags and container selection flags from the header file.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 346
diff changeset
1920 HWND API dw_container_new(unsigned long id, int multi);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1921 HWND API dw_tree_new(unsigned long id);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
1922 HWND API dw_text_new(const char *text, unsigned long id);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
1923 HWND API dw_status_text_new(const char *text, unsigned long id);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1924 HWND API dw_mle_new(unsigned long id);
2036
48b91f535f82 GTK: More const changes... a few more commits to finish.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2035
diff changeset
1925 HWND API dw_entryfield_new(const char *text, unsigned long id);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
1926 HWND API dw_entryfield_password_new(const char *text, ULONG id);
2036
48b91f535f82 GTK: More const changes... a few more commits to finish.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2035
diff changeset
1927 HWND API dw_combobox_new(const char *text, unsigned long id);
48b91f535f82 GTK: More const changes... a few more commits to finish.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2035
diff changeset
1928 HWND API dw_button_new(const char *text, unsigned long id);
48b91f535f82 GTK: More const changes... a few more commits to finish.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2035
diff changeset
1929 HWND API dw_spinbutton_new(const char *text, unsigned long id);
48b91f535f82 GTK: More const changes... a few more commits to finish.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2035
diff changeset
1930 HWND API dw_radiobutton_new(const char *text, ULONG id);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1931 HWND API dw_percent_new(unsigned long id);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1932 HWND API dw_slider_new(int vertical, int increments, ULONG id);
511
80dbd5a1f403 Removed the increments parameter from dw_scrollbar_new().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 510
diff changeset
1933 HWND API dw_scrollbar_new(int vertical, ULONG id);
2036
48b91f535f82 GTK: More const changes... a few more commits to finish.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2035
diff changeset
1934 HWND API dw_checkbox_new(const char *text, unsigned long id);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1935 HWND API dw_listbox_new(unsigned long id, int multi);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
1936 void API dw_listbox_append(HWND handle, const char *text);
2036
48b91f535f82 GTK: More const changes... a few more commits to finish.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2035
diff changeset
1937 void API dw_listbox_insert(HWND handle, const char *text, int pos);
571
828e6a66c5c5 Add dw_listbox_list_append()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 567
diff changeset
1938 void API dw_listbox_list_append(HWND handle, char **text, int count);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1939 void API dw_listbox_clear(HWND handle);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1940 int API dw_listbox_count(HWND handle);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1941 void API dw_listbox_set_top(HWND handle, int top);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1942 void API dw_listbox_select(HWND handle, int index, int state);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1943 void API dw_listbox_delete(HWND handle, int index);
510
710f82598210 Change function names to be inline with Mark Hessling's Rexx/DW.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 508
diff changeset
1944 void API dw_listbox_get_text(HWND handle, unsigned int index, char *buffer, unsigned int length);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
1945 void API dw_listbox_set_text(HWND handle, unsigned int index, const char *buffer);
986
87dc0f5f96d0 Fix return type of dw_listbox_selected() to be "int" instead of "unsigned int" to allow -1 return.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 984
diff changeset
1946 int API dw_listbox_selected(HWND handle);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1947 int API dw_listbox_selected_multi(HWND handle, int where);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1948 void API dw_percent_set_pos(HWND handle, unsigned int position);
510
710f82598210 Change function names to be inline with Mark Hessling's Rexx/DW.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 508
diff changeset
1949 unsigned int API dw_slider_get_pos(HWND handle);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1950 void API dw_slider_set_pos(HWND handle, unsigned int position);
510
710f82598210 Change function names to be inline with Mark Hessling's Rexx/DW.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 508
diff changeset
1951 unsigned int API dw_scrollbar_get_pos(HWND handle);
195
b023d363fc09 Added scrollbar and timer support on OS/2 and GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 185
diff changeset
1952 void API dw_scrollbar_set_pos(HWND handle, unsigned int position);
203
e0beea487e8f Added the basics for scrollbar thumb size on OS/2, and dw_main_iteration()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 199
diff changeset
1953 void API dw_scrollbar_set_range(HWND handle, unsigned int range, unsigned int visible);
634
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 633
diff changeset
1954 void API dw_window_set_pos(HWND handle, long x, long y);
510
710f82598210 Change function names to be inline with Mark Hessling's Rexx/DW.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 508
diff changeset
1955 void API dw_window_set_size(HWND handle, unsigned long width, unsigned long height);
634
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 633
diff changeset
1956 void API dw_window_set_pos_size(HWND handle, long x, long y, unsigned long width, unsigned long height);
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 633
diff changeset
1957 void API dw_window_get_pos_size(HWND handle, long *x, long *y, unsigned long *width, unsigned long *height);
1430
cfc7af97c295 Added dw_window_set_preferred_size() prototype to the header.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1415
diff changeset
1958 void API dw_window_get_preferred_size(HWND handle, int *width, int *height);
1468
b2235efd9914 Rewrite of window position code for GTK2. DW_BORDER_WIDTH and DW_BORDER_HEIGHT
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1437
diff changeset
1959 void API dw_window_set_gravity(HWND handle, int horz, int vert);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1960 void API dw_window_set_style(HWND handle, unsigned long style, unsigned long mask);
672
388f2a48aaae Missed one function to typedef. Fixed errors in the test program and switched to using
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 671
diff changeset
1961 void API dw_window_set_icon(HWND handle, HICN icon);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
1962 void API dw_window_set_bitmap(HWND handle, unsigned long id, const char *filename);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
1963 void API dw_window_set_bitmap_from_data(HWND handle, unsigned long id, const char *data, int len);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1964 char * API dw_window_get_text(HWND handle);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
1965 void API dw_window_set_text(HWND handle, const char *text);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
1966 void API dw_window_set_tooltip(HWND handle, const char *bubbletext);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1967 int API dw_window_set_border(HWND handle, int border);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1968 void API dw_window_disable(HWND handle);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1969 void API dw_window_enable(HWND handle);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1970 void API dw_window_capture(HWND handle);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1971 void API dw_window_release(void);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1972 void API dw_window_reparent(HWND handle, HWND newparent);
510
710f82598210 Change function names to be inline with Mark Hessling's Rexx/DW.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 508
diff changeset
1973 void API dw_window_set_pointer(HWND handle, int pointertype);
1795
9304241b7b33 Added new dw_window_set_focus() function and attempted to fix...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1790
diff changeset
1974 void API dw_window_set_focus(HWND handle);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1975 void API dw_window_default(HWND window, HWND defaultitem);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1976 void API dw_window_click_default(HWND window, HWND next);
2036
48b91f535f82 GTK: More const changes... a few more commits to finish.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2035
diff changeset
1977 unsigned int API dw_mle_import(HWND handle, const char *buffer, int startpoint);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1978 void API dw_mle_export(HWND handle, char *buffer, int startpoint, int length);
510
710f82598210 Change function names to be inline with Mark Hessling's Rexx/DW.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 508
diff changeset
1979 void API dw_mle_get_size(HWND handle, unsigned long *bytes, unsigned long *lines);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1980 void API dw_mle_delete(HWND handle, int startpoint, int length);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1981 void API dw_mle_clear(HWND handle);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1982 void API dw_mle_freeze(HWND handle);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1983 void API dw_mle_thaw(HWND handle);
510
710f82598210 Change function names to be inline with Mark Hessling's Rexx/DW.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 508
diff changeset
1984 void API dw_mle_set_cursor(HWND handle, int point);
513
7755599311d4 Fixes search and replace errors.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 511
diff changeset
1985 void API dw_mle_set_visible(HWND handle, int line);
7755599311d4 Fixes search and replace errors.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 511
diff changeset
1986 void API dw_mle_set_editable(HWND handle, int state);
7755599311d4 Fixes search and replace errors.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 511
diff changeset
1987 void API dw_mle_set_word_wrap(HWND handle, int state);
1924
c47a04d83b90 Added dw_mle_set_auto_complete() to enable MLE auto completion on supported platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1897
diff changeset
1988 void API dw_mle_set_auto_complete(HWND handle, int state);
2036
48b91f535f82 GTK: More const changes... a few more commits to finish.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2035
diff changeset
1989 int API dw_mle_search(HWND handle, const char *text, int point, unsigned long flags);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1990 void API dw_spinbutton_set_pos(HWND handle, long position);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1991 void API dw_spinbutton_set_limits(HWND handle, long upper, long lower);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1992 void API dw_entryfield_set_limit(HWND handle, ULONG limit);
510
710f82598210 Change function names to be inline with Mark Hessling's Rexx/DW.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 508
diff changeset
1993 long API dw_spinbutton_get_pos(HWND handle);
710f82598210 Change function names to be inline with Mark Hessling's Rexx/DW.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 508
diff changeset
1994 int API dw_checkbox_get(HWND handle);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1995 void API dw_checkbox_set(HWND handle, int value);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
1996 HTREEITEM API dw_tree_insert(HWND handle, const char *title, HICN icon, HTREEITEM parent, void *itemdata);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
1997 HTREEITEM API dw_tree_insert_after(HWND handle, HTREEITEM item, const char *title, HICN icon, HTREEITEM parent, void *itemdata);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
1998 void API dw_tree_clear(HWND handle);
510
710f82598210 Change function names to be inline with Mark Hessling's Rexx/DW.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 508
diff changeset
1999 void API dw_tree_item_delete(HWND handle, HTREEITEM item);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2000 void API dw_tree_item_change(HWND handle, HTREEITEM item, const char *title, HICN icon);
510
710f82598210 Change function names to be inline with Mark Hessling's Rexx/DW.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 508
diff changeset
2001 void API dw_tree_item_expand(HWND handle, HTREEITEM item);
710f82598210 Change function names to be inline with Mark Hessling's Rexx/DW.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 508
diff changeset
2002 void API dw_tree_item_collapse(HWND handle, HTREEITEM item);
328
e00aff2b899e Tree item handles are now of the type HTREEITEM instead of HWND since they
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 325
diff changeset
2003 void API dw_tree_item_select(HWND handle, HTREEITEM item);
513
7755599311d4 Fixes search and replace errors.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 511
diff changeset
2004 void API dw_tree_item_set_data(HWND handle, HTREEITEM item, void *itemdata);
510
710f82598210 Change function names to be inline with Mark Hessling's Rexx/DW.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 508
diff changeset
2005 void * API dw_tree_item_get_data(HWND handle, HTREEITEM item);
478
ea099ba917c6 Added two new tree functions, get_title and get_parent and finished the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 471
diff changeset
2006 char * API dw_tree_get_title(HWND handle, HTREEITEM item);
ea099ba917c6 Added two new tree functions, get_title and get_parent and finished the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 471
diff changeset
2007 HTREEITEM API dw_tree_get_parent(HWND handle, HTREEITEM item);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2008 int API dw_container_setup(HWND handle, unsigned long *flags, char **titles, int count, int separator);
671
c60a4f6cfae8 Implemented icon support on the Mac. In the process created a new HICN type.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 650
diff changeset
2009 HICN API dw_icon_load(unsigned long module, unsigned long id);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2010 HICN API dw_icon_load_from_file(const char *filename);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2011 HICN API dw_icon_load_from_data(const char *data, int len);
671
c60a4f6cfae8 Implemented icon support on the Mac. In the process created a new HICN type.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 650
diff changeset
2012 void API dw_icon_free(HICN handle);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2013 void * API dw_container_alloc(HWND handle, int rowcount);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2014 void API dw_container_set_item(HWND handle, void *pointer, int column, int row, void *data);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2015 void API dw_container_change_item(HWND handle, int column, int row, void *data);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2016 void API dw_container_set_column_width(HWND handle, int column, int width);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2017 void API dw_container_set_row_title(void *pointer, int row, const char *title);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2018 void API dw_container_change_row_title(HWND handle, int row, const char *title);
1871
3f571ad9b92e First Mac round of changes aimed at separating the data and text
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1863
diff changeset
2019 void API dw_container_set_row_data(void *pointer, int row, void *data);
3f571ad9b92e First Mac round of changes aimed at separating the data and text
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1863
diff changeset
2020 void API dw_container_change_row_data(HWND handle, int row, void *data);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2021 void API dw_container_insert(HWND handle, void *pointer, int rowcount);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2022 void API dw_container_clear(HWND handle, int redraw);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2023 void API dw_container_delete(HWND handle, int rowcount);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2024 char * API dw_container_query_start(HWND handle, unsigned long flags);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2025 char * API dw_container_query_next(HWND handle, unsigned long flags);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2026 void API dw_container_scroll(HWND handle, int direction, long rows);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2027 void API dw_container_cursor(HWND handle, const char *text);
1871
3f571ad9b92e First Mac round of changes aimed at separating the data and text
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1863
diff changeset
2028 void API dw_container_cursor_by_data(HWND handle, void *data);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2029 void API dw_container_delete_row(HWND handle, const char *text);
1871
3f571ad9b92e First Mac round of changes aimed at separating the data and text
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1863
diff changeset
2030 void API dw_container_delete_row_by_data(HWND handle, void *data);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2031 void API dw_container_optimize(HWND handle);
1291
b99b0b2c2826 Renamed dw_container_set_row_bg() to dw_container_set_stripe().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1269
diff changeset
2032 void API dw_container_set_stripe(HWND handle, unsigned long oddcolor, unsigned long evencolor);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2033 void API dw_filesystem_set_column_title(HWND handle, const char *title);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2034 int API dw_filesystem_setup(HWND handle, unsigned long *flags, char **titles, int count);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2035 void API dw_filesystem_set_item(HWND handle, void *pointer, int column, int row, void *data);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2036 void API dw_filesystem_set_file(HWND handle, void *pointer, int row, const char *filename, HICN icon);
503
f3ed8dda02f8 Added dw_filesystem_change_*() and testcase code from Mark in dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 494
diff changeset
2037 void API dw_filesystem_change_item(HWND handle, int column, int row, void *data);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2038 void API dw_filesystem_change_file(HWND handle, int row, const char *filename, HICN icon);
508
078a40ba2e41 Added dw_container_get_column_type and dw_filesystem_get_column_type.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 507
diff changeset
2039 int API dw_container_get_column_type(HWND handle, int column);
078a40ba2e41 Added dw_container_get_column_type and dw_filesystem_get_column_type.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 507
diff changeset
2040 int API dw_filesystem_get_column_type(HWND handle, int column);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2041 void API dw_taskbar_insert(HWND handle, HICN icon, const char *bubbletext);
671
c60a4f6cfae8 Implemented icon support on the Mac. In the process created a new HICN type.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 650
diff changeset
2042 void API dw_taskbar_delete(HWND handle, HICN icon);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2043 int API dw_screen_width(void);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2044 int API dw_screen_height(void);
514
08d770271709 More function name changes for Rexx/DW compatibility.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 513
diff changeset
2045 unsigned long API dw_color_depth_get(void);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2046 HWND API dw_notebook_new(unsigned long id, int top);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2047 unsigned long API dw_notebook_page_new(HWND handle, unsigned long flags, int front);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2048 void API dw_notebook_page_destroy(HWND handle, unsigned int pageid);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2049 void API dw_notebook_page_set_text(HWND handle, unsigned long pageid, const char *text);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2050 void API dw_notebook_page_set_status_text(HWND handle, unsigned long pageid, const char *text);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2051 void API dw_notebook_page_set(HWND handle, unsigned int pageid);
510
710f82598210 Change function names to be inline with Mark Hessling's Rexx/DW.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 508
diff changeset
2052 unsigned long API dw_notebook_page_get(HWND handle);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2053 void API dw_notebook_pack(HWND handle, unsigned long pageid, HWND page);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2054 HWND API dw_splitbar_new(int type, HWND topleft, HWND bottomright, unsigned long id);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2055 void API dw_splitbar_set(HWND handle, float percent);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2056 float API dw_splitbar_get(HWND handle);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2057 HMENUI API dw_menu_new(unsigned long id);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2058 HMENUI API dw_menubar_new(HWND location);
2036
48b91f535f82 GTK: More const changes... a few more commits to finish.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2035
diff changeset
2059 HWND API dw_menu_append_item(HMENUI menu, const char *title, unsigned long id, unsigned long flags, int end, int check, HMENUI submenu);
1371
896347a9be19 Initial versions of dw_menu_delete_item() on OS/2 and Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1350
diff changeset
2060 int API dw_menu_delete_item(HMENUI menu, unsigned long id);
1598
a2cd4b78048f Added initial API deprecation support for clang, GCC and Visual C.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1595
diff changeset
2061 DW_DEPRECATED(void API dw_menu_item_set_check(HMENUI menu, unsigned long id, int check), "Use dw_menu_item_set_state() for new code.");
618
a431ee5e049f Added dw_menu_item_set_state() to set checked status of menu item and ability to enable/disable menu items.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 613
diff changeset
2062 void API dw_menu_item_set_state( HMENUI menux, unsigned long id, unsigned long state);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2063 void API dw_menu_popup(HMENUI *menu, HWND parent, int x, int y);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2064 void API dw_menu_destroy(HMENUI *menu);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2065 void API dw_pointer_query_pos(long *x, long *y);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2066 void API dw_pointer_set_pos(long x, long y);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2067 void API dw_window_function(HWND handle, void *function, void *data);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2068 HWND API dw_window_from_id(HWND handle, int id);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2069 HMTX API dw_mutex_new(void);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2070 void API dw_mutex_close(HMTX mutex);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2071 void API dw_mutex_lock(HMTX mutex);
1171
13d046d301f7 Added missing dw_mutex_trylock() prototype to header file.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1168
diff changeset
2072 int API dw_mutex_trylock(HMTX mutex);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2073 void API dw_mutex_unlock(HMTX mutex);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2074 HEV API dw_event_new(void);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2075 int API dw_event_reset(HEV eve);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2076 int API dw_event_post(HEV eve);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2077 int API dw_event_wait(HEV eve, unsigned long timeout);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2078 int API dw_event_close (HEV *eve);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2079 DWTID API dw_thread_new(void *func, void *data, int stack);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2080 void API dw_thread_end(void);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2081 DWTID API dw_thread_id(void);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2082 void API dw_exit(int exitcode);
1861
c836603d3f14 Add dw_shutdown() function which does the same thing as dw_exit() ...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1858
diff changeset
2083 void API dw_shutdown(void);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2084 HWND API dw_render_new(unsigned long id);
2355
fad0821cb953 Add new function dw_render_redraw() which will trigger expose event on render widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2284
diff changeset
2085 void API dw_render_redraw(HWND handle);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2086 void API dw_color_foreground_set(unsigned long value);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2087 void API dw_color_background_set(unsigned long value);
566
f6de197ecbe9 Add dw_color_choose()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 564
diff changeset
2088 unsigned long API dw_color_choose(unsigned long value);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2089 char * API dw_font_choose(const char *currfont);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2090 void API dw_draw_point(HWND handle, HPIXMAP pixmap, int x, int y);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2091 void API dw_draw_line(HWND handle, HPIXMAP pixmap, int x1, int y1, int x2, int y2);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2092 void API dw_draw_rect(HWND handle, HPIXMAP pixmap, int fill, int x, int y, int width, int height);
633
87db549e79bc Add dw_polygon_draw() to draw closed polygons.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 624
diff changeset
2093 void API dw_draw_polygon(HWND handle, HPIXMAP pixmap, int fill, int npoints, int *x, int *y);
1261
61d0c5f84644 Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1253
diff changeset
2094 void API dw_draw_arc(HWND handle, HPIXMAP pixmap, int flags, int xorigin, int yorigin, int x1, int y1, int x2, int y2);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2095 void API dw_draw_text(HWND handle, HPIXMAP pixmap, int x, int y, const char *text);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2096 void API dw_font_text_extents_get(HWND handle, HPIXMAP pixmap, const char *text, int *width, int *height);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2097 void API dw_font_set_default(const char *fontname);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2098 void API dw_flush(void);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2099 void API dw_pixmap_bitblt(HWND dest, HPIXMAP destp, int xdest, int ydest, int width, int height, HWND src, HPIXMAP srcp, int xsrc, int ysrc);
1243
c191a562c14a Added new dw_pixmap_stretch_bitblt() function on Windows and OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1212
diff changeset
2100 int API dw_pixmap_stretch_bitblt(HWND dest, HPIXMAP destp, int xdest, int ydest, int width, int height, HWND src, HPIXMAP srcp, int xsrc, int ysrc, int srcwidth, int srcheight);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2101 HPIXMAP API dw_pixmap_new(HWND handle, unsigned long width, unsigned long height, int depth);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2102 HPIXMAP API dw_pixmap_new_from_file(HWND handle, const char *filename);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2103 HPIXMAP API dw_pixmap_new_from_data(HWND handle, const char *data, int len);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2104 HPIXMAP API dw_pixmap_grab(HWND handle, ULONG id);
634
c6a216c8174f Support for setting transparent colour for bitmaps
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 633
diff changeset
2105 void API dw_pixmap_set_transparent_color( HPIXMAP pixmap, ULONG color );
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2106 int API dw_pixmap_set_font(HPIXMAP pixmap, const char *fontname);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2107 void API dw_pixmap_destroy(HPIXMAP pixmap);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2108 void API dw_beep(int freq, int dur);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2109 void API dw_debug(const char *format, ...);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2110 int API dw_messagebox(const char *title, int flags, const char *format, ...);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2111 void API dw_environment_query(DWEnv *env);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2112 int API dw_exec(const char *program, int type, char **params);
2036
48b91f535f82 GTK: More const changes... a few more commits to finish.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2035
diff changeset
2113 int API dw_browse(const char *url);
2035
ea303d356419 Mac: Const changes to match the Windows changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2034
diff changeset
2114 char * API dw_file_browse(const char *title, const char *defpath, const char *ext, int flags);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2115 char * API dw_user_dir(void);
1384
156e32814c83 Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1371
diff changeset
2116 char * API dw_app_dir(void);
2105
10c22853b479 Add dw_app_id_set() dwtest call to set application name and ID for sending notifications.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2090
diff changeset
2117 int API dw_app_id_set(const char *appid, const char *appname);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2118 DWDialog * API dw_dialog_new(void *data);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2119 int API dw_dialog_dismiss(DWDialog *dialog, void *result);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2120 void * API dw_dialog_wait(DWDialog *dialog);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2121 void API dw_window_set_data(HWND window, const char *dataname, void *data);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2122 void * API dw_window_get_data(HWND window, const char *dataname);
2036
48b91f535f82 GTK: More const changes... a few more commits to finish.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2035
diff changeset
2123 int API dw_module_load(const char *name, HMOD *handle);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2124 int API dw_module_symbol(HMOD handle, const char *name, void**func);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2125 int API dw_module_close(HMOD handle);
199
b955228477b3 Removed the window parameter to dw_timer_connect() it was no needed.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 195
diff changeset
2126 int API dw_timer_connect(int interval, void *sigfunc, void *data);
195
b023d363fc09 Added scrollbar and timer support on OS/2 and GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 185
diff changeset
2127 void API dw_timer_disconnect(int id);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2128 void API dw_signal_connect(HWND window, const char *signame, void *sigfunc, void *data);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2129 void API dw_signal_connect_data(HWND window, const char *signame, void *sigfunc, void *discfunc, void *data);
174
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2130 void API dw_signal_disconnect_by_window(HWND window);
75bf3051235f Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 167
diff changeset
2131 void API dw_signal_disconnect_by_data(HWND window, void *data);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2132 void API dw_signal_disconnect_by_name(HWND window, const char *signame);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2133 HEV API dw_named_event_new(const char *name);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2134 HEV API dw_named_event_get(const char *name);
557
1a210e2f214b Added a bunch of support routines I now own due to the settlement
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 535
diff changeset
2135 int API dw_named_event_reset(HEV eve);
1a210e2f214b Added a bunch of support routines I now own due to the settlement
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 535
diff changeset
2136 int API dw_named_event_post(HEV eve);
1a210e2f214b Added a bunch of support routines I now own due to the settlement
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 535
diff changeset
2137 int API dw_named_event_wait(HEV eve, unsigned long timeout);
1a210e2f214b Added a bunch of support routines I now own due to the settlement
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 535
diff changeset
2138 int API dw_named_event_close(HEV eve);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2139 HSHM API dw_named_memory_new(void **dest, int size, const char *name);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2140 HSHM API dw_named_memory_get(void **dest, int size, const char *name);
557
1a210e2f214b Added a bunch of support routines I now own due to the settlement
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 535
diff changeset
2141 int API dw_named_memory_free(HSHM handle, void *ptr);
584
420c6c94abc7 Added dw_html_* functionality for embedding HTML pages in Dynamic Windows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 571
diff changeset
2142 void API dw_html_action(HWND hwnd, int action);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2143 int API dw_html_raw(HWND hwnd, const char *string);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2144 int API dw_html_url(HWND hwnd, const char *url);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2145 int API dw_html_javascript_run(HWND hwnd, const char *script, void *scriptdata);
584
420c6c94abc7 Added dw_html_* functionality for embedding HTML pages in Dynamic Windows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 571
diff changeset
2146 HWND API dw_html_new(unsigned long id);
613
f7d318cffc3e Fix compiler error
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 612
diff changeset
2147 char * API dw_clipboard_get_text(void);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2148 void API dw_clipboard_set_text(const char *str, int len);
596
a8ea3d68b9ec Update version
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents: 584
diff changeset
2149 HWND API dw_calendar_new(unsigned long id);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2150 void API dw_calendar_set_date(HWND window, unsigned int year, unsigned int month, unsigned int day);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2151 void API dw_calendar_get_date(HWND window, unsigned int *year, unsigned int *month, unsigned int *day);
2036
48b91f535f82 GTK: More const changes... a few more commits to finish.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2035
diff changeset
2152 HPRINT API dw_print_new(const char *jobname, unsigned long flags, unsigned int pages, void *drawfunc, void *drawdata);
1136
1a5b0908659b Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1108
diff changeset
2153 int API dw_print_run(HPRINT print, unsigned long flags);
1a5b0908659b Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1108
diff changeset
2154 void API dw_print_cancel(HPRINT print);
2114
251d050d306b Change dw_notification_new() to take an image path instead of an in-memory HPIXMAP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2105
diff changeset
2155 HWND API dw_notification_new(const char *title, const char *imagepath, const char *description, ...);
2066
2c2530f8cbef Initial design for system notification support on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2036
diff changeset
2156 int API dw_notification_send(HWND notification);
2034
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2157 wchar_t * API dw_utf8_to_wchar(const char *utf8string);
89d62197124b Visual C in C++ mode complains about missing const declarations in paramaters.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2006
diff changeset
2158 char * API dw_wchar_to_utf8(const wchar_t *wstring);
2090
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
2159 int API dw_feature_get(DWFEATURE feature);
cdb94c6fd611 Added initial implmentation of dw_feature_get/set() on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2083
diff changeset
2160 int API dw_feature_set(DWFEATURE feature, int state);
1887
09860ba329a4 Divided thread initialization and deinitialization into separate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1871
diff changeset
2161 /* Exported for language bindings */
09860ba329a4 Divided thread initialization and deinitialization into separate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1871
diff changeset
2162 void API _dw_init_thread(void);
09860ba329a4 Divided thread initialization and deinitialization into separate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1871
diff changeset
2163 void API _dw_deinit_thread(void);
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2164
2000
77e43d71eaa7 Changes to allow mixing C and C++ when including dw.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1991
diff changeset
2165 #ifdef __cplusplus
77e43d71eaa7 Changes to allow mixing C and C++ when including dw.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1991
diff changeset
2166 }
3
ktk@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2167 #endif
2000
77e43d71eaa7 Changes to allow mixing C and C++ when including dw.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1991
diff changeset
2168
77e43d71eaa7 Changes to allow mixing C and C++ when including dw.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 1991
diff changeset
2169 #endif