Mercurial > dwindows
annotate gtk4/dw.c @ 2443:42ba334cb8f7
iOS: DWSpinButton needs to generate events on stepper changes.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Fri, 09 Apr 2021 09:48:13 +0000 |
parents | a80df2e7195d |
children | 8f7c2f20c7c0 |
rev | line source |
---|---|
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2 * Dynamic Windows: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3 * A GTK like cross-platform GUI |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4 * GTK4 forwarder module for portabilty. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5 * |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6 * (C) 2000-2021 Brian Smith <brian@dbsoft.org> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7 * (C) 2003-2011 Mark Hessling <mark@rexx.org> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9 #include "dwconfig.h" |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10 #include "dw.h" |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11 #include <glib/gi18n.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
12 #include <string.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
13 #include <stdlib.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
14 #include <sys/utsname.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
15 #include <sys/socket.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
16 #include <sys/un.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
17 #include <sys/mman.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
18 #include <stdarg.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
19 #include <stdio.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
20 #include <unistd.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
21 #include <ctype.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
22 #include <errno.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
23 #include <sys/time.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
24 #include <dirent.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
25 #include <sys/stat.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
26 #include <signal.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
27 #include <fcntl.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
28 #include <unistd.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
29 #include <math.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
30 #include <gdk/gdkkeysyms.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
31 |
2320
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
32 #ifdef GDK_WINDOWING_X11 |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
33 #include <gdk/x11/gdkx.h> |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
34 #endif |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
35 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
36 #ifdef USE_WEBKIT |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
37 #include <webkit2/webkit2.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
38 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
39 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
40 #include <gdk-pixbuf/gdk-pixbuf.h> |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
41 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
42 #if __STDC_VERSION__ < 199901L |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
43 # if __GNUC__ >= 2 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
44 # define __func__ __FUNCTION__ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
45 # else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
46 # define __func__ "<unknown>" |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
47 # endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
48 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
49 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
50 /* Macros to encapsulate running functions on the main thread |
2308
a9018bd91d04
GTK4: Fix DW_SIGNAL_ITEM_ENTER callbacks via the keyboard. Remove mouse
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2306
diff
changeset
|
51 * #define _DW_SINGLE_THREADED to disable thread safety encapsulation. |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
52 * Parameters converted to a pointer array: |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
53 * [0] Pointer to the thread's event semaphore |
2311
f6a6ea6b28fe
Fix a minor typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2310
diff
changeset
|
54 * [1] Pointer to the function's return value |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
55 * [2] Pointer to function parameter 1 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
56 * ... |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
57 */ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
58 #ifndef _DW_SINGLE_THREADED |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
59 #define DW_FUNCTION_DEFINITION(func, rettype, ...) gboolean _##func(void **_args); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
60 rettype API func(__VA_ARGS__) { |
2321
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
61 #define DW_FUNCTION_ADD_PARAM void **_args = alloca(sizeof(void *)*2); \ |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
62 _args[0] = (void *)pthread_getspecific(_dw_event_key); \ |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
63 _args[1] = (void *)NULL; |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
64 #define DW_FUNCTION_ADD_PARAM1(param1) void **_args = alloca(sizeof(void *)*3); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
65 _args[0] = (void *)pthread_getspecific(_dw_event_key); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
66 _args[1] = (void *)NULL; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
67 _args[2] = (void *)¶m1; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
68 #define DW_FUNCTION_ADD_PARAM2(param1, param2) void **_args = alloca(sizeof(void *)*4); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
69 _args[0] = (void *)pthread_getspecific(_dw_event_key); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
70 _args[1] = (void *)NULL; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
71 _args[2] = (void *)¶m1; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
72 _args[3] = (void *)¶m2; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
73 #define DW_FUNCTION_ADD_PARAM3(param1, param2, param3) void **_args = alloca(sizeof(void *)*5); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
74 _args[0] = (void *)pthread_getspecific(_dw_event_key); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
75 _args[1] = (void *)NULL; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
76 _args[2] = (void *)¶m1; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
77 _args[3] = (void *)¶m2; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
78 _args[4] = (void *)¶m3; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
79 #define DW_FUNCTION_ADD_PARAM4(param1, param2, param3, param4) void **_args = alloca(sizeof(void *)*6); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
80 _args[0] = (void *)pthread_getspecific(_dw_event_key); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
81 _args[1] = (void *)NULL; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
82 _args[2] = (void *)¶m1; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
83 _args[3] = (void *)¶m2; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
84 _args[4] = (void *)¶m3; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
85 _args[5] = (void *)¶m4; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
86 #define DW_FUNCTION_ADD_PARAM5(param1, param2, param3, param4, param5) void **_args = alloca(sizeof(void *)*7); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
87 _args[0] = (void *)pthread_getspecific(_dw_event_key); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
88 _args[1] = (void *)NULL; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
89 _args[2] = (void *)¶m1; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
90 _args[3] = (void *)¶m2; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
91 _args[4] = (void *)¶m3; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
92 _args[5] = (void *)¶m4; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
93 _args[6] = (void *)¶m5; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
94 #define DW_FUNCTION_ADD_PARAM6(param1, param2, param3, param4, param5, param6) \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
95 void **_args = alloca(sizeof(void *)*8); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
96 _args[0] = (void *)pthread_getspecific(_dw_event_key); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
97 _args[1] = (void *)NULL; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
98 _args[2] = (void *)¶m1; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
99 _args[3] = (void *)¶m2; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
100 _args[4] = (void *)¶m3; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
101 _args[5] = (void *)¶m4; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
102 _args[6] = (void *)¶m5; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
103 _args[7] = (void *)¶m6; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
104 #define DW_FUNCTION_ADD_PARAM7(param1, param2, param3, param4, param5, param6, param7) \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
105 void **_args = alloca(sizeof(void *)*9); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
106 _args[0] = (void *)pthread_getspecific(_dw_event_key); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
107 _args[1] = (void *)NULL; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
108 _args[2] = (void *)¶m1; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
109 _args[3] = (void *)¶m2; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
110 _args[4] = (void *)¶m3; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
111 _args[5] = (void *)¶m4; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
112 _args[6] = (void *)¶m5; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
113 _args[7] = (void *)¶m6; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
114 _args[8] = (void *)¶m7; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
115 #define DW_FUNCTION_ADD_PARAM8(param1, param2, param3, param4, param5, param6, param7, param8) \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
116 void **_args = alloca(sizeof(void *)*10); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
117 _args[0] = (void *)pthread_getspecific(_dw_event_key); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
118 _args[1] = (void *)NULL; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
119 _args[2] = (void *)¶m1; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
120 _args[3] = (void *)¶m2; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
121 _args[4] = (void *)¶m3; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
122 _args[5] = (void *)¶m4; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
123 _args[6] = (void *)¶m5; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
124 _args[7] = (void *)¶m6; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
125 _args[8] = (void *)¶m7; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
126 _args[9] = (void *)¶m8; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
127 #define DW_FUNCTION_ADD_PARAM9(param1, param2, param3, param4, param5, param6, param7, param8, param9) \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
128 void **_args = alloca(sizeof(void *)*11); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
129 _args[0] = (void *)pthread_getspecific(_dw_event_key); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
130 _args[1] = (void *)NULL; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
131 _args[2] = (void *)¶m1; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
132 _args[3] = (void *)¶m2; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
133 _args[4] = (void *)¶m3; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
134 _args[5] = (void *)¶m4; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
135 _args[6] = (void *)¶m5; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
136 _args[7] = (void *)¶m6; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
137 _args[8] = (void *)¶m7; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
138 _args[9] = (void *)¶m8; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
139 _args[10] = (void *)¶m9; |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
140 #define DW_FUNCTION_ADD_PARAM10(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
141 void **_args = alloca(sizeof(void *)*12); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
142 _args[0] = (void *)pthread_getspecific(_dw_event_key); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
143 _args[1] = (void *)NULL; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
144 _args[2] = (void *)¶m1; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
145 _args[3] = (void *)¶m2; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
146 _args[4] = (void *)¶m3; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
147 _args[5] = (void *)¶m4; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
148 _args[6] = (void *)¶m5; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
149 _args[7] = (void *)¶m6; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
150 _args[8] = (void *)¶m7; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
151 _args[9] = (void *)¶m8; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
152 _args[10] = (void *)¶m9; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
153 _args[11] = (void *)¶m10; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
154 #define DW_FUNCTION_ADD_PARAM11(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
155 void **_args = alloca(sizeof(void *)*13); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
156 _args[0] = (void *)pthread_getspecific(_dw_event_key); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
157 _args[1] = (void *)NULL; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
158 _args[2] = (void *)¶m1; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
159 _args[3] = (void *)¶m2; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
160 _args[4] = (void *)¶m3; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
161 _args[5] = (void *)¶m4; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
162 _args[6] = (void *)¶m5; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
163 _args[7] = (void *)¶m6; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
164 _args[8] = (void *)¶m7; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
165 _args[9] = (void *)¶m8; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
166 _args[10] = (void *)¶m9; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
167 _args[11] = (void *)¶m10; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
168 _args[12] = (void *)¶m11; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
169 #define DW_FUNCTION_ADD_PARAM12(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
170 void **_args = alloca(sizeof(void *)*14); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
171 _args[0] = (void *)pthread_getspecific(_dw_event_key); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
172 _args[1] = (void *)NULL; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
173 _args[2] = (void *)¶m1; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
174 _args[3] = (void *)¶m2; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
175 _args[4] = (void *)¶m3; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
176 _args[5] = (void *)¶m4; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
177 _args[6] = (void *)¶m5; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
178 _args[7] = (void *)¶m6; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
179 _args[8] = (void *)¶m7; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
180 _args[9] = (void *)¶m8; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
181 _args[10] = (void *)¶m9; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
182 _args[11] = (void *)¶m10; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
183 _args[12] = (void *)¶m11; \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
184 _args[13] = (void *)¶m12; |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
185 #define DW_FUNCTION_RESTORE_PARAM1(param1, vartype1) \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
186 vartype1 param1 = *((vartype1 *)_args[2]); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
187 #define DW_FUNCTION_RESTORE_PARAM2(param1, vartype1, param2, vartype2) \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
188 vartype1 param1 = *((vartype1 *)_args[2]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
189 vartype2 param2 = *((vartype2 *)_args[3]); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
190 #define DW_FUNCTION_RESTORE_PARAM3(param1, vartype1, param2, vartype2, param3, vartype3) \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
191 vartype1 param1 = *((vartype1 *)_args[2]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
192 vartype2 param2 = *((vartype2 *)_args[3]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
193 vartype3 param3 = *((vartype3 *)_args[4]); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
194 #define DW_FUNCTION_RESTORE_PARAM4(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4) \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
195 vartype1 param1 = *((vartype1 *)_args[2]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
196 vartype2 param2 = *((vartype2 *)_args[3]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
197 vartype3 param3 = *((vartype3 *)_args[4]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
198 vartype4 param4 = *((vartype4 *)_args[5]); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
199 #define DW_FUNCTION_RESTORE_PARAM5(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5) \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
200 vartype1 param1 = *((vartype1 *)_args[2]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
201 vartype2 param2 = *((vartype2 *)_args[3]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
202 vartype3 param3 = *((vartype3 *)_args[4]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
203 vartype4 param4 = *((vartype4 *)_args[5]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
204 vartype5 param5 = *((vartype5 *)_args[6]); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
205 #define DW_FUNCTION_RESTORE_PARAM6(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5, param6, vartype6) \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
206 vartype1 param1 = *((vartype1 *)_args[2]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
207 vartype2 param2 = *((vartype2 *)_args[3]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
208 vartype3 param3 = *((vartype3 *)_args[4]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
209 vartype4 param4 = *((vartype4 *)_args[5]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
210 vartype5 param5 = *((vartype5 *)_args[6]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
211 vartype6 param6 = *((vartype6 *)_args[7]); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
212 #define DW_FUNCTION_RESTORE_PARAM7(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5, param6, vartype6, param7, vartype7) \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
213 vartype1 param1 = *((vartype1 *)_args[2]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
214 vartype2 param2 = *((vartype2 *)_args[3]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
215 vartype3 param3 = *((vartype3 *)_args[4]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
216 vartype4 param4 = *((vartype4 *)_args[5]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
217 vartype5 param5 = *((vartype5 *)_args[6]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
218 vartype6 param6 = *((vartype6 *)_args[7]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
219 vartype7 param7 = *((vartype7 *)_args[8]); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
220 #define DW_FUNCTION_RESTORE_PARAM8(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5, param6, vartype6, param7, vartype7, param8, vartype8) \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
221 vartype1 param1 = *((vartype1 *)_args[2]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
222 vartype2 param2 = *((vartype2 *)_args[3]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
223 vartype3 param3 = *((vartype3 *)_args[4]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
224 vartype4 param4 = *((vartype4 *)_args[5]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
225 vartype5 param5 = *((vartype5 *)_args[6]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
226 vartype6 param6 = *((vartype6 *)_args[7]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
227 vartype7 param7 = *((vartype7 *)_args[8]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
228 vartype8 param8 = *((vartype8 *)_args[9]); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
229 #define DW_FUNCTION_RESTORE_PARAM9(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5, param6, vartype6, param7, vartype7, param8, vartype8, param9, vartype9) \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
230 vartype1 param1 = *((vartype1 *)_args[2]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
231 vartype2 param2 = *((vartype2 *)_args[3]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
232 vartype3 param3 = *((vartype3 *)_args[4]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
233 vartype4 param4 = *((vartype4 *)_args[5]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
234 vartype5 param5 = *((vartype5 *)_args[6]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
235 vartype6 param6 = *((vartype6 *)_args[7]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
236 vartype7 param7 = *((vartype7 *)_args[8]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
237 vartype8 param8 = *((vartype8 *)_args[9]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
238 vartype9 param9 = *((vartype9 *)_args[10]); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
239 #define DW_FUNCTION_RESTORE_PARAM10(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5, param6, vartype6, param7, vartype7, param8, vartype8, param9, vartype9, param10, vartype10) \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
240 vartype1 param1 = *((vartype1 *)_args[2]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
241 vartype2 param2 = *((vartype2 *)_args[3]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
242 vartype3 param3 = *((vartype3 *)_args[4]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
243 vartype4 param4 = *((vartype4 *)_args[5]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
244 vartype5 param5 = *((vartype5 *)_args[6]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
245 vartype6 param6 = *((vartype6 *)_args[7]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
246 vartype7 param7 = *((vartype7 *)_args[8]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
247 vartype8 param8 = *((vartype8 *)_args[9]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
248 vartype9 param9 = *((vartype9 *)_args[10]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
249 vartype10 param10 = *((vartype10 *)_args[11]); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
250 #define DW_FUNCTION_RESTORE_PARAM11(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5, param6, vartype6, param7, vartype7, param8, vartype8, param9, vartype9, param10, vartype10, param11, vartype11) \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
251 vartype1 param1 = *((vartype1 *)_args[2]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
252 vartype2 param2 = *((vartype2 *)_args[3]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
253 vartype3 param3 = *((vartype3 *)_args[4]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
254 vartype4 param4 = *((vartype4 *)_args[5]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
255 vartype5 param5 = *((vartype5 *)_args[6]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
256 vartype6 param6 = *((vartype6 *)_args[7]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
257 vartype7 param7 = *((vartype7 *)_args[8]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
258 vartype8 param8 = *((vartype8 *)_args[9]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
259 vartype9 param9 = *((vartype9 *)_args[10]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
260 vartype10 param10 = *((vartype10 *)_args[11]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
261 vartype11 param11 = *((vartype11 *)_args[12]); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
262 #define DW_FUNCTION_RESTORE_PARAM12(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5, param6, vartype6, param7, vartype7, param8, vartype8, param9, vartype9, param10, vartype10, param11, vartype11, param12, vartype12) \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
263 vartype1 param1 = *((vartype1 *)_args[2]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
264 vartype2 param2 = *((vartype2 *)_args[3]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
265 vartype3 param3 = *((vartype3 *)_args[4]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
266 vartype4 param4 = *((vartype4 *)_args[5]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
267 vartype5 param5 = *((vartype5 *)_args[6]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
268 vartype6 param6 = *((vartype6 *)_args[7]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
269 vartype7 param7 = *((vartype7 *)_args[8]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
270 vartype8 param8 = *((vartype8 *)_args[9]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
271 vartype9 param9 = *((vartype9 *)_args[10]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
272 vartype10 param10 = *((vartype10 *)_args[11]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
273 vartype11 param11 = *((vartype11 *)_args[12]); \ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
274 vartype12 param12 = *((vartype12 *)_args[13]); |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
275 #define DW_FUNCTION_END } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
276 #define DW_FUNCTION_NO_RETURN(func) dw_event_reset((HEV)_args[0]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
277 if(_dw_thread == (pthread_t)-1 || pthread_self() == _dw_thread) \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
278 _##func(_args); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
279 else { \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
280 g_idle_add_full(G_PRIORITY_HIGH_IDLE, G_SOURCE_FUNC(_##func), (gpointer)_args, NULL); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
281 dw_event_wait((HEV)_args[0], DW_TIMEOUT_INFINITE); } \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
282 }\ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
283 gboolean _##func(void **_args) { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
284 #define DW_FUNCTION_RETURN(func, rettype) dw_event_reset((HEV)_args[0]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
285 if(_dw_thread == (pthread_t)-1 || pthread_self() == _dw_thread) \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
286 _##func(_args); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
287 else { \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
288 g_idle_add_full(G_PRIORITY_HIGH_IDLE, G_SOURCE_FUNC(_##func), (gpointer)_args, NULL); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
289 dw_event_wait((HEV)_args[0], DW_TIMEOUT_INFINITE); } { \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
290 void *tmp = _args[1]; \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
291 rettype myreturn = *((rettype *)tmp); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
292 free(tmp); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
293 return myreturn; } \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
294 } \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
295 gboolean _##func(void **_args) { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
296 #define DW_FUNCTION_RETURN_THIS(_retvar) { void *_myreturn = malloc(sizeof(_retvar)); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
297 memcpy(_myreturn, (void *)&_retvar, sizeof(_retvar)); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
298 _args[1] = _myreturn; } \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
299 dw_event_post((HEV)_args[0]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
300 return FALSE; } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
301 #define DW_FUNCTION_RETURN_NOTHING dw_event_post((HEV)_args[0]); \ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
302 return FALSE; } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
303 #else |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
304 #define DW_FUNCTION_DEFINITION(func, rettype, ...) rettype API func(__VA_ARGS__) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
305 #define DW_FUNCTION_ADD_PARAM1(param1) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
306 #define DW_FUNCTION_ADD_PARAM2(param1, param2) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
307 #define DW_FUNCTION_ADD_PARAM3(param1, param2, param3) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
308 #define DW_FUNCTION_ADD_PARAM4(param1, param2, param3, param4) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
309 #define DW_FUNCTION_ADD_PARAM5(param1, param2, param3, param4, param5) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
310 #define DW_FUNCTION_ADD_PARAM6(param1, param2, param3, param4, param5, param6) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
311 #define DW_FUNCTION_ADD_PARAM7(param1, param2, param3, param4, param5, param6, param7) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
312 #define DW_FUNCTION_ADD_PARAM8(param1, param2, param3, param4, param5, param6, param7, param8) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
313 #define DW_FUNCTION_ADD_PARAM9(param1, param2, param3, param4, param5, param6, param7, param8, param9) |
2312
ada8f7610df0
GTK4: Fix building with -D_DW_SINGLE_THREADED and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2311
diff
changeset
|
314 #define DW_FUNCTION_ADD_PARAM10(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
315 #define DW_FUNCTION_ADD_PARAM11(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
316 #define DW_FUNCTION_ADD_PARAM12(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
317 #define DW_FUNCTION_RESTORE_PARAM1(param1, vartype1) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
318 #define DW_FUNCTION_RESTORE_PARAM2(param1, vartype1, param2, vartype2) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
319 #define DW_FUNCTION_RESTORE_PARAM3(param1, vartype1, param2, vartype2, param3, vartype3) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
320 #define DW_FUNCTION_RESTORE_PARAM4(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
321 #define DW_FUNCTION_RESTORE_PARAM5(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
322 #define DW_FUNCTION_RESTORE_PARAM6(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5, param6, vartype6) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
323 #define DW_FUNCTION_RESTORE_PARAM7(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5, param6, vartype6, param7, vartype7) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
324 #define DW_FUNCTION_RESTORE_PARAM8(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5, param6, vartype6, param7, vartype7, param8, vartype8) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
325 #define DW_FUNCTION_RESTORE_PARAM9(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5, param6, vartype6, param7, vartype7, param8, vartype8, param9, vartype9) |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
326 #define DW_FUNCTION_RESTORE_PARAM10(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5, param6, vartype6, param7, vartype7, param8, vartype8, param9, vartype9, param10, vartype10) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
327 #define DW_FUNCTION_RESTORE_PARAM11(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5, param6, vartype6, param7, vartype7, param8, vartype8, param9, vartype9, param10, vartype10, param11, vartype11) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
328 #define DW_FUNCTION_RESTORE_PARAM12(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5, param6, vartype6, param7, vartype7, param8, vartype8, param9, vartype9, param10, vartype10, param11, vartype11, param12, vartype12) |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
329 #define DW_FUNCTION_END |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
330 #define DW_FUNCTION_NO_RETURN(func) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
331 #define DW_FUNCTION_RETURN(func, rettype) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
332 #define DW_FUNCTION_RETURN_THIS(retvar) return retvar; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
333 #define DW_FUNCTION_RETURN_NOTHING |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
334 #endif |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
335 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
336 /* ff = 255 = 1.0000 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
337 * ee = 238 = 0.9333 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
338 * cc = 204 = 0.8000 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
339 * bb = 187 = 0.7333 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
340 * aa = 170 = 0.6667 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
341 * 77 = 119 = 0.4667 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
342 * 00 = 0 = 0.0000 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
343 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
344 GdkRGBA _colors[] = |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
345 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
346 { 0.0000, 0.0000, 0.0000, 1.0 }, /* 0 black */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
347 { 0.7333, 0.0000, 0.0000, 1.0 }, /* 1 red */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
348 { 0.0000, 0.7333, 0.0000, 1.0 }, /* 2 green */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
349 { 0.6667, 0.6667, 0.0000, 1.0 }, /* 3 yellow */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
350 { 0.0000, 0.0000, 0.8000, 1.0 }, /* 4 blue */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
351 { 0.7333, 0.0000, 0.7333, 1.0 }, /* 5 magenta */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
352 { 0.0000, 0.7333, 0.7333, 1.0 }, /* 6 cyan */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
353 { 0.7333, 0.7333, 0.7333, 1.0 }, /* 7 white */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
354 { 0.4667, 0.4667, 0.4667, 1.0 }, /* 8 grey */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
355 { 1.0000, 0.0000, 0.0000, 1.0 }, /* 9 bright red */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
356 { 0.0000, 1.0000, 0.0000, 1.0 }, /* 10 bright green */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
357 { 0.9333, 0.9333, 0.0000, 1.0 }, /* 11 bright yellow */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
358 { 0.0000, 0.0000, 1.0000, 1.0 }, /* 12 bright blue */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
359 { 1.0000, 0.0000, 1.0000, 1.0 }, /* 13 bright magenta */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
360 { 0.0000, 0.9333, 0.9333, 1.0 }, /* 14 bright cyan */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
361 { 1.0000, 1.0000, 1.0000, 1.0 }, /* 15 bright white */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
362 }; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
363 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
364 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
365 * List those icons that have transparency first |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
366 */ |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
367 static char *_dw_image_exts[] = |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
368 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
369 ".xpm", |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
370 ".png", |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
371 ".ico", |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
372 ".icns", |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
373 ".gif", |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
374 ".jpg", |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
375 ".jpeg", |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
376 ".tiff", |
2312
ada8f7610df0
GTK4: Fix building with -D_DW_SINGLE_THREADED and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2311
diff
changeset
|
377 ".bmp", |
ada8f7610df0
GTK4: Fix building with -D_DW_SINGLE_THREADED and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2311
diff
changeset
|
378 NULL |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
379 }; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
380 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
381 #ifndef max |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
382 # define max(a,b) (((a) > (b)) ? (a) : (b)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
383 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
384 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
385 #ifndef min |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
386 # define min(a,b) (((a) < (b)) ? (a) : (b)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
387 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
388 |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
389 static pthread_key_t _dw_fg_color_key; |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
390 static pthread_key_t _dw_bg_color_key; |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
391 static pthread_key_t _dw_event_key; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
392 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
393 static pthread_t _dw_thread = (pthread_t)-1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
394 |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
395 static GList *_dw_dirty_list = NULL; |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
396 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
397 #define _DW_TREE_TYPE_CONTAINER 1 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
398 #define _DW_TREE_TYPE_TREE 2 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
399 #define _DW_TREE_TYPE_LISTBOX 3 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
400 #define _DW_TREE_TYPE_COMBOBOX 4 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
401 |
2319
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
402 #define _DW_RESOURCE_PATH "/org/dbsoft/dwindows/resources/" |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
403 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
404 /* Signal forwarder prototypes */ |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
405 static gint _dw_button_press_event(GtkGestureSingle *gesture, int n_press, double x, double y, gpointer data); |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
406 static gint _dw_button_release_event(GtkGestureSingle *gesture, int n_press, double x, double y, gpointer data); |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
407 static gint _dw_motion_notify_event(GtkEventControllerMotion *controller, double x, double y, gpointer data); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
408 static gboolean _dw_delete_event(GtkWidget *window, gpointer data); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
409 static gint _dw_key_press_event(GtkEventControllerKey *controller, guint keyval, guint keycode, GdkModifierType state, gpointer data); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
410 static gint _dw_generic_event(GtkWidget *widget, gpointer data); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
411 static gint _dw_configure_event(GtkWidget *widget, int width, int height, gpointer data); |
2309
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
412 static gint _dw_container_enter_event(GtkEventController *controller, guint keyval, guint keycode, GdkModifierType state, gpointer data); |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
413 static gint _dw_combobox_select_event(GtkWidget *widget, gpointer data); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
414 static gint _dw_expose_event(GtkWidget *widget, cairo_t *cr, int width, int height, gpointer data); |
2371
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
415 static void _dw_set_focus_event(GObject *window, GParamSpec *pspec, gpointer data); |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
416 static gint _dw_tree_context_event(GtkGestureSingle *gesture, int n_press, double x, double y, gpointer data); |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
417 static gint _dw_value_changed_event(GtkWidget *widget, gpointer user_data); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
418 static gint _dw_tree_select_event(GtkTreeSelection *sel, gpointer data); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
419 static gint _dw_tree_expand_event(GtkTreeView *treeview, GtkTreeIter *arg1, GtkTreePath *arg2, gpointer data); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
420 static gint _dw_switch_page_event(GtkNotebook *notebook, GtkWidget *page, guint page_num, gpointer data); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
421 static gint _dw_column_click_event(GtkWidget *widget, gpointer data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
422 #ifdef USE_WEBKIT |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
423 static void _dw_html_result_event(GObject *object, GAsyncResult *result, gpointer script_data); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
424 static void _dw_html_changed_event(WebKitWebView *web_view, WebKitLoadEvent load_event, gpointer data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
425 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
426 static void _dw_signal_disconnect(gpointer data, GClosure *closure); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
427 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
428 GObject *_DWObject = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
429 GApplication *_DWApp = NULL; |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
430 GMainLoop *_DWMainLoop = NULL; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
431 static char _dw_app_id[_DW_APP_ID_SIZE+1] = { 0 }; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
432 char *_DWDefaultFont = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
433 static char _dw_share_path[PATH_MAX+1] = { 0 }; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
434 |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
435 typedef struct _dw_signal_list |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
436 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
437 void *func; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
438 char name[30]; |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
439 char gname[30]; |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
440 GObject *(*setup)(struct _dw_signal_list *, GObject *, void *, void *, void *); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
441 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
442 } SignalList; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
443 |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
444 /* Signal setup function prototypes */ |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
445 GObject *_dw_key_setup(struct _dw_signal_list *signal, GObject *object, void *sigfunc, void *discfunc, void *data); |
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
446 GObject *_dw_button_setup(struct _dw_signal_list *signal, GObject *object, void *sigfunc, void *discfunc, void *data); |
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
447 GObject *_dw_mouse_setup(struct _dw_signal_list *signal, GObject *object, void *sigfunc, void *discfunc, void *data); |
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
448 GObject *_dw_motion_setup(struct _dw_signal_list *signal, GObject *object, void *sigfunc, void *discfunc, void *data); |
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
449 GObject *_dw_draw_setup(struct _dw_signal_list *signal, GObject *object, void *sigfunc, void *discfunc, void *data); |
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
450 GObject *_dw_value_setup(struct _dw_signal_list *signal, GObject *object, void *sigfunc, void *discfunc, void *data); |
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
451 GObject *_dw_tree_setup(struct _dw_signal_list *signal, GObject *object, void *sigfunc, void *discfunc, void *data); |
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
452 GObject *_dw_focus_setup(struct _dw_signal_list *signal, GObject *object, void *sigfunc, void *discfunc, void *data); |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
453 #ifdef USE_WEBKIT |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
454 GObject *_dw_html_setup(struct _dw_signal_list *signal, GObject *object, void *sigfunc, void *discfunc, void *data); |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
455 #endif |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
456 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
457 typedef struct |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
458 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
459 HWND window; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
460 void *func; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
461 gpointer data; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
462 gint cid; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
463 void *intfunc; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
464 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
465 } SignalHandler; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
466 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
467 /* A list of signal forwarders, to account for paramater differences. */ |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
468 static SignalList SignalTranslate[] = { |
2371
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
469 { _dw_configure_event, DW_SIGNAL_CONFIGURE, "resize", NULL }, |
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
470 { _dw_key_press_event, DW_SIGNAL_KEY_PRESS, "key-pressed", _dw_key_setup }, |
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
471 { _dw_button_press_event, DW_SIGNAL_BUTTON_PRESS, "pressed", _dw_mouse_setup }, |
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
472 { _dw_button_release_event, DW_SIGNAL_BUTTON_RELEASE, "released", _dw_mouse_setup }, |
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
473 { _dw_motion_notify_event, DW_SIGNAL_MOTION_NOTIFY, "motion", _dw_motion_setup }, |
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
474 { _dw_delete_event, DW_SIGNAL_DELETE, "close-request", NULL }, |
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
475 { _dw_expose_event, DW_SIGNAL_EXPOSE, "draw", _dw_draw_setup }, |
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
476 { _dw_generic_event, DW_SIGNAL_CLICKED, "clicked", _dw_button_setup }, |
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
477 { _dw_container_enter_event, DW_SIGNAL_ITEM_ENTER, "key-pressed", _dw_key_setup }, |
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
478 { _dw_tree_context_event, DW_SIGNAL_ITEM_CONTEXT, "pressed", _dw_tree_setup }, |
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
479 { _dw_combobox_select_event, DW_SIGNAL_LIST_SELECT, "changed", NULL }, |
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
480 { _dw_tree_select_event, DW_SIGNAL_ITEM_SELECT, "changed", _dw_tree_setup }, |
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
481 { _dw_set_focus_event, DW_SIGNAL_SET_FOCUS, "notify::is-active", _dw_focus_setup }, |
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
482 { _dw_value_changed_event, DW_SIGNAL_VALUE_CHANGED, "value-changed", _dw_value_setup }, |
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
483 { _dw_switch_page_event, DW_SIGNAL_SWITCH_PAGE, "switch-page", NULL }, |
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
484 { _dw_column_click_event, DW_SIGNAL_COLUMN_CLICK, "activate", _dw_tree_setup }, |
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
485 { _dw_tree_expand_event, DW_SIGNAL_TREE_EXPAND, "row-expanded", NULL }, |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
486 #ifdef USE_WEBKIT |
2371
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
487 { _dw_html_changed_event, DW_SIGNAL_HTML_CHANGED, "load-changed", NULL }, |
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
488 { _dw_html_result_event, DW_SIGNAL_HTML_RESULT, "", _dw_html_setup }, |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
489 #endif |
2371
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
490 { NULL, "", "", NULL } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
491 }; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
492 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
493 /* Alignment flags */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
494 #define DW_CENTER 0.5f |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
495 #define DW_LEFT 0.0f |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
496 #define DW_RIGHT 1.0f |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
497 #define DW_TOP 0.0f |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
498 #define DW_BOTTOM 1.0f |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
499 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
500 static void _dw_msleep(long period) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
501 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
502 #ifdef __sun__ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
503 /* usleep() isn't threadsafe on Solaris */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
504 struct timespec req; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
505 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
506 req.tv_sec = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
507 if(period >= 1000) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
508 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
509 req.tv_sec = (int)(period / 1000); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
510 period -= (req.tv_sec * 1000); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
511 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
512 req.tv_nsec = period * 10000000; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
513 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
514 nanosleep(&req, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
515 #else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
516 usleep(period * 1000); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
517 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
518 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
519 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
520 /* Finds the translation function for a given signal name */ |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
521 static SignalList _dw_findsignal(const char *signame) |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
522 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
523 int z=0; |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
524 static SignalList empty = {0}; |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
525 |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
526 while(SignalTranslate[z].func) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
527 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
528 if(strcasecmp(signame, SignalTranslate[z].name) == 0) |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
529 return SignalTranslate[z]; |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
530 z++; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
531 } |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
532 return empty; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
533 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
534 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
535 static SignalHandler _dw_get_signal_handler(gpointer data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
536 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
537 SignalHandler sh = {0}; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
538 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
539 if(data) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
540 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
541 void **params = (void **)data; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
542 int counter = GPOINTER_TO_INT(params[0]); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
543 GtkWidget *widget = (GtkWidget *)params[2]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
544 char text[100]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
545 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
546 sprintf(text, "_dw_sigwindow%d", counter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
547 sh.window = (HWND)g_object_get_data(G_OBJECT(widget), text); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
548 sprintf(text, "_dw_sigfunc%d", counter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
549 sh.func = (void *)g_object_get_data(G_OBJECT(widget), text); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
550 sprintf(text, "_dw_intfunc%d", counter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
551 sh.intfunc = (void *)g_object_get_data(G_OBJECT(widget), text); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
552 sprintf(text, "_dw_sigdata%d", counter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
553 sh.data = g_object_get_data(G_OBJECT(widget), text); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
554 sprintf(text, "_dw_sigcid%d", counter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
555 sh.cid = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), text)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
556 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
557 return sh; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
558 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
559 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
560 static void _dw_remove_signal_handler(GtkWidget *widget, int counter) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
561 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
562 char text[100]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
563 gint cid; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
564 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
565 sprintf(text, "_dw_sigcid%d", counter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
566 cid = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), text)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
567 g_signal_handler_disconnect(G_OBJECT(widget), cid); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
568 g_object_set_data(G_OBJECT(widget), text, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
569 sprintf(text, "_dw_sigwindow%d", counter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
570 g_object_set_data(G_OBJECT(widget), text, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
571 sprintf(text, "_dw_sigfunc%d", counter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
572 g_object_set_data(G_OBJECT(widget), text, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
573 sprintf(text, "_dw_intfunc%d", counter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
574 g_object_set_data(G_OBJECT(widget), text, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
575 sprintf(text, "_dw_sigdata%d", counter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
576 g_object_set_data(G_OBJECT(widget), text, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
577 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
578 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
579 static int _dw_set_signal_handler(GObject *object, HWND window, void *func, gpointer data, void *intfunc, void *discfunc) |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
580 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
581 int counter = GPOINTER_TO_INT(g_object_get_data(object, "_dw_sigcounter")); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
582 char text[100]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
583 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
584 sprintf(text, "_dw_sigwindow%d", counter); |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
585 g_object_set_data(object, text, (gpointer)window); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
586 sprintf(text, "_dw_sigfunc%d", counter); |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
587 g_object_set_data(object, text, (gpointer)func); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
588 sprintf(text, "_dw_intfunc%d", counter); |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
589 g_object_set_data(object, text, (gpointer)intfunc); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
590 sprintf(text, "_dw_discfunc%d", counter); |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
591 g_object_set_data(object, text, (gpointer)discfunc); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
592 sprintf(text, "_dw_sigdata%d", counter); |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
593 g_object_set_data(object, text, (gpointer)data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
594 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
595 counter++; |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
596 g_object_set_data(object, "_dw_sigcounter", GINT_TO_POINTER(counter)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
597 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
598 return counter - 1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
599 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
600 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
601 static void _dw_set_signal_handler_id(GObject *object, int counter, gint cid) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
602 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
603 char text[100]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
604 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
605 sprintf(text, "_dw_sigcid%d", counter); |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
606 g_object_set_data(object, text, GINT_TO_POINTER(cid)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
607 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
608 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
609 #ifdef USE_WEBKIT |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
610 static void _dw_html_result_event(GObject *object, GAsyncResult *result, gpointer script_data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
611 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
612 pthread_t saved_thread = _dw_thread; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
613 WebKitJavascriptResult *js_result; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
614 JSCValue *value; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
615 GError *error = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
616 int (*htmlresultfunc)(HWND, int, char *, void *, void *) = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
617 gint handlerdata = GPOINTER_TO_INT(g_object_get_data(object, "_dw_html_result_id")); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
618 void *user_data = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
619 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
620 _dw_thread = (pthread_t)-1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
621 if(handlerdata) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
622 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
623 SignalHandler work; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
624 void *params[3] = { GINT_TO_POINTER(handlerdata-1), 0, object }; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
625 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
626 work = _dw_get_signal_handler(params); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
627 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
628 if(work.window) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
629 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
630 htmlresultfunc = work.func; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
631 user_data = work.data; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
632 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
633 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
634 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
635 if(!(js_result = webkit_web_view_run_javascript_finish(WEBKIT_WEB_VIEW(object), result, &error))) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
636 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
637 if(htmlresultfunc) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
638 htmlresultfunc((HWND)object, DW_ERROR_UNKNOWN, error->message, script_data, user_data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
639 g_error_free (error); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
640 _dw_thread = saved_thread; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
641 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
642 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
643 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
644 value = webkit_javascript_result_get_js_value(js_result); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
645 if(jsc_value_is_string(value)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
646 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
647 gchar *str_value = jsc_value_to_string(value); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
648 JSCException *exception = jsc_context_get_exception(jsc_value_get_context(value)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
649 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
650 if(htmlresultfunc) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
651 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
652 if(exception) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
653 htmlresultfunc((HWND)object, DW_ERROR_UNKNOWN, (char *)jsc_exception_get_message(exception), script_data, user_data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
654 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
655 htmlresultfunc((HWND)object, DW_ERROR_NONE, str_value, script_data, user_data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
656 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
657 g_free (str_value); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
658 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
659 else if(htmlresultfunc) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
660 htmlresultfunc((HWND)object, DW_ERROR_UNKNOWN, NULL, script_data, user_data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
661 webkit_javascript_result_unref (js_result); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
662 _dw_thread = saved_thread; |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
663 } |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
664 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
665 static void _dw_html_changed_event(WebKitWebView *web_view, WebKitLoadEvent load_event, gpointer data) |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
666 { |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
667 SignalHandler work = _dw_get_signal_handler(data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
668 char *location = (char *)webkit_web_view_get_uri(web_view); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
669 int status = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
670 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
671 switch (load_event) { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
672 case WEBKIT_LOAD_STARTED: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
673 status = DW_HTML_CHANGE_STARTED; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
674 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
675 case WEBKIT_LOAD_REDIRECTED: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
676 status = DW_HTML_CHANGE_REDIRECT; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
677 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
678 case WEBKIT_LOAD_COMMITTED: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
679 status = DW_HTML_CHANGE_LOADING; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
680 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
681 case WEBKIT_LOAD_FINISHED: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
682 status = DW_HTML_CHANGE_COMPLETE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
683 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
684 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
685 if(status && location && work.window && work.func) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
686 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
687 int (*htmlchangedfunc)(HWND, int, char *, void *) = work.func; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
688 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
689 htmlchangedfunc(work.window, status, location, work.data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
690 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
691 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
692 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
693 |
2371
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
694 static void _dw_set_focus_event(GObject *window, GParamSpec *pspec, gpointer data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
695 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
696 SignalHandler work = _dw_get_signal_handler(data); |
2371
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
697 gboolean active; |
2370
b18ef6c5b77a
GTK4: The GtkWidget paramater to the activate-focus signal was removed.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2369
diff
changeset
|
698 |
2371
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
699 g_object_get(window, "is-active", &active, NULL); |
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
700 |
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
701 if(active && work.window) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
702 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
703 int (*setfocusfunc)(HWND, void *) = work.func; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
704 |
2371
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
705 setfocusfunc(work.window, work.data); |
67f98f3e47f4
GTK4: Switch from "activate-focus" to "notify::is-active" for DW_SIGNAL_SET_FOCUS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2370
diff
changeset
|
706 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
707 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
708 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
709 static gint _dw_button_press_event(GtkGestureSingle *gesture, int n_press, double x, double y, gpointer data) |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
710 { |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
711 SignalHandler work = _dw_get_signal_handler(data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
712 int retval = FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
713 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
714 if(work.window) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
715 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
716 int (*buttonfunc)(HWND, int, int, int, void *) = work.func; |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
717 int mybutton = gtk_gesture_single_get_current_button(gesture); |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
718 |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
719 if(mybutton == 3) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
720 mybutton = 2; |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
721 else if(mybutton == 2) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
722 mybutton = 3; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
723 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
724 retval = buttonfunc(work.window, (int)x, (int)y, mybutton, work.data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
725 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
726 return retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
727 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
728 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
729 static gint _dw_button_release_event(GtkGestureSingle *gesture, int n_press, double x, double y, gpointer data) |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
730 { |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
731 SignalHandler work = _dw_get_signal_handler(data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
732 int retval = FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
733 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
734 if(work.window) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
735 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
736 int (*buttonfunc)(HWND, int, int, int, void *) = work.func; |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
737 int mybutton = gtk_gesture_single_get_current_button(gesture); |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
738 |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
739 if(mybutton == 3) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
740 mybutton = 2; |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
741 else if(mybutton == 2) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
742 mybutton = 3; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
743 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
744 retval = buttonfunc(work.window, (int)x, (int)y, mybutton, work.data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
745 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
746 return retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
747 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
748 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
749 static gint _dw_motion_notify_event(GtkEventControllerMotion *controller, double x, double y, gpointer data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
750 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
751 SignalHandler work = _dw_get_signal_handler(data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
752 int retval = FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
753 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
754 if(work.window) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
755 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
756 int (*motionfunc)(HWND, int, int, int, void *) = work.func; |
2278
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
757 GdkEvent *event = gtk_event_controller_get_current_event(GTK_EVENT_CONTROLLER(controller)); |
2277
ba81894924cb
GTK4: Changes to handle the now opaque GdkEvent structure.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2276
diff
changeset
|
758 GdkModifierType state = gdk_event_get_modifier_state(event); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
759 int keys = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
760 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
761 if (state & GDK_BUTTON1_MASK) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
762 keys = DW_BUTTON1_MASK; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
763 if (state & GDK_BUTTON3_MASK) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
764 keys |= DW_BUTTON2_MASK; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
765 if (state & GDK_BUTTON2_MASK) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
766 keys |= DW_BUTTON3_MASK; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
767 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
768 retval = motionfunc(work.window, (int)x, (int)y, keys, work.data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
769 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
770 return retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
771 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
772 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
773 static gboolean _dw_delete_event(GtkWidget *window, gpointer data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
774 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
775 SignalHandler work = _dw_get_signal_handler(data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
776 int retval = FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
777 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
778 if(work.window) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
779 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
780 int (*closefunc)(HWND, void *) = work.func; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
781 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
782 retval = closefunc(work.window, work.data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
783 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
784 return retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
785 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
786 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
787 static gint _dw_key_press_event(GtkEventControllerKey *controller, guint keyval, guint keycode, GdkModifierType state, gpointer data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
788 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
789 SignalHandler work = _dw_get_signal_handler(data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
790 int retval = FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
791 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
792 if(work.window) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
793 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
794 int (*keypressfunc)(HWND, char, int, int, void *, char *) = work.func; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
795 guint32 unichar = gdk_keyval_to_unicode(keyval); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
796 char utf8[7] = { 0 }; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
797 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
798 g_unichar_to_utf8(unichar, utf8); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
799 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
800 retval = keypressfunc(work.window, (char)keycode, keyval, |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
801 state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_ALT_MASK), work.data, utf8); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
802 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
803 return retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
804 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
805 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
806 static gint _dw_generic_event(GtkWidget *widget, gpointer data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
807 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
808 SignalHandler work = _dw_get_signal_handler(data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
809 int retval = FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
810 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
811 if(work.window) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
812 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
813 int (*genericfunc)(HWND, void *) = work.func; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
814 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
815 retval = genericfunc(work.window, work.data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
816 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
817 return retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
818 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
819 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
820 static gint _dw_configure_event(GtkWidget *widget, int width, int height, gpointer data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
821 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
822 SignalHandler work = _dw_get_signal_handler(data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
823 int retval = FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
824 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
825 if(work.window) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
826 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
827 int (*sizefunc)(HWND, int, int, void *) = work.func; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
828 |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
829 retval = sizefunc(work.window, width, height, work.data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
830 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
831 return retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
832 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
833 |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
834 cairo_t *_dw_cairo_update(GtkWidget *widget, int width, int height) |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
835 { |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
836 cairo_t *wincr = g_object_get_data(G_OBJECT(widget), "_dw_cr"); |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
837 cairo_surface_t *surface = g_object_get_data(G_OBJECT(widget), "_dw_cr_surface"); |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
838 |
2365
77686ad495ba
GTK3/4: Optimizing dirty list management. Keep list as short as possible.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2363
diff
changeset
|
839 if(width == -1 && height == -1 && !wincr && g_list_find(_dw_dirty_list, widget) == NULL) |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
840 _dw_dirty_list = g_list_append(_dw_dirty_list, widget); |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
841 |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
842 if(width == -1) |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
843 width = gtk_widget_get_width(widget); |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
844 if(height == -1) |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
845 height = gtk_widget_get_height(widget); |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
846 |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
847 if(!surface || GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "_dw_width")) != width || |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
848 GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "_dw_height")) != height) |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
849 { |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
850 if(surface) |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
851 cairo_surface_destroy(surface); |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
852 surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height); |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
853 /* Save the cairo context for use in the drawing functions */ |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
854 g_object_set_data(G_OBJECT(widget), "_dw_cr_surface", (gpointer)surface); |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
855 g_object_set_data(G_OBJECT(widget), "_dw_width", GINT_TO_POINTER(width)); |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
856 g_object_set_data(G_OBJECT(widget), "_dw_height", GINT_TO_POINTER(height)); |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
857 } |
2365
77686ad495ba
GTK3/4: Optimizing dirty list management. Keep list as short as possible.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2363
diff
changeset
|
858 #ifdef DW_USE_CACHED_CR |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
859 return wincr; |
2365
77686ad495ba
GTK3/4: Optimizing dirty list management. Keep list as short as possible.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2363
diff
changeset
|
860 #else |
77686ad495ba
GTK3/4: Optimizing dirty list management. Keep list as short as possible.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2363
diff
changeset
|
861 return NULL; |
77686ad495ba
GTK3/4: Optimizing dirty list management. Keep list as short as possible.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2363
diff
changeset
|
862 #endif |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
863 } |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
864 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
865 static gint _dw_expose_event(GtkWidget *widget, cairo_t *cr, int width, int height, gpointer data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
866 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
867 int retval = FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
868 |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
869 if(widget && GTK_IS_DRAWING_AREA(widget)) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
870 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
871 DWExpose exp; |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
872 int (*exposefunc)(HWND, DWExpose *, void *) = g_object_get_data(G_OBJECT(widget), "_dw_expose_func"); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
873 |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
874 _dw_cairo_update(widget, width, height); |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
875 |
2365
77686ad495ba
GTK3/4: Optimizing dirty list management. Keep list as short as possible.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2363
diff
changeset
|
876 /* Remove the currently drawn widget from the dirty list */ |
77686ad495ba
GTK3/4: Optimizing dirty list management. Keep list as short as possible.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2363
diff
changeset
|
877 _dw_dirty_list = g_list_remove(_dw_dirty_list, widget); |
77686ad495ba
GTK3/4: Optimizing dirty list management. Keep list as short as possible.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2363
diff
changeset
|
878 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
879 exp.x = exp.y = 0; |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
880 exp.width = width; |
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
881 exp.height = height; |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
882 g_object_set_data(G_OBJECT(widget), "_dw_cr", (gpointer)cr); |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
883 retval = exposefunc((HWND)widget, &exp, data); |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
884 g_object_set_data(G_OBJECT(widget), "_dw_cr", NULL); |
2363
d7688c3ec43f
GTK4: Remove widget from dirty list during expose event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2362
diff
changeset
|
885 |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
886 /* Copy the cached image to the output surface */ |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
887 cairo_set_source_surface(cr, g_object_get_data(G_OBJECT(widget), "_dw_cr_surface"), 0, 0); |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
888 cairo_rectangle(cr, 0, 0, width, height); |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
889 cairo_fill(cr); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
890 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
891 return retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
892 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
893 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
894 static gint _dw_combobox_select_event(GtkWidget *widget, gpointer data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
895 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
896 SignalHandler work = _dw_get_signal_handler(data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
897 int retval = FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
898 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
899 if(g_object_get_data(G_OBJECT(widget), "_dw_recursing")) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
900 return FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
901 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
902 if(work.window && GTK_IS_COMBO_BOX(widget)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
903 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
904 GtkTreeModel *store = gtk_combo_box_get_model(GTK_COMBO_BOX(widget)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
905 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
906 if(store) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
907 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
908 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
909 GtkTreePath *path; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
910 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
911 g_object_set_data(G_OBJECT(widget), "_dw_recursing", GINT_TO_POINTER(1)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
912 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
913 if(gtk_combo_box_get_active_iter(GTK_COMBO_BOX(widget), &iter)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
914 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
915 path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
916 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
917 if(path) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
918 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
919 gint *indices = gtk_tree_path_get_indices(path); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
920 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
921 if(indices) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
922 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
923 int (*selectfunc)(HWND, int, void *) = work.func; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
924 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
925 retval = selectfunc(work.window, indices[0], work.data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
926 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
927 gtk_tree_path_free(path); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
928 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
929 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
930 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
931 g_object_set_data(G_OBJECT(widget), "_dw_recursing", NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
932 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
933 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
934 return retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
935 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
936 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
937 #define _DW_DATA_TYPE_STRING 0 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
938 #define _DW_DATA_TYPE_POINTER 1 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
939 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
940 static gint _dw_tree_context_event(GtkGestureSingle *gesture, int n_press, double x, double y, gpointer data) |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
941 { |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
942 SignalHandler work = _dw_get_signal_handler(data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
943 int retval = FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
944 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
945 if(work.window) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
946 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
947 int button = gtk_gesture_single_get_current_button(gesture); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
948 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
949 if(button == 3) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
950 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
951 int (*contextfunc)(HWND, char *, int, int, void *, void *) = work.func; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
952 char *text = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
953 void *itemdata = NULL; |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
954 GtkWidget *widget = work.window; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
955 |
2335
1d413d869fa2
GTK4: Trees/Containers were not passing correct data due to missing scrolled
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2334
diff
changeset
|
956 /* Containers and trees are inside scrolled window widgets */ |
1d413d869fa2
GTK4: Trees/Containers were not passing correct data due to missing scrolled
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2334
diff
changeset
|
957 if(GTK_IS_SCROLLED_WINDOW(widget)) |
1d413d869fa2
GTK4: Trees/Containers were not passing correct data due to missing scrolled
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2334
diff
changeset
|
958 widget = GTK_WIDGET(g_object_get_data(G_OBJECT(widget), "_dw_user")); |
1d413d869fa2
GTK4: Trees/Containers were not passing correct data due to missing scrolled
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2334
diff
changeset
|
959 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
960 if(widget && GTK_IS_TREE_VIEW(widget)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
961 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
962 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(widget)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
963 GtkTreeModel *store = (GtkTreeModel *)gtk_tree_view_get_model(GTK_TREE_VIEW(widget)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
964 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
965 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
966 if(sel && gtk_tree_selection_get_mode(sel) != GTK_SELECTION_MULTIPLE && |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
967 gtk_tree_selection_get_selected(sel, NULL, &iter)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
968 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
969 if(g_object_get_data(G_OBJECT(widget), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_TREE)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
970 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
971 gtk_tree_model_get(store, &iter, _DW_DATA_TYPE_STRING, &text, 2, &itemdata, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
972 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
973 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
974 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
975 gtk_tree_model_get(store, &iter, _DW_DATA_TYPE_STRING, &text, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
976 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
977 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
978 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
979 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
980 GtkTreePath *path; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
981 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
982 gtk_tree_view_get_cursor(GTK_TREE_VIEW(widget), &path, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
983 if(path) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
984 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
985 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
986 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
987 if(gtk_tree_model_get_iter(GTK_TREE_MODEL(store), &iter, path)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
988 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
989 if(g_object_get_data(G_OBJECT(widget), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_TREE)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
990 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
991 gtk_tree_model_get(store, &iter, _DW_DATA_TYPE_STRING, &text, 2, &itemdata, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
992 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
993 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
994 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
995 gtk_tree_model_get(store, &iter, _DW_DATA_TYPE_STRING, &text, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
996 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
997 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
998 gtk_tree_path_free(path); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
999 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1000 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1001 } |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
1002 retval = contextfunc(work.window, text, (int)x, (int)y, work.data, itemdata); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1003 if(text) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1004 g_free(text); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1005 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1006 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1007 return retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1008 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1009 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1010 static gint _dw_tree_select_event(GtkTreeSelection *sel, gpointer data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1011 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1012 GtkWidget *item = NULL, *widget = (GtkWidget *)gtk_tree_selection_get_tree_view(sel); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1013 int retval = FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1014 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1015 if(widget) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1016 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
1017 SignalHandler work = _dw_get_signal_handler(data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1018 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1019 if(work.window) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1020 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1021 int (*treeselectfunc)(HWND, HTREEITEM, char *, void *, void *) = work.func; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1022 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1023 char *text = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1024 void *itemdata = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1025 GtkTreeModel *store = (GtkTreeModel *)gtk_tree_view_get_model(GTK_TREE_VIEW(widget)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1026 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1027 if(g_object_get_data(G_OBJECT(widget), "_dw_double_click")) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1028 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1029 g_object_set_data(G_OBJECT(widget), "_dw_double_click", GINT_TO_POINTER(0)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1030 return TRUE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1031 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1032 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1033 if(gtk_tree_selection_get_mode(sel) != GTK_SELECTION_MULTIPLE && |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1034 gtk_tree_selection_get_selected(sel, NULL, &iter)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1035 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1036 if(g_object_get_data(G_OBJECT(widget), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_TREE)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1037 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1038 gtk_tree_model_get(store, &iter, _DW_DATA_TYPE_STRING, &text, 2, &itemdata, 3, &item, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1039 retval = treeselectfunc(work.window, (HTREEITEM)item, text, work.data, itemdata); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1040 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1041 else if(g_object_get_data(G_OBJECT(widget), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1042 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1043 gtk_tree_model_get(store, &iter, _DW_DATA_TYPE_STRING, &text, _DW_DATA_TYPE_POINTER, &itemdata, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1044 retval = treeselectfunc(work.window, (HTREEITEM)item, text, work.data, itemdata); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1045 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1046 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1047 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1048 GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1049 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1050 if(path) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1051 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1052 gint *indices = gtk_tree_path_get_indices(path); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1053 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1054 if(indices) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1055 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1056 int (*selectfunc)(HWND, int, void *) = work.func; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1057 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1058 retval = selectfunc(work.window, indices[0], work.data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1059 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1060 gtk_tree_path_free(path); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1061 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1062 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1063 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1064 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1065 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1066 GtkTreePath *path; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1067 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1068 gtk_tree_view_get_cursor(GTK_TREE_VIEW(widget), &path, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1069 if(path) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1070 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1071 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1072 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1073 if(gtk_tree_model_get_iter(GTK_TREE_MODEL(store), &iter, path)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1074 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1075 if(g_object_get_data(G_OBJECT(widget), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_TREE)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1076 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1077 gtk_tree_model_get(store, &iter, _DW_DATA_TYPE_STRING, &text, 2, &itemdata, 3, &item, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1078 retval = treeselectfunc(work.window, (HTREEITEM)item, text, work.data, itemdata); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1079 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1080 else if(g_object_get_data(G_OBJECT(widget), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1081 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1082 gtk_tree_model_get(store, &iter, _DW_DATA_TYPE_STRING, &text, _DW_DATA_TYPE_POINTER, &itemdata, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1083 retval = treeselectfunc(work.window, (HTREEITEM)item, text, work.data, itemdata); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1084 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1085 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1086 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1087 gint *indices = gtk_tree_path_get_indices(path); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1088 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1089 if(indices) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1090 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1091 int (*selectfunc)(HWND, int, void *) = work.func; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1092 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1093 retval = selectfunc(work.window, indices[0], work.data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1094 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1095 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1096 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1097 gtk_tree_path_free(path); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1098 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1099 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1100 if(text) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1101 g_free(text); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1102 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1103 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1104 return retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1105 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1106 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1107 static gint _dw_tree_expand_event(GtkTreeView *widget, GtkTreeIter *iter, GtkTreePath *path, gpointer data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1108 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
1109 SignalHandler work = _dw_get_signal_handler(data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1110 int retval = FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1111 |
2317
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
1112 if(work.window) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1113 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1114 int (*treeexpandfunc)(HWND, HTREEITEM, void *) = work.func; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1115 retval = treeexpandfunc(work.window, (HTREEITEM)iter, work.data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1116 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1117 return retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1118 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1119 |
2309
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
1120 static gint _dw_container_enter_event(GtkEventController *controller, guint keyval, guint keycode, GdkModifierType state, gpointer data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1121 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
1122 SignalHandler work = _dw_get_signal_handler(data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1123 int retval = FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1124 |
2267
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
1125 if(work.window && GTK_IS_WIDGET(work.window)) |
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
1126 { |
2309
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
1127 GtkWidget *user = GTK_WIDGET(g_object_get_data(G_OBJECT(work.window), "_dw_user")); |
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
1128 GtkWidget *widget = user ? user : work.window; |
2278
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
1129 GdkEvent *event = gtk_event_controller_get_current_event(GTK_EVENT_CONTROLLER(controller)); |
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
1130 GdkEventType type = gdk_event_get_event_type(event); |
2308
a9018bd91d04
GTK4: Fix DW_SIGNAL_ITEM_ENTER callbacks via the keyboard. Remove mouse
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2306
diff
changeset
|
1131 gint button = (type == GDK_BUTTON_PRESS) ? gdk_button_event_get_button(event) : -1; |
a9018bd91d04
GTK4: Fix DW_SIGNAL_ITEM_ENTER callbacks via the keyboard. Remove mouse
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2306
diff
changeset
|
1132 |
2309
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
1133 /* Handle both key and button events together */ |
2277
ba81894924cb
GTK4: Changes to handle the now opaque GdkEvent structure.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2276
diff
changeset
|
1134 if((type == GDK_BUTTON_PRESS && button == 1) || keyval == VK_RETURN) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1135 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1136 int (*contextfunc)(HWND, char *, void *, void *) = work.func; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1137 char *text = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1138 void *data = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1139 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1140 /* Sanity check */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1141 if(GTK_IS_TREE_VIEW(widget)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1142 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1143 GtkTreePath *path; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1144 GtkTreeModel *store = (GtkTreeModel *)gtk_tree_view_get_model(GTK_TREE_VIEW(widget)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1145 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1146 gtk_tree_view_get_cursor(GTK_TREE_VIEW(widget), &path, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1147 if(path) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1148 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1149 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1150 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1151 if(gtk_tree_model_get_iter(GTK_TREE_MODEL(store), &iter, path)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1152 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1153 if(g_object_get_data(G_OBJECT(widget), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1154 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1155 gtk_tree_model_get(store, &iter, _DW_DATA_TYPE_STRING, &text, _DW_DATA_TYPE_POINTER, &data, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1156 retval = contextfunc(work.window, text, work.data, data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1157 if(text) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1158 g_free(text); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1159 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1160 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1161 gtk_tree_path_free(path); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1162 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1163 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1164 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1165 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1166 return retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1167 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1168 |
2309
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
1169 /* Just forward to the other handler, with bogus key info */ |
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
1170 void _dw_container_enter_mouse(GtkEventController *controller, int n_press, double x, double y, gpointer data) |
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
1171 { |
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
1172 if(n_press == 2) |
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
1173 _dw_container_enter_event(GTK_EVENT_CONTROLLER(controller), 0, 0, 0, data); |
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
1174 } |
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
1175 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1176 /* Return the logical page id from the physical page id */ |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1177 int _dw_get_logical_page(HWND handle, unsigned long pageid) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1178 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1179 int z; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1180 GtkWidget **pagearray = g_object_get_data(G_OBJECT(handle), "_dw_pagearray"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1181 GtkWidget *thispage = gtk_notebook_get_nth_page(GTK_NOTEBOOK(handle), pageid); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1182 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1183 if(pagearray && thispage) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1184 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1185 for(z=0;z<256;z++) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1186 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1187 if(thispage == pagearray[z]) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1188 return z; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1189 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1190 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1191 return 256; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1192 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1193 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1194 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1195 static gint _dw_switch_page_event(GtkNotebook *notebook, GtkWidget *page, guint page_num, gpointer data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1196 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
1197 SignalHandler work = _dw_get_signal_handler(data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1198 int retval = FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1199 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1200 if(work.window) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1201 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1202 int (*switchpagefunc)(HWND, unsigned long, void *) = work.func; |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1203 retval = switchpagefunc(work.window, _dw_get_logical_page(GTK_WIDGET(notebook), page_num), work.data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1204 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1205 return retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1206 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1207 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1208 static gint _dw_column_click_event(GtkWidget *widget, gpointer data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1209 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1210 void **params = data; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1211 int retval = FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1212 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1213 if(params && params[2]) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1214 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1215 GtkWidget *tree = (GtkWidget *)params[2]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1216 gint handlerdata = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(tree), "_dw_column_click_id")); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1217 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1218 if(handlerdata) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1219 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1220 SignalHandler work; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1221 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1222 params[0] = GINT_TO_POINTER(handlerdata-1); |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
1223 work = _dw_get_signal_handler(params); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1224 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1225 if(work.window) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1226 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1227 int column_num = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "_dw_column")); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1228 int (*clickcolumnfunc)(HWND, int, void *) = work.func; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1229 retval = clickcolumnfunc(work.window, column_num, work.data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1230 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1231 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1232 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1233 return retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1234 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1235 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1236 static int _dw_round_value(gfloat val) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1237 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1238 int newval = (int)val; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1239 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1240 if(val >= 0.5 + (gfloat)newval) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1241 newval++; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1242 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1243 return newval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1244 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1245 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1246 static gint _dw_value_changed_event(GtkWidget *widget, gpointer data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1247 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1248 GtkWidget *slider, *spinbutton, *scrollbar; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1249 GtkAdjustment *adjustment = (GtkAdjustment *)widget; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1250 int max, val; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1251 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1252 if(!GTK_IS_ADJUSTMENT(adjustment)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1253 adjustment = (GtkAdjustment *)g_object_get_data(G_OBJECT(widget), "_dw_adjustment"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1254 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1255 slider = (GtkWidget *)g_object_get_data(G_OBJECT(adjustment), "_dw_slider"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1256 spinbutton = (GtkWidget *)g_object_get_data(G_OBJECT(adjustment), "_dw_spinbutton"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1257 scrollbar = (GtkWidget *)g_object_get_data(G_OBJECT(adjustment), "_dw_scrollbar"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1258 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1259 max = _dw_round_value(gtk_adjustment_get_upper(adjustment)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1260 val = _dw_round_value(gtk_adjustment_get_value(adjustment)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1261 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1262 if(g_object_get_data(G_OBJECT(adjustment), "_dw_suppress_value_changed_event")) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1263 return FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1264 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1265 if(slider || spinbutton || scrollbar) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1266 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
1267 SignalHandler work = _dw_get_signal_handler(data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1268 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1269 if (work.window) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1270 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1271 int (*valuechangedfunc)(HWND, int, void *) = work.func; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1272 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1273 if(slider && gtk_orientable_get_orientation(GTK_ORIENTABLE(slider)) == GTK_ORIENTATION_VERTICAL) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1274 valuechangedfunc(work.window, (max - val) - 1, work.data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1275 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1276 valuechangedfunc(work.window, val, work.data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1277 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1278 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1279 return FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1280 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1281 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1282 static gint _dw_default_key_press_event(GtkEventControllerKey *controller, guint keyval, guint keycode, GdkModifierType state, gpointer data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1283 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1284 GtkWidget *next = (GtkWidget *)data; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1285 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1286 if(next) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1287 { |
2267
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
1288 if(keyval == GDK_KEY_Return) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1289 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1290 if(GTK_IS_BUTTON(next)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1291 g_signal_emit_by_name(G_OBJECT(next), "clicked"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1292 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1293 gtk_widget_grab_focus(next); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1294 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1295 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1296 return FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1297 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1298 |
2267
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
1299 static void _dw_dialog_response(GtkDialog *dialog, int response_id, gpointer data) |
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
1300 { |
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
1301 DWDialog *dwdialog = (DWDialog *)data; |
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
1302 |
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
1303 if(dwdialog) |
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
1304 dw_dialog_dismiss(dwdialog, DW_INT_TO_POINTER(response_id)); |
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
1305 } |
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
1306 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1307 static GdkPixbuf *_dw_pixbuf_from_resource(unsigned int rid) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1308 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1309 char resource_path[201] = {0}; |
2319
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
1310 |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
1311 snprintf(resource_path, 200, "%s%u.png", _DW_RESOURCE_PATH, rid); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1312 return gdk_pixbuf_new_from_resource(resource_path, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1313 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1314 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1315 static GdkPixbuf *_dw_find_pixbuf(HICN icon, unsigned long *userwidth, unsigned long *userheight) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1316 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1317 unsigned int id = GPOINTER_TO_INT(icon); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1318 GdkPixbuf *icon_pixbuf = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1319 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1320 /* Quick dropout for non-handle */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1321 if(!icon) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1322 return NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1323 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1324 if(id > 65535) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1325 icon_pixbuf = icon; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1326 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1327 icon_pixbuf = _dw_pixbuf_from_resource(id); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1328 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1329 if(userwidth) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1330 *userwidth = icon_pixbuf ? gdk_pixbuf_get_width(icon_pixbuf) : 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1331 if(userheight) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1332 *userheight = icon_pixbuf ? gdk_pixbuf_get_height(icon_pixbuf) : 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1333 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1334 return icon_pixbuf; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1335 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1336 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1337 /* Handle system notification click callbacks */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1338 static void _dw_notification_handler(GSimpleAction *action, GVariant *param, gpointer user_data) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1339 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1340 char textbuf[101] = {0}; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1341 int (*func)(HWND, void *); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1342 void *data; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1343 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1344 snprintf(textbuf, 100, "dw-notification-%llu-func", DW_POINTER_TO_ULONGLONG(g_variant_get_uint64(param))); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1345 func = g_object_get_data(G_OBJECT(_DWApp), textbuf); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1346 g_object_set_data(G_OBJECT(_DWApp), textbuf, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1347 snprintf(textbuf, 100, "dw-notification-%llu-data", DW_POINTER_TO_ULONGLONG(g_variant_get_uint64(param))); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1348 data = g_object_get_data(G_OBJECT(_DWApp), textbuf); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1349 g_object_set_data(G_OBJECT(_DWApp), textbuf, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1350 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1351 if(func) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1352 func((HWND)DW_ULONGLONG_TO_POINTER(g_variant_get_uint64(param)), data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1353 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1354 |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1355 /* Handle menu click callbacks */ |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1356 static void _dw_menu_handler(GSimpleAction *action, GVariant *param, gpointer data) |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1357 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1358 SignalHandler work = _dw_get_signal_handler(data); |
2317
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
1359 GVariant *action_state = g_action_get_state(G_ACTION(action)); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
1360 |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
1361 /* Handle toggling checkable menu items automatically, before the callback */ |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
1362 if(action_state) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
1363 { |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
1364 gboolean active = g_variant_get_boolean(action_state); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
1365 GVariant *new_state = g_variant_new_boolean(!active); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
1366 g_simple_action_set_state(action, new_state); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
1367 } |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1368 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1369 if(work.window) |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1370 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1371 int (*genericfunc)(HWND, void *) = work.func; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1372 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1373 genericfunc(work.window, work.data); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1374 } |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1375 } |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1376 |
2276
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
1377 /* Internal function to add padding to boxes or other widgets */ |
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
1378 static void _dw_widget_set_pad(GtkWidget *widget, int pad) |
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
1379 { |
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
1380 /* Set pad for each margin direction on the widget */ |
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
1381 gtk_widget_set_margin_start(widget, pad); |
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
1382 gtk_widget_set_margin_end(widget, pad); |
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
1383 gtk_widget_set_margin_top(widget, pad); |
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
1384 gtk_widget_set_margin_bottom(widget, pad); |
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
1385 } |
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
1386 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1387 static void _dw_app_activate(GApplication *app, gpointer user_data) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1388 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1389 /* Not sure why this signal is required, but GLib gives warnings |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1390 * when this signal is not connected, so putting this here to |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1391 * quell the warning and can be used at a later point if needed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1392 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1393 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1394 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1395 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1396 * Initializes the Dynamic Windows engine. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1397 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1398 * newthread: True if this is the only thread. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1399 * False if there is already a message loop running. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1400 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
1401 int API dw_init(int newthread, int argc, char *argv[]) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1402 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1403 /* Setup the private data directory */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1404 if(argc > 0 && argv[0]) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1405 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1406 char *pathcopy = strdup(argv[0]); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1407 char *pos = strrchr(pathcopy, '/'); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1408 char *binname = pathcopy; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1409 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1410 /* If we have a / then... |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1411 * the binary name should be at the end. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1412 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1413 if(pos) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1414 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1415 binname = pos + 1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1416 *pos = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1417 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1418 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1419 if(*binname) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1420 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1421 char *binpos = strstr(pathcopy, "/bin"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1422 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1423 if(binpos) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1424 strncpy(_dw_share_path, pathcopy, (size_t)(binpos - pathcopy)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1425 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1426 strcpy(_dw_share_path, "/usr/local"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1427 strcat(_dw_share_path, "/share/"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1428 strcat(_dw_share_path, binname); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1429 if(!_dw_app_id[0]) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1430 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1431 /* If we have a binary name, use that for the Application ID instead. */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1432 snprintf(_dw_app_id, _DW_APP_ID_SIZE, "%s.%s", DW_APP_DOMAIN_DEFAULT, binname); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1433 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1434 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1435 if(pathcopy) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1436 free(pathcopy); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1437 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1438 /* If that failed... just get the current directory */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1439 if(!_dw_share_path[0] && !getcwd(_dw_share_path, PATH_MAX)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1440 _dw_share_path[0] = '/'; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1441 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1442 gtk_init(); |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1443 |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1444 _DWMainLoop = g_main_loop_new(NULL, FALSE); |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1445 g_main_loop_ref(_DWMainLoop); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1446 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1447 pthread_key_create(&_dw_fg_color_key, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1448 pthread_key_create(&_dw_bg_color_key, NULL); |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
1449 pthread_key_create(&_dw_event_key, NULL); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1450 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1451 _dw_init_thread(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1452 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1453 /* Create a global object for glib activities */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1454 _DWObject = g_object_new(G_TYPE_OBJECT, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1455 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1456 if(!_dw_app_id[0]) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1457 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1458 /* Generate an Application ID based on the PID if all else fails. */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1459 snprintf(_dw_app_id, _DW_APP_ID_SIZE, "%s.pid.%d", DW_APP_DOMAIN_DEFAULT, (int)getpid()); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1460 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1461 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1462 /* Initialize the application subsystem on supported versions... |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1463 * we generate an application ID based on the binary name or PID |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1464 * instead of passing NULL to enable full application support. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1465 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1466 _DWApp = g_application_new(_dw_app_id, G_APPLICATION_FLAGS_NONE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1467 if(_DWApp && g_application_register(_DWApp, NULL, NULL)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1468 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1469 /* Creat our notification handler for any notifications */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1470 GSimpleAction *action = g_simple_action_new("notification", G_VARIANT_TYPE_UINT64); |
2330
58700e9fcba3
GTK3/4: Add call to g_set_prgname() with the Application ID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2329
diff
changeset
|
1471 |
58700e9fcba3
GTK3/4: Add call to g_set_prgname() with the Application ID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2329
diff
changeset
|
1472 g_set_prgname(_dw_app_id); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1473 g_signal_connect(G_OBJECT(action), "activate", G_CALLBACK(_dw_notification_handler), NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1474 g_action_map_add_action(G_ACTION_MAP(_DWApp), G_ACTION(action)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1475 g_signal_connect(_DWApp, "activate", G_CALLBACK(_dw_app_activate), NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1476 g_application_activate(_DWApp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1477 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1478 return TRUE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1479 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1480 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1481 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1482 * Runs a message loop for Dynamic Windows. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1483 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1484 void API dw_main(void) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1485 { |
2306
558959a64772
GTK4: Fix thread safety while using dw_main() and fix an status text issue.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2305
diff
changeset
|
1486 pthread_t orig = _dw_thread; |
558959a64772
GTK4: Fix thread safety while using dw_main() and fix an status text issue.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2305
diff
changeset
|
1487 |
558959a64772
GTK4: Fix thread safety while using dw_main() and fix an status text issue.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2305
diff
changeset
|
1488 _dw_thread = pthread_self(); |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1489 g_main_loop_run(_DWMainLoop); |
2306
558959a64772
GTK4: Fix thread safety while using dw_main() and fix an status text issue.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2305
diff
changeset
|
1490 _dw_thread = orig; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1491 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1492 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1493 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1494 * Causes running dw_main() to return. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1495 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1496 void API dw_main_quit(void) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1497 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1498 g_main_loop_quit(_DWMainLoop); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1499 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1500 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1501 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1502 * Runs a message loop for Dynamic Windows, for a period of milliseconds. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1503 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1504 * milliseconds: Number of milliseconds to run the loop for. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1505 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1506 void API dw_main_sleep(int milliseconds) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1507 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1508 struct timeval tv, start; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1509 pthread_t curr = pthread_self(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1510 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1511 gettimeofday(&start, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1512 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1513 if(_dw_thread == (pthread_t)-1 || _dw_thread == curr) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1514 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1515 pthread_t orig = _dw_thread; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1516 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1517 gettimeofday(&tv, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1518 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1519 while(((tv.tv_sec - start.tv_sec)*1000) + ((tv.tv_usec - start.tv_usec)/1000) <= milliseconds) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1520 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1521 if(orig == (pthread_t)-1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1522 _dw_thread = curr; |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1523 if(curr == _dw_thread && g_main_context_pending(NULL)) |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1524 g_main_context_iteration(NULL, FALSE); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1525 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1526 _dw_msleep(1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1527 if(orig == (pthread_t)-1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1528 _dw_thread = orig; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1529 gettimeofday(&tv, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1530 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1531 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1532 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1533 _dw_msleep(milliseconds); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1534 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1535 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1536 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1537 * Processes a single message iteration and returns. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1538 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1539 void API dw_main_iteration(void) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1540 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1541 pthread_t orig = _dw_thread; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1542 pthread_t curr = pthread_self(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1543 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1544 if(_dw_thread == (pthread_t)-1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1545 _dw_thread = curr; |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1546 if(curr == _dw_thread && g_main_context_pending(NULL)) |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1547 g_main_context_iteration(NULL, FALSE); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1548 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1549 sched_yield(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1550 if(orig == (pthread_t)-1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1551 _dw_thread = orig; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1552 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1553 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1554 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1555 * Free's memory allocated by dynamic windows. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1556 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1557 * ptr: Pointer to dynamic windows allocated |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1558 * memory to be free()'d. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1559 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
1560 void API dw_free(void *ptr) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1561 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1562 free(ptr); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1563 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1564 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1565 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1566 * Allocates and initializes a dialog struct. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1567 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1568 * data: User defined data to be passed to functions. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1569 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
1570 DWDialog * API dw_dialog_new(void *data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1571 { |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1572 DWDialog *tmp = calloc(sizeof(DWDialog), 1); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1573 |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1574 if(tmp) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1575 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1576 tmp->eve = dw_event_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1577 dw_event_reset(tmp->eve); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1578 tmp->data = data; |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1579 tmp->mainloop = g_main_loop_new(NULL, FALSE); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1580 g_main_loop_ref(tmp->mainloop); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1581 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1582 return tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1583 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1584 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1585 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1586 * Accepts a dialog struct and returns the given data to the |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1587 * initial called of dw_dialog_wait(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1588 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1589 * dialog: Pointer to a dialog struct aquired by dw_dialog_new). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1590 * result: Data to be returned by dw_dialog_wait(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1591 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
1592 int API dw_dialog_dismiss(DWDialog *dialog, void *result) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1593 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1594 dialog->result = result; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1595 if(dialog->method) |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1596 g_main_loop_quit(dialog->mainloop); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1597 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1598 dw_event_post(dialog->eve); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1599 dialog->done = TRUE; |
2267
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
1600 return DW_ERROR_NONE; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1601 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1602 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1603 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1604 * Accepts a dialog struct waits for dw_dialog_dismiss() to be |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1605 * called by a signal handler with the given dialog struct. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1606 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1607 * dialog: Pointer to a dialog struct aquired by dw_dialog_new). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1608 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
1609 void * API dw_dialog_wait(DWDialog *dialog) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1610 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1611 void *tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1612 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1613 if(!dialog) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1614 return NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1615 |
2267
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
1616 if(_dw_thread == (pthread_t)-1 || pthread_self() == _dw_thread) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1617 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1618 dialog->method = TRUE; |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1619 g_main_loop_run(dialog->mainloop); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1620 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1621 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1622 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1623 dialog->method = FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1624 dw_event_wait(dialog->eve, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1625 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1626 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1627 dw_event_close(&dialog->eve); |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1628 g_main_loop_unref(dialog->mainloop); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1629 tmp = dialog->result; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1630 free(dialog); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1631 return tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1632 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1633 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1634 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1635 * Displays a debug message on the console... |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1636 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1637 * format: printf style format string. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1638 * ...: Additional variables for use in the format. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1639 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1640 void API dw_debug(const char *format, ...) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1641 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1642 va_list args; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1643 char outbuf[1025] = {0}; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1644 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1645 va_start(args, format); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1646 vsnprintf(outbuf, 1024, format, args); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1647 va_end(args); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1648 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1649 fprintf(stderr, "%s", outbuf); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1650 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1651 |
2327
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1652 /* Internal version that does not use variable arguments */ |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1653 DW_FUNCTION_DEFINITION(dw_messagebox_int, int, const char *title, int flags, char *outbuf) |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1654 DW_FUNCTION_ADD_PARAM3(title, flags, outbuf) |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1655 DW_FUNCTION_RETURN(dw_messagebox_int, int) |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1656 DW_FUNCTION_RESTORE_PARAM3(title, const char *, flags, int, outbuf, char *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1657 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1658 GtkMessageType gtkicon = GTK_MESSAGE_OTHER; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1659 GtkButtonsType gtkbuttons = GTK_BUTTONS_OK; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1660 GtkWidget *dialog; |
2327
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1661 int response, retval = DW_MB_RETURN_OK; |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
1662 DWDialog *tmp = dw_dialog_new(NULL); |
2321
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
1663 ULONG width, height; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1664 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1665 if(flags & DW_MB_ERROR) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1666 gtkicon = GTK_MESSAGE_ERROR; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1667 else if(flags & DW_MB_WARNING) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1668 gtkicon = GTK_MESSAGE_WARNING; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1669 else if(flags & DW_MB_INFORMATION) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1670 gtkicon = GTK_MESSAGE_INFO; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1671 else if(flags & DW_MB_QUESTION) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1672 gtkicon = GTK_MESSAGE_QUESTION; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1673 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1674 if(flags & DW_MB_OKCANCEL) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1675 gtkbuttons = GTK_BUTTONS_OK_CANCEL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1676 else if(flags & (DW_MB_YESNO | DW_MB_YESNOCANCEL)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1677 gtkbuttons = GTK_BUTTONS_YES_NO; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1678 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1679 dialog = gtk_message_dialog_new(NULL, |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1680 GTK_DIALOG_USE_HEADER_BAR | |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1681 GTK_DIALOG_MODAL, gtkicon, gtkbuttons, "%s", title); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1682 gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog), "%s", outbuf); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1683 if(flags & DW_MB_YESNOCANCEL) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1684 gtk_dialog_add_button(GTK_DIALOG(dialog), "Cancel", GTK_RESPONSE_CANCEL); |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
1685 gtk_widget_show(GTK_WIDGET(dialog)); |
2267
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
1686 g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(_dw_dialog_response), (gpointer)tmp); |
2321
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
1687 /* Center the dialog on the screen since there is no parent */ |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
1688 dw_window_get_pos_size((HWND)dialog, NULL, NULL, &width, &height); |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
1689 dw_window_set_pos((HWND)dialog, (dw_screen_width() - width)/2, (dw_screen_height() - height)/2); |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
1690 response = DW_POINTER_TO_INT(dw_dialog_wait(tmp)); |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1691 if(GTK_IS_WINDOW(dialog)) |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1692 gtk_window_destroy(GTK_WINDOW(dialog)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1693 switch(response) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1694 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1695 case GTK_RESPONSE_OK: |
2327
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1696 retval = DW_MB_RETURN_OK; |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1697 break; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1698 case GTK_RESPONSE_CANCEL: |
2327
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1699 retval = DW_MB_RETURN_CANCEL; |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1700 break; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1701 case GTK_RESPONSE_YES: |
2327
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1702 retval = DW_MB_RETURN_YES; |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1703 break; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1704 case GTK_RESPONSE_NO: |
2327
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1705 retval = DW_MB_RETURN_NO; |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1706 break; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1707 default: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1708 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1709 /* Handle the destruction of the dialog result */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1710 if(flags & (DW_MB_OKCANCEL | DW_MB_YESNOCANCEL)) |
2327
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1711 retval = DW_MB_RETURN_CANCEL; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1712 else if(flags & DW_MB_YESNO) |
2327
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1713 retval = DW_MB_RETURN_NO; |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1714 } |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1715 } |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1716 DW_FUNCTION_RETURN_THIS(retval); |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1717 } |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1718 |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1719 /* |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1720 * Displays a Message Box with given text and title.. |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1721 * Parameters: |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1722 * title: The title of the message box. |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1723 * flags: Defines buttons and icons to display |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1724 * format: printf style format string. |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1725 * ...: Additional variables for use in the format. |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1726 */ |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1727 int API dw_messagebox(const char *title, int flags, const char *format, ...) |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1728 { |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1729 va_list args; |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1730 char outbuf[1025] = {0}; |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1731 |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1732 va_start(args, format); |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1733 vsnprintf(outbuf, 1024, format, args); |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1734 va_end(args); |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1735 |
0d7f8136d771
GTK4: Move dw_messagebox() into thread safety protection using dw_messagebox_int().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2326
diff
changeset
|
1736 return dw_messagebox_int(title, flags, outbuf); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1737 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1738 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1739 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1740 * Minimizes or Iconifies a top-level window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1741 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1742 * handle: The window handle to minimize. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1743 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1744 DW_FUNCTION_DEFINITION(dw_window_minimize, int, HWND handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1745 DW_FUNCTION_ADD_PARAM1(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1746 DW_FUNCTION_RETURN(dw_window_minimize, int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1747 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1748 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1749 int retval = DW_ERROR_NONE; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1750 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
1751 if(handle && GTK_IS_WINDOW(handle)) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
1752 gtk_window_minimize(GTK_WINDOW(handle)); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1753 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1754 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1755 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1756 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1757 * Makes the window topmost. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1758 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1759 * handle: The window handle to make topmost. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1760 */ |
2320
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1761 #ifndef GDK_WINDOWING_X11 |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
1762 int API dw_window_raise(HWND handle) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1763 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1764 return DW_ERROR_UNKNOWN; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1765 } |
2320
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1766 #else |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1767 DW_FUNCTION_DEFINITION(dw_window_raise, int, HWND handle) |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1768 DW_FUNCTION_ADD_PARAM1(handle) |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1769 DW_FUNCTION_RETURN(dw_window_raise, int) |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1770 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1771 { |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1772 int retval = DW_ERROR_UNKNOWN; |
2324
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
1773 GdkDisplay *display = gdk_display_get_default(); |
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
1774 |
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
1775 if(handle && GTK_IS_WINDOW(handle) && display && GDK_IS_X11_DISPLAY(display)) |
2320
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1776 { |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1777 GdkSurface *surface = gtk_native_get_surface(GTK_NATIVE(handle)); |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1778 |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1779 if(surface) |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1780 { |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1781 XRaiseWindow(GDK_SURFACE_XDISPLAY(surface), GDK_SURFACE_XID(surface)); |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1782 retval = DW_ERROR_NONE; |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1783 } |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1784 } |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1785 DW_FUNCTION_RETURN_THIS(retval); |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1786 } |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1787 #endif |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1788 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1789 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1790 * Makes the window bottommost. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1791 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1792 * handle: The window handle to make bottommost. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1793 */ |
2320
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1794 #ifndef GDK_WINDOWING_X11 |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
1795 int API dw_window_lower(HWND handle) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1796 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1797 return DW_ERROR_UNKNOWN; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1798 } |
2320
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1799 #else |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1800 DW_FUNCTION_DEFINITION(dw_window_lower, int, HWND handle) |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1801 DW_FUNCTION_ADD_PARAM1(handle) |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1802 DW_FUNCTION_RETURN(dw_window_lower, int) |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1803 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1804 { |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1805 int retval = DW_ERROR_UNKNOWN; |
2324
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
1806 GdkDisplay *display = gdk_display_get_default(); |
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
1807 |
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
1808 if(handle && GTK_IS_WINDOW(handle) && display && GDK_IS_X11_DISPLAY(display)) |
2320
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1809 { |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1810 GdkSurface *surface = gtk_native_get_surface(GTK_NATIVE(handle)); |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1811 |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1812 if(surface) |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1813 { |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1814 XLowerWindow(GDK_SURFACE_XDISPLAY(surface), GDK_SURFACE_XID(surface)); |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1815 retval = DW_ERROR_NONE; |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1816 } |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1817 } |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1818 DW_FUNCTION_RETURN_THIS(retval); |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1819 } |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
1820 #endif |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1821 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1822 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1823 * Makes the window visible. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1824 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1825 * handle: The window handle to make visible. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1826 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1827 DW_FUNCTION_DEFINITION(dw_window_show, int, HWND handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1828 DW_FUNCTION_ADD_PARAM1(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1829 DW_FUNCTION_RETURN(dw_window_show, int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1830 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1831 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1832 int retval = DW_ERROR_NONE; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1833 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1834 if(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1835 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1836 if(GTK_IS_WINDOW(handle)) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1837 { |
2369
5b3b51ba5239
GTK4: Minor code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2368
diff
changeset
|
1838 GtkWidget *defaultitem = GTK_WIDGET(g_object_get_data(G_OBJECT(handle), "_dw_defaultitem")); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1839 |
2368
ec90b552b266
GTK4: Switch to using gtk_window_present() in dw_window_show().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2367
diff
changeset
|
1840 gtk_window_present(GTK_WINDOW(handle)); |
2369
5b3b51ba5239
GTK4: Minor code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2368
diff
changeset
|
1841 |
5b3b51ba5239
GTK4: Minor code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2368
diff
changeset
|
1842 if(defaultitem) |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1843 gtk_widget_grab_focus(defaultitem); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1844 } |
2368
ec90b552b266
GTK4: Switch to using gtk_window_present() in dw_window_show().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2367
diff
changeset
|
1845 else if(GTK_IS_WIDGET(handle)) |
ec90b552b266
GTK4: Switch to using gtk_window_present() in dw_window_show().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2367
diff
changeset
|
1846 gtk_widget_show(handle); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1847 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1848 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1849 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1850 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1851 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1852 * Makes the window invisible. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1853 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1854 * handle: The window handle to make visible. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1855 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1856 DW_FUNCTION_DEFINITION(dw_window_hide, int, HWND handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1857 DW_FUNCTION_ADD_PARAM1(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1858 DW_FUNCTION_RETURN(dw_window_hide, int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1859 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1860 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1861 int retval = DW_ERROR_NONE; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1862 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1863 if(handle && GTK_IS_WIDGET(handle)) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1864 gtk_widget_hide(handle); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1865 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1866 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1867 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1868 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1869 * Destroys a window and all of it's children. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1870 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1871 * handle: The window handle to destroy. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1872 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1873 DW_FUNCTION_DEFINITION(dw_window_destroy, int, HWND handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1874 DW_FUNCTION_ADD_PARAM1(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1875 DW_FUNCTION_RETURN(dw_window_destroy, int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1876 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1877 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1878 int retval = DW_ERROR_NONE; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1879 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1880 if(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1881 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1882 if(GTK_IS_WINDOW(handle)) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1883 gtk_window_destroy(GTK_WINDOW(handle)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1884 else if(GTK_IS_WIDGET(handle)) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1885 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1886 GtkWidget *box, *handle2 = handle; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1887 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1888 /* Check if we are removing a widget from a box */ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1889 if((box = gtk_widget_get_parent(handle2)) && GTK_IS_GRID(box)) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1890 { |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1891 /* Get the number of items in the box... */ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1892 int boxcount = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(box), "_dw_boxcount")); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1893 int boxtype = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(box), "_dw_boxtype")); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1894 int z; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1895 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1896 /* Figure out where in the grid this widget is and remove that row/column */ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1897 if(boxtype == DW_VERT) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1898 { |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1899 for(z=0;z<boxcount;z++) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1900 { |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1901 if(gtk_grid_get_child_at(GTK_GRID(box), 0, z) == handle2) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1902 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1903 gtk_grid_remove_row(GTK_GRID(box), z); |
2329
47f8f950f377
GTK4: Fix crash by stopping processing after removing widget from the box.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2328
diff
changeset
|
1904 handle2 = NULL; |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1905 break; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1906 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1907 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1908 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1909 else |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1910 { |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1911 for(z=0;z<boxcount;z++) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1912 { |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1913 if(gtk_grid_get_child_at(GTK_GRID(box), z, 0) == handle2) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1914 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1915 gtk_grid_remove_column(GTK_GRID(box), z); |
2329
47f8f950f377
GTK4: Fix crash by stopping processing after removing widget from the box.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2328
diff
changeset
|
1916 handle2 = NULL; |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1917 break; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1918 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1919 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1920 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1921 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1922 if(boxcount > 0) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1923 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1924 /* Decrease the count by 1 */ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1925 boxcount--; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1926 g_object_set_data(G_OBJECT(box), "_dw_boxcount", GINT_TO_POINTER(boxcount)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1927 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1928 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1929 /* Finally destroy the widget, make sure it is still |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1930 * a valid widget if it got removed from the grid. |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1931 */ |
2329
47f8f950f377
GTK4: Fix crash by stopping processing after removing widget from the box.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2328
diff
changeset
|
1932 if(handle2 && GTK_IS_WIDGET(handle2)) |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1933 g_object_unref(G_OBJECT(handle2)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1934 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1935 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1936 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1937 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1938 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1939 /* Causes entire window to be invalidated and redrawn. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1940 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1941 * handle: Toplevel window handle to be redrawn. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1942 */ |
2328
5363f953b22a
GTK4: Implement dw_window_redraw() for render/drawing area widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2327
diff
changeset
|
1943 DW_FUNCTION_DEFINITION(dw_window_redraw, void, HWND handle) |
5363f953b22a
GTK4: Implement dw_window_redraw() for render/drawing area widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2327
diff
changeset
|
1944 DW_FUNCTION_ADD_PARAM1(handle) |
5363f953b22a
GTK4: Implement dw_window_redraw() for render/drawing area widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2327
diff
changeset
|
1945 DW_FUNCTION_NO_RETURN(dw_window_redraw) |
5363f953b22a
GTK4: Implement dw_window_redraw() for render/drawing area widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2327
diff
changeset
|
1946 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
5363f953b22a
GTK4: Implement dw_window_redraw() for render/drawing area widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2327
diff
changeset
|
1947 { |
5363f953b22a
GTK4: Implement dw_window_redraw() for render/drawing area widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2327
diff
changeset
|
1948 if(handle && GTK_IS_DRAWING_AREA(handle)) |
5363f953b22a
GTK4: Implement dw_window_redraw() for render/drawing area widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2327
diff
changeset
|
1949 gtk_widget_queue_draw(GTK_WIDGET(handle)); |
5363f953b22a
GTK4: Implement dw_window_redraw() for render/drawing area widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2327
diff
changeset
|
1950 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1951 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1952 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1953 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1954 * Changes a window's parent to newparent. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1955 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1956 * handle: The window handle to destroy. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1957 * newparent: The window's new parent window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1958 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1959 DW_FUNCTION_DEFINITION(dw_window_reparent, void, HWND handle, HWND newparent) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1960 DW_FUNCTION_ADD_PARAM2(handle, newparent) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1961 DW_FUNCTION_NO_RETURN(dw_window_reparent) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1962 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, newparent, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1963 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1964 if(handle && GTK_IS_WIDGET(handle) && newparent && GTK_IS_WIDGET(newparent)) |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1965 gtk_widget_set_parent(GTK_WIDGET(handle), GTK_WIDGET(newparent)); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
1966 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1967 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1968 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1969 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1970 * Sets the default font used on text based widgets. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1971 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1972 * fontname: Font name in Dynamic Windows format. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1973 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1974 void API dw_font_set_default(const char *fontname) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1975 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1976 char *oldfont = _DWDefaultFont; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1977 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1978 _DWDefaultFont = strdup(fontname); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1979 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1980 if(oldfont) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1981 free(oldfont); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1982 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1983 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1984 /* Convert DW style font to CSS syntax (or Pango for older versions): |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1985 * font: font-style font-variant font-weight font-size/line-height font-family |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1986 */ |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
1987 char *_dw_convert_font(const char *font) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1988 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1989 char *newfont = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1990 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1991 if(font) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1992 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1993 char *name = strchr(font, '.'); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1994 char *Italic = strstr(font, " Italic"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1995 char *Bold = strstr(font, " Bold"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1996 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1997 /* Detect Dynamic Windows style font name... |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1998 * Format: ##.Fontname |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1999 * and convert to CSS or Pango syntax |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2000 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2001 if(name && (name++) && isdigit(*font)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2002 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2003 int size = atoi(font); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2004 int len = (Italic ? (Bold ? (Italic > Bold ? (Bold - name) : (Italic - name)) : (Italic - name)) : (Bold ? (Bold - name) : strlen(name))); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2005 char *newname = alloca(len+1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2006 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2007 memset(newname, 0, len+1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2008 strncpy(newname, name, len); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2009 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2010 newfont = g_strdup_printf("%s normal %s %dpx \"%s\"", Italic ? "italic" : "normal", |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2011 Bold ? "bold" : "normal", size, newname); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2012 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2013 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2014 return newfont; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2015 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2016 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2017 /* Internal functions to convert to GTK3 style CSS */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2018 static void _dw_override_color(GtkWidget *widget, const char *element, GdkRGBA *color) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2019 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2020 gchar *dataname = g_strdup_printf ("_dw_color_%s", element); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2021 GtkCssProvider *provider = g_object_get_data(G_OBJECT(widget), dataname); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2022 GtkStyleContext *scontext = gtk_widget_get_style_context(widget); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2023 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2024 /* If we have an old context from a previous override remove it */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2025 if(provider) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2026 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2027 gtk_style_context_remove_provider(scontext, GTK_STYLE_PROVIDER(provider)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2028 g_object_unref(provider); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2029 provider = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2030 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2031 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2032 /* If we have a new color, create a new provider and add it */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2033 if(color) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2034 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2035 gchar *scolor = gdk_rgba_to_string(color); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2036 gchar *css = g_strdup_printf ("* { %s: %s; }", element, scolor); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2037 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2038 provider = gtk_css_provider_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2039 g_free(scolor); |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2040 gtk_css_provider_load_from_data(provider, css, -1); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2041 g_free(css); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2042 gtk_style_context_add_provider(scontext, GTK_STYLE_PROVIDER(provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2043 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2044 g_object_set_data(G_OBJECT(widget), dataname, (gpointer)provider); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2045 g_free(dataname); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2046 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2047 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2048 static void _dw_override_font(GtkWidget *widget, const char *font) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2049 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2050 GtkCssProvider *provider = g_object_get_data(G_OBJECT(widget), "_dw_font"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2051 GtkStyleContext *scontext = gtk_widget_get_style_context(widget); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2052 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2053 /* If we have an old context from a previous override remove it */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2054 if(provider) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2055 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2056 gtk_style_context_remove_provider(scontext, GTK_STYLE_PROVIDER(provider)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2057 g_object_unref(provider); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2058 provider = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2059 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2060 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2061 /* If we have a new font, create a new provider and add it */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2062 if(font) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2063 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2064 gchar *css = g_strdup_printf ("* { font: %s; }", font); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2065 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2066 provider = gtk_css_provider_new(); |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2067 gtk_css_provider_load_from_data(provider, css, -1); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2068 g_free(css); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2069 gtk_style_context_add_provider(scontext, GTK_STYLE_PROVIDER(provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2070 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2071 g_object_set_data(G_OBJECT(widget), "_dw_font", (gpointer)provider); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2072 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2073 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2074 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2075 * Sets the font used by a specified window (widget) handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2076 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2077 * handle: The window (widget) handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2078 * fontname: Name and size of the font in the form "size.fontname" |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2079 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2080 DW_FUNCTION_DEFINITION(dw_window_set_font, int, HWND handle, const char *fontname) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2081 DW_FUNCTION_ADD_PARAM2(handle, fontname) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2082 DW_FUNCTION_RETURN(dw_window_set_font, int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2083 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, fontname, const char *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2084 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2085 GtkWidget *handle2 = handle; |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
2086 char *font = _dw_convert_font(fontname); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2087 gpointer data; |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2088 int retval = DW_ERROR_NONE; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2089 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2090 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2091 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2092 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2093 if(tmp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2094 handle2 = tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2095 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2096 /* If it is a groupox we want to operate on the frame label */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2097 else if(GTK_IS_FRAME(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2098 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2099 GtkWidget *tmp = gtk_frame_get_label_widget(GTK_FRAME(handle)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2100 if(tmp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2101 handle2 = tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2102 } |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2103 else if(GTK_IS_COMBO_BOX(handle)) |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2104 { |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2105 GtkWidget *tmp = gtk_combo_box_get_child(GTK_COMBO_BOX(handle)); |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2106 if(tmp) |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2107 handle2 = tmp; |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2108 } |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2109 else if(GTK_IS_BUTTON(handle)) |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2110 { |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2111 GtkWidget *tmp = gtk_button_get_child(GTK_BUTTON(handle)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2112 if(tmp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2113 handle2 = tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2114 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2115 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2116 /* Free old font name if one is allocated */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2117 data = g_object_get_data(G_OBJECT(handle2), "_dw_fontname"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2118 g_object_set_data(G_OBJECT(handle2), "_dw_fontname", (gpointer)font); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2119 if(data) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2120 free(data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2121 |
2325
55524dbe6a54
GTK4: The font crash seems to affect GtkDrawingArea. So reenable the widget
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2324
diff
changeset
|
2122 if(!GTK_IS_DRAWING_AREA(handle2)) |
55524dbe6a54
GTK4: The font crash seems to affect GtkDrawingArea. So reenable the widget
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2324
diff
changeset
|
2123 _dw_override_font(handle2, font); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2124 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2125 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2126 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2127 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2128 /* Allows the user to choose a font using the system's font chooser dialog. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2129 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2130 * currfont: current font |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2131 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2132 * A malloced buffer with the selected font or NULL on error. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2133 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2134 DW_FUNCTION_DEFINITION(dw_font_choose, char *, const char *currfont) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2135 DW_FUNCTION_ADD_PARAM1(currfont) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2136 DW_FUNCTION_RETURN(dw_font_choose, char *) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2137 DW_FUNCTION_RESTORE_PARAM1(currfont, const char *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2138 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2139 GtkFontChooser *fd; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2140 char *font = currfont ? strdup(currfont) : NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2141 char *name = font ? strchr(font, '.') : NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2142 char *retfont = NULL; |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2143 DWDialog *tmp = dw_dialog_new(NULL); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2144 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2145 /* Detect Dynamic Windows style font name... |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2146 * Format: ##.Fontname |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2147 * and convert to a Pango name |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2148 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2149 if(name && isdigit(*font)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2150 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2151 int size = atoi(font); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2152 *name = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2153 name++; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2154 sprintf(font, "%s %d", name, size); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2155 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2156 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2157 fd = (GtkFontChooser *)gtk_font_chooser_dialog_new("Choose font", NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2158 if(font) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2159 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2160 gtk_font_chooser_set_font(fd, font); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2161 free(font); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2162 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2163 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2164 gtk_widget_show(GTK_WIDGET(fd)); |
2267
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
2165 g_signal_connect(G_OBJECT(fd), "response", G_CALLBACK(_dw_dialog_response), (gpointer)tmp); |
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
2166 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2167 if(DW_POINTER_TO_INT(dw_dialog_wait(tmp)) == GTK_RESPONSE_OK) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2168 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2169 char *fontname = gtk_font_chooser_get_font(fd); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2170 if(fontname && (retfont = strdup(fontname))) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2171 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2172 int len = strlen(fontname); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2173 /* Convert to Dynamic Windows format if we can... */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2174 if(len > 0 && isdigit(fontname[len-1])) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2175 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2176 int size, x=len-1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2177 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2178 while(x > 0 && fontname[x] != ' ') |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2179 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2180 x--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2181 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2182 size = atoi(&fontname[x]); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2183 /* If we were able to find a valid size... */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2184 if(size > 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2185 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2186 /* Null terminate after the name... |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2187 * and create the Dynamic Windows style font. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2188 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2189 fontname[x] = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2190 snprintf(retfont, len+1, "%d.%s", size, fontname); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2191 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2192 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2193 g_free(fontname); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2194 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2195 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2196 if(GTK_IS_WINDOW(fd)) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2197 gtk_window_destroy(GTK_WINDOW(fd)); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2198 DW_FUNCTION_RETURN_THIS(retfont); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2199 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2200 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2201 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2202 * Gets the font used by a specified window (widget) handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2203 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2204 * handle: The window (widget) handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2205 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2206 DW_FUNCTION_DEFINITION(dw_window_get_font, char *, HWND handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2207 DW_FUNCTION_ADD_PARAM1(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2208 DW_FUNCTION_RETURN(dw_window_get_font, char *) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2209 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2210 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2211 PangoFontDescription *pfont; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2212 PangoContext *pcontext; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2213 GtkWidget *handle2 = handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2214 char *font; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2215 char *retfont=NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2216 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2217 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2218 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2219 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2220 if(tmp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2221 handle2 = tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2222 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2223 /* If it is a groupox we want to operate on the frame label */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2224 else if(GTK_IS_FRAME(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2225 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2226 GtkWidget *tmp = gtk_frame_get_label_widget(GTK_FRAME(handle)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2227 if(tmp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2228 handle2 = tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2229 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2230 |
2267
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
2231 pcontext = gtk_widget_get_pango_context(handle2); |
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
2232 if(pcontext) |
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
2233 { |
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
2234 pfont = pango_context_get_font_description(pcontext); |
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
2235 if(pfont) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2236 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2237 int len, x; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2238 |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
2239 font = pango_font_description_to_string(pfont); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2240 retfont = strdup(font); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2241 len = strlen(font); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2242 /* Convert to Dynamic Windows format if we can... */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2243 if(len > 0 && isdigit(font[len-1])) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2244 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2245 int size; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2246 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2247 x=len-1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2248 while(x > 0 && font[x] != ' ') |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2249 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2250 x--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2251 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2252 size = atoi(&font[x]); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2253 /* If we were able to find a valid size... */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2254 if(size > 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2255 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2256 /* Null terminate after the name... |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2257 * and create the Dynamic Windows style font. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2258 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2259 font[x] = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2260 snprintf(retfont, len+1, "%d.%s", size, font); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2261 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2262 } |
2267
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
2263 g_free(font); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2264 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2265 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2266 DW_FUNCTION_RETURN_THIS(retfont); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2267 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2268 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2269 void _dw_free_gdk_colors(HWND handle) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2270 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2271 GdkRGBA *old = (GdkRGBA *)g_object_get_data(G_OBJECT(handle), "_dw_foregdk"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2272 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2273 if(old) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2274 free(old); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2275 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2276 old = (GdkRGBA *)g_object_get_data(G_OBJECT(handle), "_dw_backgdk"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2277 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2278 if(old) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2279 free(old); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2280 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2281 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2282 /* Free old color pointers and allocate new ones */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2283 static void _dw_save_gdk_colors(HWND handle, GdkRGBA fore, GdkRGBA back) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2284 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2285 GdkRGBA *foregdk = malloc(sizeof(GdkRGBA)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2286 GdkRGBA *backgdk = malloc(sizeof(GdkRGBA)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2287 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2288 _dw_free_gdk_colors(handle); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2289 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2290 *foregdk = fore; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2291 *backgdk = back; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2292 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2293 g_object_set_data(G_OBJECT(handle), "_dw_foregdk", (gpointer)foregdk); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2294 g_object_set_data(G_OBJECT(handle), "_dw_backgdk", (gpointer)backgdk); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2295 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2296 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2297 static int _dw_set_color(HWND handle, unsigned long fore, unsigned long back) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2298 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2299 /* Remember that each color component in X11 use 16 bit no matter |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2300 * what the destination display supports. (and thus GDK) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2301 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2302 GdkRGBA forecolor = {0}, backcolor = {0}; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2303 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2304 if(fore & DW_RGB_COLOR) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2305 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2306 forecolor.alpha = 1.0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2307 forecolor.red = (gdouble)DW_RED_VALUE(fore) / 255.0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2308 forecolor.green = (gdouble)DW_GREEN_VALUE(fore) / 255.0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2309 forecolor.blue = (gdouble)DW_BLUE_VALUE(fore) / 255.0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2310 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2311 else if(fore != DW_CLR_DEFAULT) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2312 forecolor = _colors[fore]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2313 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2314 _dw_override_color(handle, "color", fore != DW_CLR_DEFAULT ? &forecolor : NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2315 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2316 if(back & DW_RGB_COLOR) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2317 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2318 backcolor.alpha = 1.0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2319 backcolor.red = (gdouble)DW_RED_VALUE(back) / 255.0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2320 backcolor.green = (gdouble)DW_GREEN_VALUE(back) / 255.0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2321 backcolor.blue = (gdouble)DW_BLUE_VALUE(back) / 255.0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2322 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2323 else if(back != DW_CLR_DEFAULT) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2324 backcolor = _colors[back]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2325 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2326 _dw_override_color(handle, "background-color", back != DW_CLR_DEFAULT ? &backcolor : NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2327 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2328 _dw_save_gdk_colors(handle, forecolor, backcolor); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2329 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2330 return TRUE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2331 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2332 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2333 * Sets the colors used by a specified window (widget) handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2334 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2335 * handle: The window (widget) handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2336 * fore: Foreground color in RGB format. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2337 * back: Background color in RGB format. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2338 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2339 DW_FUNCTION_DEFINITION(dw_window_set_color, int, HWND handle, unsigned long fore, unsigned long back) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2340 DW_FUNCTION_ADD_PARAM3(handle, fore, back) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2341 DW_FUNCTION_RETURN(dw_window_set_color, int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2342 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, fore, unsigned long, back, unsigned long) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2343 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2344 GtkWidget *handle2 = handle; |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2345 int retval = DW_ERROR_NONE; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2346 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2347 if(GTK_IS_SCROLLED_WINDOW(handle) || GTK_IS_BOX(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2348 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2349 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2350 if(tmp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2351 handle2 = tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2352 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2353 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2354 _dw_set_color(handle2, fore, back); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2355 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2356 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2357 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2358 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2359 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2360 * Sets the font used by a specified window (widget) handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2361 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2362 * handle: The window (widget) handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2363 * border: Size of the window border in pixels. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2364 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
2365 int API dw_window_set_border(HWND handle, int border) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2366 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2367 /* TODO */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2368 return 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2369 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2370 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2371 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2372 * Changes the appearance of the mouse pointer. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2373 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2374 * handle: Handle to widget for which to change. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2375 * cursortype: ID of the pointer you want. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2376 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2377 DW_FUNCTION_DEFINITION(dw_window_set_pointer, void, HWND handle, int pointertype) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2378 DW_FUNCTION_ADD_PARAM2(handle, pointertype) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2379 DW_FUNCTION_NO_RETURN(dw_window_set_pointer) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2380 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, pointertype, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2381 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2382 if(pointertype > 65535) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2383 { |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2384 GdkPixbuf *pixbuf = _dw_find_pixbuf(GINT_TO_POINTER(pointertype), NULL, NULL); |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2385 GdkCursor *cursor = gdk_cursor_new_from_texture(gdk_texture_new_for_pixbuf(pixbuf), 0, 0, NULL); |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2386 if(cursor) |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2387 gtk_widget_set_cursor(GTK_WIDGET(handle), cursor); |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2388 } |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2389 if(pointertype == DW_POINTER_ARROW) |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2390 gtk_widget_set_cursor_from_name(GTK_WIDGET(handle), "default"); |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2391 else if(pointertype == DW_POINTER_CLOCK) |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2392 gtk_widget_set_cursor_from_name(GTK_WIDGET(handle), "wait"); |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2393 else if(pointertype == DW_POINTER_QUESTION) |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2394 gtk_widget_set_cursor_from_name(GTK_WIDGET(handle), "help"); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2395 else |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2396 gtk_widget_set_cursor(GTK_WIDGET(handle), NULL); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2397 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2398 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2399 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2400 /* |
2321
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2401 * Captures the mouse input to this window. |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2402 * Parameters: |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2403 * handle: Handle to receive mouse input. |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2404 */ |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2405 #ifndef GDK_WINDOWING_X11 |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
2406 void API dw_window_capture(HWND handle) |
2321
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2407 { |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2408 } |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2409 #else |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2410 static Display *_DWXGrabbedDisplay = NULL; |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2411 |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2412 DW_FUNCTION_DEFINITION(dw_window_capture, void, HWND handle) |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2413 DW_FUNCTION_ADD_PARAM1(handle) |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2414 DW_FUNCTION_NO_RETURN(dw_window_capture) |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2415 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2416 { |
2324
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
2417 GdkDisplay *display = gdk_display_get_default(); |
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
2418 |
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
2419 if(_DWXGrabbedDisplay == NULL && handle && GTK_IS_WINDOW(handle) && display && GDK_IS_X11_DISPLAY(display)) |
2321
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2420 { |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2421 GdkSurface *surface = gtk_native_get_surface(GTK_NATIVE(handle)); |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2422 |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2423 if(surface) |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2424 { |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2425 if(XGrabPointer(GDK_SURFACE_XDISPLAY(surface), GDK_SURFACE_XID(surface), FALSE, |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2426 ButtonPressMask | ButtonReleaseMask | PointerMotionMask | EnterWindowMask | LeaveWindowMask, |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2427 GrabModeAsync, GrabModeAsync, None, None, CurrentTime) == GrabSuccess) |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2428 _DWXGrabbedDisplay = GDK_SURFACE_XDISPLAY(surface); |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2429 |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2430 } |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2431 } |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2432 DW_FUNCTION_RETURN_NOTHING; |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2433 } |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2434 #endif |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2435 |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2436 /* |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2437 * Releases previous mouse capture. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2438 */ |
2321
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2439 #ifndef GDK_WINDOWING_X11 |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
2440 void API dw_window_release(void) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2441 { |
2321
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2442 } |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2443 #else |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2444 DW_FUNCTION_DEFINITION(dw_window_release, void) |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2445 DW_FUNCTION_ADD_PARAM |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2446 DW_FUNCTION_NO_RETURN(dw_window_release) |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2447 { |
2324
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
2448 /* Don't need X11 test, _DWXGrabbedDisplay won't get set unless X11 */ |
2321
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2449 if(_DWXGrabbedDisplay) |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2450 { |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2451 XUngrabPointer(_DWXGrabbedDisplay, CurrentTime); |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2452 _DWXGrabbedDisplay = NULL; |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2453 } |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2454 DW_FUNCTION_RETURN_NOTHING; |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2455 } |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
2456 #endif |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2457 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2458 /* Window creation flags that will cause the window to have decorations */ |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2459 #define _DW_DECORATION_FLAGS (DW_FCF_CLOSEBUTTON|DW_FCF_SYSMENU|DW_FCF_TITLEBAR|DW_FCF_MINMAX|DW_FCF_SIZEBORDER|DW_FCF_BORDER|DW_FCF_DLGBORDER) |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2460 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2461 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2462 * Create a new Window Frame. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2463 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2464 * owner: The Owner's window handle or HWND_DESKTOP. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2465 * title: The Window title. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2466 * flStyle: Style flags, see the PM reference. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2467 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2468 DW_FUNCTION_DEFINITION(dw_window_new, HWND, DW_UNUSED(HWND hwndOwner), const char *title, ULONG flStyle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2469 DW_FUNCTION_ADD_PARAM3(hwndOwner, title, flStyle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2470 DW_FUNCTION_RETURN(dw_window_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2471 DW_FUNCTION_RESTORE_PARAM3(DW_UNUSED(hwndOwner), HWND, title, char *, flStyle, ULONG) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2472 { |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2473 GtkWidget *box = dw_box_new(DW_VERT, 0); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2474 GtkWidget *grid = gtk_grid_new(); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2475 GtkWidget *tmp = gtk_window_new(); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2476 |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2477 gtk_widget_show(grid); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2478 |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2479 /* Handle the window style flags */ |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2480 gtk_window_set_title(GTK_WINDOW(tmp), title); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2481 gtk_window_set_resizable(GTK_WINDOW(tmp), (flStyle & DW_FCF_SIZEBORDER) ? TRUE : FALSE); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2482 /* Either the CLOSEBUTTON or SYSMENU flags should make it deletable */ |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2483 gtk_window_set_deletable(GTK_WINDOW(tmp), (flStyle & (DW_FCF_CLOSEBUTTON | DW_FCF_SYSMENU)) ? TRUE : FALSE); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2484 gtk_window_set_decorated(GTK_WINDOW(tmp), (flStyle & _DW_DECORATION_FLAGS) ? TRUE : FALSE); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2485 |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2486 gtk_widget_realize(tmp); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2487 |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2488 if(flStyle & DW_FCF_FULLSCREEN) |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2489 gtk_window_fullscreen(GTK_WINDOW(tmp)); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2490 else |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2491 { |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2492 if(flStyle & DW_FCF_MAXIMIZE) |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2493 gtk_window_maximize(GTK_WINDOW(tmp)); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2494 |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2495 if(flStyle & DW_FCF_MINIMIZE) |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2496 gtk_window_minimize(GTK_WINDOW(tmp)); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2497 } |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2498 |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2499 gtk_grid_attach(GTK_GRID(grid), box, 0, 1, 1, 1); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2500 gtk_window_set_child(GTK_WINDOW(tmp), grid); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2501 g_object_set_data(G_OBJECT(tmp), "_dw_boxhandle", (gpointer)box); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2502 g_object_set_data(G_OBJECT(tmp), "_dw_grid", (gpointer)grid); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2503 g_object_set_data(G_OBJECT(tmp), "_dw_style", GINT_TO_POINTER(flStyle)); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2504 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2505 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2506 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2507 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2508 * Create a new Box to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2509 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2510 * type: Either DW_VERT (vertical) or DW_HORZ (horizontal). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2511 * pad: Number of pixels to pad around the box. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2512 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
2513 DW_FUNCTION_DEFINITION(dw_box_new, HWND, int type, int pad) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
2514 DW_FUNCTION_ADD_PARAM2(type, pad) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
2515 DW_FUNCTION_RETURN(dw_box_new, HWND) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
2516 DW_FUNCTION_RESTORE_PARAM2(type, int, pad, int) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
2517 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
2518 GtkWidget *tmp = gtk_grid_new(); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2519 g_object_set_data(G_OBJECT(tmp), "_dw_boxtype", GINT_TO_POINTER(type)); |
2276
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
2520 _dw_widget_set_pad(tmp, pad); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2521 gtk_widget_show(tmp); |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
2522 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2523 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2524 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2525 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2526 * Create a new scrollable Box to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2527 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2528 * type: Either DW_VERT (vertical) or DW_HORZ (horizontal). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2529 * pad: Number of pixels to pad around the box. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2530 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2531 DW_FUNCTION_DEFINITION(dw_scrollbox_new, HWND, int type, int pad) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2532 DW_FUNCTION_ADD_PARAM2(type, pad) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2533 DW_FUNCTION_RETURN(dw_scrollbox_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2534 DW_FUNCTION_RESTORE_PARAM2(type, int, pad, int) |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2535 { |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2536 GtkWidget *tmp, *box; |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2537 |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2538 tmp = gtk_scrolled_window_new(); |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2539 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(tmp), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2540 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2541 box = gtk_grid_new(); |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2542 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2543 g_object_set_data(G_OBJECT(box), "_dw_boxtype", GINT_TO_POINTER(type)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2544 g_object_set_data(G_OBJECT(tmp), "_dw_boxhandle", (gpointer)box); |
2276
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
2545 _dw_widget_set_pad(box, pad); |
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
2546 |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2547 gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(tmp), box); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2548 g_object_set_data(G_OBJECT(tmp), "_dw_user", box); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2549 gtk_widget_show(box); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2550 gtk_widget_show(tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2551 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2552 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2553 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2554 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2555 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2556 * Returns the position of the scrollbar in the scrollbox |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2557 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2558 * handle: Handle to the scrollbox to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2559 * orient: The vertical or horizontal scrollbar. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2560 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2561 DW_FUNCTION_DEFINITION(dw_scrollbox_get_pos, int, HWND handle, int orient) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2562 DW_FUNCTION_ADD_PARAM2(handle, orient) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2563 DW_FUNCTION_RETURN(dw_scrollbox_get_pos, int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2564 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, orient, int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2565 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2566 int val = DW_ERROR_UNKNOWN; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2567 GtkAdjustment *adjustment; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2568 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2569 if(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2570 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2571 if(orient == DW_HORZ) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2572 adjustment = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(handle)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2573 else |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2574 adjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(handle)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2575 if(adjustment) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2576 val = _dw_round_value(gtk_adjustment_get_value(adjustment)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2577 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2578 DW_FUNCTION_RETURN_THIS(val); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2579 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2580 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2581 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2582 * Gets the range for the scrollbar in the scrollbox. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2583 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2584 * handle: Handle to the scrollbox to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2585 * orient: The vertical or horizontal scrollbar. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2586 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2587 DW_FUNCTION_DEFINITION(dw_scrollbox_get_range, int, HWND handle, int orient) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2588 DW_FUNCTION_ADD_PARAM2(handle, orient) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2589 DW_FUNCTION_RETURN(dw_scrollbox_get_range, int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2590 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, orient, int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2591 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2592 int range = DW_ERROR_UNKNOWN; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2593 GtkAdjustment *adjustment; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2594 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2595 if(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2596 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2597 if(orient == DW_HORZ) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2598 adjustment = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(handle)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2599 else |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2600 adjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(handle)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2601 if(adjustment) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2602 range = _dw_round_value(gtk_adjustment_get_upper(adjustment)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2603 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2604 DW_FUNCTION_RETURN_THIS(range); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2605 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2606 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2607 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2608 * Create a new Group Box to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2609 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2610 * type: Either DW_VERT (vertical) or DW_HORZ (horizontal). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2611 * pad: Number of pixels to pad around the box. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2612 * title: Text to be displayined in the group outline. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2613 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2614 DW_FUNCTION_DEFINITION(dw_groupbox_new, HWND, int type, int pad, const char *title) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2615 DW_FUNCTION_ADD_PARAM3(type, pad, title) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2616 DW_FUNCTION_RETURN(dw_groupbox_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2617 DW_FUNCTION_RESTORE_PARAM3(type, int, pad, int, title, const char *) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2618 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2619 GtkWidget *tmp, *frame = gtk_frame_new(NULL); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2620 gtk_frame_set_label(GTK_FRAME(frame), title && *title ? title : NULL); |
2276
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
2621 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2622 tmp = gtk_grid_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2623 g_object_set_data(G_OBJECT(tmp), "_dw_boxtype", GINT_TO_POINTER(type)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2624 g_object_set_data(G_OBJECT(frame), "_dw_boxhandle", (gpointer)tmp); |
2276
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
2625 _dw_widget_set_pad(tmp, pad); |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2626 gtk_frame_set_child(GTK_FRAME(frame), tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2627 gtk_widget_show(tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2628 gtk_widget_show(frame); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2629 if(_DWDefaultFont) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2630 dw_window_set_font(frame, _DWDefaultFont); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2631 DW_FUNCTION_RETURN_THIS(frame); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2632 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2633 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2634 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2635 * Create a bitmap object to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2636 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2637 * id: An ID to be used with dw_window_from_id() or 0L. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2638 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2639 DW_FUNCTION_DEFINITION(dw_bitmap_new, HWND, ULONG cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2640 DW_FUNCTION_ADD_PARAM1(cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2641 DW_FUNCTION_RETURN(dw_bitmap_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2642 DW_FUNCTION_RESTORE_PARAM1(cid, ULONG) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2643 { |
2366
b3efaae95735
GTK4: Apparenlty on GTK4 GtkImage is used for icons, switch to GtkPicture.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2365
diff
changeset
|
2644 GtkWidget *tmp = gtk_picture_new(); |
b3efaae95735
GTK4: Apparenlty on GTK4 GtkImage is used for icons, switch to GtkPicture.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2365
diff
changeset
|
2645 gtk_picture_set_can_shrink(GTK_PICTURE(tmp), TRUE); |
2367
0f340646a2ca
GTK4: GtkPictures should be centered, not filled... don't clobber the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2366
diff
changeset
|
2646 gtk_picture_set_keep_aspect_ratio(GTK_PICTURE(tmp), TRUE); |
0f340646a2ca
GTK4: GtkPictures should be centered, not filled... don't clobber the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2366
diff
changeset
|
2647 gtk_widget_set_halign(GTK_WIDGET(tmp), GTK_ALIGN_CENTER); |
0f340646a2ca
GTK4: GtkPictures should be centered, not filled... don't clobber the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2366
diff
changeset
|
2648 gtk_widget_set_valign(GTK_WIDGET(tmp), GTK_ALIGN_CENTER); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2649 gtk_widget_show(tmp); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2650 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2651 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2652 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2653 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2654 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2655 * Create a notebook object to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2656 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2657 * id: An ID to be used for getting the resource from the |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2658 * resource file. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2659 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2660 DW_FUNCTION_DEFINITION(dw_notebook_new, HWND, ULONG cid, int top) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2661 DW_FUNCTION_ADD_PARAM2(cid, top) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2662 DW_FUNCTION_RETURN(dw_notebook_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2663 DW_FUNCTION_RESTORE_PARAM2(cid, ULONG, top, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2664 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2665 GtkWidget *tmp, **pagearray = calloc(sizeof(GtkWidget *), 256); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2666 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2667 tmp = gtk_notebook_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2668 if(top) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2669 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(tmp), GTK_POS_TOP); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2670 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2671 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(tmp), GTK_POS_BOTTOM); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2672 gtk_notebook_set_scrollable(GTK_NOTEBOOK(tmp), TRUE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2673 gtk_widget_show(tmp); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2674 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2675 g_object_set_data(G_OBJECT(tmp), "_dw_pagearray", (gpointer)pagearray); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2676 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2677 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2678 |
2290
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2679 static unsigned int _dw_menugroup = 0; |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2680 |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2681 /* Recurse into a menu setting the action groups on the menuparent widget */ |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2682 void _dw_menu_set_group_recursive(HMENUI start, GtkWidget *menuparent) |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2683 { |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2684 int z, submenucount = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(start), "_dw_submenucount")); |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2685 |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2686 for(z=0;z<submenucount;z++) |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2687 { |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2688 char tempbuf[101] = {0}; |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2689 HMENUI submenu; |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2690 |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2691 snprintf(tempbuf, 100, "_dw_submenu%d", z); |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2692 |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2693 if((submenu = g_object_get_data(G_OBJECT(start), tempbuf))) |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2694 { |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2695 if(!g_object_get_data(G_OBJECT(submenu), "_dw_menuparent")) |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2696 { |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2697 int menugroup = DW_POINTER_TO_INT(g_object_get_data(G_OBJECT(submenu), "_dw_menugroup")); |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2698 GSimpleActionGroup *group = g_object_get_data(G_OBJECT(submenu), "_dw_group"); |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2699 char tempbuf[25] = {0}; |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2700 |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2701 snprintf(tempbuf, 24, "menu%d", menugroup); |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2702 |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2703 gtk_widget_insert_action_group(GTK_WIDGET(menuparent), tempbuf, G_ACTION_GROUP(group)); |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2704 g_object_set_data(G_OBJECT(submenu), "_dw_menuparent", (gpointer)menuparent); |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2705 } |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2706 _dw_menu_set_group_recursive(submenu, menuparent); |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2707 } |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2708 } |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2709 } |
2289
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
2710 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2711 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2712 * Create a menu object to be popped up. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2713 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2714 * id: An ID to be used for getting the resource from the |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2715 * resource file. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2716 */ |
2310
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
2717 DW_FUNCTION_DEFINITION(dw_menu_new, HMENUI, ULONG cid) |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
2718 DW_FUNCTION_ADD_PARAM1(cid) |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
2719 DW_FUNCTION_RETURN(dw_menu_new, HMENUI) |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
2720 DW_FUNCTION_RESTORE_PARAM1(cid, ULONG) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2721 { |
2290
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2722 GMenu *tmp = g_menu_new(); |
2288
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2723 /* Create the initial section and add it to the menu */ |
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2724 GMenu *section = g_menu_new(); |
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2725 GMenuItem *item = g_menu_item_new_section(NULL, G_MENU_MODEL(section)); |
2289
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
2726 GSimpleActionGroup *group = g_simple_action_group_new(); |
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
2727 |
2290
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2728 g_menu_append_item(tmp, item); |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2729 |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2730 g_object_set_data(G_OBJECT(tmp), "_dw_menugroup", GINT_TO_POINTER(++_dw_menugroup)); |
2289
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
2731 g_object_set_data(G_OBJECT(tmp), "_dw_group", (gpointer)group); |
2310
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
2732 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
2288
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2733 g_object_set_data(G_OBJECT(tmp), "_dw_section", (gpointer)section); |
2310
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
2734 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2735 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2736 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2737 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2738 * Create a menubar on a window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2739 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2740 * location: Handle of a window frame to be attached to. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2741 * If there is no box already packed into the "location", the menu will not appear |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2742 * so tell the user. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2743 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2744 DW_FUNCTION_DEFINITION(dw_menubar_new, HMENUI, HWND location) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2745 DW_FUNCTION_ADD_PARAM1(location) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2746 DW_FUNCTION_RETURN(dw_menubar_new, HMENUI) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2747 DW_FUNCTION_RESTORE_PARAM1(location, HWND) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2748 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2749 HMENUI tmp = 0; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2750 GtkWidget *box; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2751 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2752 if(GTK_IS_WINDOW(location) && |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
2753 (box = GTK_WIDGET(g_object_get_data(G_OBJECT(location), "_dw_grid")))) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2754 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2755 /* If there is an existing menu bar, remove it */ |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
2756 GtkWidget *oldmenu = GTK_WIDGET(g_object_get_data(G_OBJECT(location), "_dw_menubar")); |
2288
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2757 GMenu *menu = g_menu_new(); |
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2758 /* Create the initial section and add it to the menu */ |
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2759 GMenu *section = g_menu_new(); |
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2760 GMenuItem *item = g_menu_item_new_section(NULL, G_MENU_MODEL(section)); |
2289
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
2761 GSimpleActionGroup *group = g_simple_action_group_new(); |
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
2762 char tempbuf[25] = {0}; |
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
2763 |
2288
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2764 g_menu_append_item(menu, item); |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2765 |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2766 if(oldmenu && GTK_IS_WIDGET(oldmenu)) |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
2767 gtk_grid_remove(GTK_GRID(box), tmp); |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2768 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2769 /* Create a new menu bar */ |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2770 tmp = gtk_popover_menu_bar_new_from_model(G_MENU_MODEL(menu)); |
2289
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
2771 snprintf(tempbuf, 24, "menu%d", ++_dw_menugroup); |
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
2772 gtk_widget_insert_action_group(GTK_WIDGET(tmp), tempbuf, G_ACTION_GROUP(group)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2773 gtk_widget_show(tmp); |
2289
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
2774 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2775 /* Save pointers to each other */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2776 g_object_set_data(G_OBJECT(location), "_dw_menubar", (gpointer)tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2777 g_object_set_data(G_OBJECT(tmp), "_dw_window", (gpointer)location); |
2289
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
2778 g_object_set_data(G_OBJECT(tmp), "_dw_menugroup", GINT_TO_POINTER(_dw_menugroup)); |
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
2779 g_object_set_data(G_OBJECT(tmp), "_dw_group", (gpointer)group); |
2288
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2780 g_object_set_data(G_OBJECT(tmp), "_dw_section", (gpointer)section); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2781 gtk_grid_attach(GTK_GRID(box), tmp, 0, 0, 1, 1); |
2290
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2782 _dw_menu_set_group_recursive(tmp, GTK_WIDGET(tmp)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2783 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2784 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2785 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2786 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2787 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2788 * Destroys a menu created with dw_menubar_new or dw_menu_new. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2789 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2790 * menu: Handle of a menu. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2791 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2792 DW_FUNCTION_DEFINITION(dw_menu_destroy, void, HMENUI *menu) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2793 DW_FUNCTION_ADD_PARAM1(menu) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2794 DW_FUNCTION_NO_RETURN(dw_menu_destroy) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2795 DW_FUNCTION_RESTORE_PARAM1(menu, HMENUI *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2796 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2797 if(menu && *menu) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2798 { |
2284
3361ce6070ce
Add DW_FEATURE_TASK_BAR to the feature tests, for taskbar icon support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2282
diff
changeset
|
2799 GtkWidget *window = NULL; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2800 |
2332
594111e84e89
GTK4: Save pointer to the activate popup menu for a window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2331
diff
changeset
|
2801 /* If it is attached to a window, try to delete the reference to it */ |
594111e84e89
GTK4: Save pointer to the activate popup menu for a window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2331
diff
changeset
|
2802 if((GTK_IS_POPOVER_MENU_BAR(*menu) || GTK_IS_POPOVER_MENU(*menu)) && |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
2803 (window = GTK_WIDGET(g_object_get_data(G_OBJECT(*menu), "_dw_window")))) |
2332
594111e84e89
GTK4: Save pointer to the activate popup menu for a window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2331
diff
changeset
|
2804 { |
594111e84e89
GTK4: Save pointer to the activate popup menu for a window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2331
diff
changeset
|
2805 if(GTK_IS_POPOVER_MENU_BAR(*menu)) |
594111e84e89
GTK4: Save pointer to the activate popup menu for a window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2331
diff
changeset
|
2806 g_object_set_data(G_OBJECT(window), "_dw_menubar", NULL); |
594111e84e89
GTK4: Save pointer to the activate popup menu for a window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2331
diff
changeset
|
2807 else |
594111e84e89
GTK4: Save pointer to the activate popup menu for a window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2331
diff
changeset
|
2808 g_object_set_data(G_OBJECT(window), "_dw_menu_popup", NULL); |
594111e84e89
GTK4: Save pointer to the activate popup menu for a window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2331
diff
changeset
|
2809 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2810 /* Actually destroy the menu */ |
2284
3361ce6070ce
Add DW_FEATURE_TASK_BAR to the feature tests, for taskbar icon support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2282
diff
changeset
|
2811 if(GTK_IS_WIDGET(*menu) && window) |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
2812 { |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
2813 GtkWidget *box = GTK_WIDGET(g_object_get_data(G_OBJECT(window), "_dw_grid")); |
2332
594111e84e89
GTK4: Save pointer to the activate popup menu for a window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2331
diff
changeset
|
2814 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
2815 if(box && GTK_IS_GRID(box)) |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
2816 gtk_grid_remove(GTK_GRID(box), GTK_WIDGET(*menu)); |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
2817 else |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
2818 g_object_unref(G_OBJECT(*menu)); |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
2819 } |
2290
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2820 else if(G_IS_MENU(*menu)) |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2821 g_object_unref(G_OBJECT(*menu)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2822 *menu = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2823 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2824 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2825 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2826 |
2286
2d282d8fe911
GTK4: Change to how the action name is created, don't use the menu label...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2284
diff
changeset
|
2827 char _dw_removetilde(char *dest, const char *src) |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2828 { |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2829 int z, cur=0; |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2830 char accel = '\0'; |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2831 |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2832 for(z=0;z<strlen(src);z++) |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2833 { |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2834 if(src[z] == '~') |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2835 { |
2286
2d282d8fe911
GTK4: Change to how the action name is created, don't use the menu label...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2284
diff
changeset
|
2836 dest[cur] = '_'; |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2837 accel = src[z+1]; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2838 } |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2839 else |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2840 dest[cur] = src[z]; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2841 cur++; |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2842 } |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2843 dest[cur] = 0; |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2844 return accel; |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2845 } |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2846 |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2847 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2848 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2849 * Adds a menuitem or submenu to an existing menu. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2850 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2851 * menu: The handle to the existing menu. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2852 * title: The title text on the menu item to be added. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2853 * id: An ID to be used for message passing. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2854 * flags: Extended attributes to set on the menu. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2855 * end: If TRUE memu is positioned at the end of the menu. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2856 * check: If TRUE menu is "check"able. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2857 * submenu: Handle to an existing menu to be a submenu or NULL. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2858 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2859 DW_FUNCTION_DEFINITION(dw_menu_append_item, HWND, HMENUI menu, const char *title, unsigned long id, unsigned long flags, int end, DW_UNUSED(int check), HMENUI submenu) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2860 DW_FUNCTION_ADD_PARAM7(menu, title, id, flags, end, check, submenu) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2861 DW_FUNCTION_RETURN(dw_menu_append_item, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2862 DW_FUNCTION_RESTORE_PARAM7(menu, HMENUI, title, const char *, id, unsigned long, flags, unsigned long, end, int, DW_UNUSED(check), int, submenu, HMENUI) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2863 { |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2864 GSimpleAction *action = NULL; |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2865 HWND tmphandle = NULL; |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2866 GMenuModel *menumodel; |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2867 char *temptitle = alloca(strlen(title)+1); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2868 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2869 if(menu) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2870 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2871 /* By default we add to the menu's current section */ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2872 menumodel = g_object_get_data(G_OBJECT(menu), "_dw_section"); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2873 _dw_removetilde(temptitle, title); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2874 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2875 /* To add a separator we create a new section and add it */ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2876 if (strlen(temptitle) == 0) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2877 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2878 GMenu *section = g_menu_new(); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2879 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2880 /* If we are creating a new section, add it to the core menu... not the section */ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2881 if(GTK_IS_POPOVER_MENU_BAR(menu)) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2882 menumodel = gtk_popover_menu_bar_get_menu_model(GTK_POPOVER_MENU_BAR(menu)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2883 else |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2884 menumodel = G_MENU_MODEL(menu); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2885 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2886 tmphandle = (HWND)g_menu_item_new_section(NULL, G_MENU_MODEL(section)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2887 g_object_set_data(G_OBJECT(menu), "_dw_section", (gpointer)section); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2888 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2889 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2890 { |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2891 char tempbuf[101] = {0}; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2892 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2893 if(submenu) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2894 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2895 if(G_IS_MENU(submenu)) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2896 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2897 int submenucount = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(menu), "_dw_submenucount")); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2898 GtkWidget *menuparent = GTK_WIDGET(g_object_get_data(G_OBJECT(menu), "_dw_menuparent")); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2899 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2900 /* If the menu being added to is a menu bar, that is the menuparent for submenus */ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2901 if(GTK_IS_POPOVER_MENU_BAR(menu)) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2902 menuparent = GTK_WIDGET(menu); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2903 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2904 snprintf(tempbuf, 100, "_dw_submenu%d", submenucount); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2905 submenucount++; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2906 tmphandle = (HWND)g_menu_item_new_submenu(temptitle, G_MENU_MODEL(submenu)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2907 g_object_set_data(G_OBJECT(menu), tempbuf, (gpointer)submenu); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2908 g_object_set_data(G_OBJECT(menu), "_dw_submenucount", GINT_TO_POINTER(submenucount)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2909 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2910 /* If we have a menu parent, use it to create the groups if needed */ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2911 if(menuparent && !g_object_get_data(G_OBJECT(submenu), "_dw_menuparent")) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2912 _dw_menu_set_group_recursive(menu, menuparent); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2913 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2914 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2915 else |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2916 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2917 char numbuf[25] = {0}; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2918 GSimpleActionGroup *group = g_object_get_data(G_OBJECT(menu), "_dw_group"); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2919 int menugroup = DW_POINTER_TO_INT(g_object_get_data(G_OBJECT(menu), "_dw_menugroup")); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2920 char *actionname; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2921 |
2326
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2922 /* Code to autogenerate a menu ID if not specified or invalid |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2923 * First pool is smaller for transient popup menus |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2924 */ |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2925 if(id == (ULONG)-1) |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2926 { |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2927 static ULONG tempid = 60000; |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2928 |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2929 tempid++; |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2930 id = tempid; |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2931 |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2932 if(tempid > 65500) |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2933 tempid = 60000; |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2934 } |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2935 /* Second pool is larger for more static windows */ |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2936 else if(!id || id >= 30000) |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2937 { |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2938 static ULONG menuid = 30000; |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2939 |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2940 menuid++; |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2941 if(menuid > 60000) |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2942 menuid = 30000; |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2943 id = menuid; |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2944 } |
258c1b9c29f4
GTK4: Implement DW_MENU_AUTO and DW_MENU_POPUP. These weren't necessary on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2325
diff
changeset
|
2945 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2946 snprintf(tempbuf, 100, "menu%d.action%lu", menugroup, id); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2947 actionname = strchr(tempbuf, '.'); |
2317
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
2948 if(check) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
2949 action = g_simple_action_new_stateful(&actionname[1], NULL, g_variant_new_boolean (FALSE)); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
2950 else |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
2951 action = g_simple_action_new(&actionname[1], NULL); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2952 g_action_map_add_action(G_ACTION_MAP(group), G_ACTION(action)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2953 tmphandle=(HWND)g_menu_item_new(temptitle, tempbuf); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2954 snprintf(numbuf, 24, "%lu", id); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2955 g_object_set_data(G_OBJECT(menu), numbuf, (gpointer)tmphandle); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2956 g_object_set_data(G_OBJECT(tmphandle), "_dw_action", (gpointer)action); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2957 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2958 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2959 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2960 if(end) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2961 g_menu_append_item(G_MENU(menumodel), G_MENU_ITEM(tmphandle)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2962 else |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2963 g_menu_prepend_item(G_MENU(menumodel), G_MENU_ITEM(tmphandle)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2964 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2965 g_object_set_data(G_OBJECT(tmphandle), "_dw_id", GINT_TO_POINTER(id)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2966 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2967 if(action) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2968 g_simple_action_set_enabled(action, (flags & DW_MIS_DISABLED) ? FALSE : TRUE); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2969 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
2970 DW_FUNCTION_RETURN_THIS(tmphandle); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2971 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2972 |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2973 GMenuItem *_dw_find_submenu_id(HMENUI start, const char *name) |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2974 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2975 GMenuItem *tmp; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2976 int z, submenucount = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(start), "_dw_submenucount")); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2977 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2978 if((tmp = g_object_get_data(G_OBJECT(start), name))) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2979 return tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2980 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2981 for(z=0;z<submenucount;z++) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2982 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2983 char tempbuf[101] = {0}; |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2984 GMenuItem *menuitem; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2985 HMENUI submenu; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2986 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2987 snprintf(tempbuf, 100, "_dw_submenu%d", z); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2988 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2989 if((submenu = g_object_get_data(G_OBJECT(start), tempbuf))) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2990 { |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2991 if((menuitem = _dw_find_submenu_id(submenu, name))) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2992 return menuitem; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2993 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2994 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2995 return NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2996 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2997 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2998 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2999 * Sets the state of a menu item check. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3000 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3001 * menu: The handle the the existing menu. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3002 * id: Menuitem id. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3003 * check: TRUE for checked FALSE for not checked. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3004 * deprecated: use dw_menu_item_set_state() |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3005 */ |
2317
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3006 DW_FUNCTION_DEFINITION(dw_menu_item_set_check, void, HMENUI menu, ULONG cid, int check) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3007 DW_FUNCTION_ADD_PARAM3(menu, cid, check) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3008 DW_FUNCTION_NO_RETURN(dw_menu_item_set_check) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3009 DW_FUNCTION_RESTORE_PARAM3(menu, HMENUI, cid, ULONG, check, int) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3010 { |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3011 if(menu) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3012 { |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3013 char numbuf[25] = {0}; |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3014 GMenuItem *tmphandle; |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3015 |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3016 snprintf(numbuf, 24, "%lu", cid); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3017 tmphandle = _dw_find_submenu_id(menu, numbuf); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3018 |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3019 if(tmphandle && G_IS_MENU_ITEM(tmphandle)) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3020 { |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3021 GSimpleAction *action = g_object_get_data(G_OBJECT(tmphandle), "_dw_action"); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3022 |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3023 if(action) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3024 { |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3025 GVariant *action_state = g_action_get_state(G_ACTION(action)); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3026 gboolean thischeck = check; |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3027 |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3028 if(!action_state || (g_variant_get_boolean(action_state) != thischeck)) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3029 { |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3030 GVariant *new_state = g_variant_new_boolean(thischeck); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3031 g_simple_action_set_state(action, new_state); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3032 } |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3033 } |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3034 } |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3035 } |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3036 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3037 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3038 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3039 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3040 * Sets the state of a menu item. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3041 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3042 * menu: The handle the the existing menu. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3043 * id: Menuitem id. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3044 * state: TRUE for checked FALSE for not checked. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3045 */ |
2310
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3046 DW_FUNCTION_DEFINITION(dw_menu_item_set_state, void, HMENUI menu, ULONG cid, ULONG state) |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3047 DW_FUNCTION_ADD_PARAM3(menu, cid, state) |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3048 DW_FUNCTION_NO_RETURN(dw_menu_item_set_state) |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3049 DW_FUNCTION_RESTORE_PARAM3(menu, HMENUI, cid, ULONG, state, ULONG) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3050 { |
2310
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3051 if(menu) |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3052 { |
2317
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3053 char numbuf[25] = {0}; |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3054 GMenuItem *tmphandle; |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3055 |
2310
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3056 snprintf(numbuf, 24, "%lu", cid); |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3057 tmphandle = _dw_find_submenu_id(menu, numbuf); |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3058 |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3059 if(tmphandle && G_IS_MENU_ITEM(tmphandle)) |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3060 { |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3061 GSimpleAction *action = g_object_get_data(G_OBJECT(tmphandle), "_dw_action"); |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3062 |
2317
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3063 if(action) |
2310
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3064 { |
2317
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3065 if((state & DW_MIS_CHECKED) || (state & DW_MIS_UNCHECKED)) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3066 { |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3067 GVariant *action_state = g_action_get_state(G_ACTION(action)); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3068 gboolean check = false; |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3069 |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3070 if(state & DW_MIS_CHECKED) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3071 check = true; |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3072 |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3073 if(!action_state || (g_variant_get_boolean(action_state) != check)) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3074 { |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3075 GVariant *new_state = g_variant_new_boolean(check); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3076 g_simple_action_set_state(action, new_state); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3077 } |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3078 } |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3079 if((state & DW_MIS_ENABLED) || (state & DW_MIS_DISABLED)) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3080 { |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3081 if(state & DW_MIS_ENABLED) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3082 g_simple_action_set_enabled(action, TRUE); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3083 else |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3084 g_simple_action_set_enabled(action, FALSE); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
3085 } |
2310
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3086 } |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3087 } |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3088 } |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3089 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3090 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3091 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3092 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3093 * Deletes the menu item specified. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3094 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3095 * menu: The handle to the menu in which the item was appended. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3096 * id: Menuitem id. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3097 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3098 * DW_ERROR_NONE (0) on success or DW_ERROR_UNKNOWN on failure. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3099 */ |
2310
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3100 DW_FUNCTION_DEFINITION(dw_menu_delete_item, int, HMENUI menu, ULONG cid) |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3101 DW_FUNCTION_ADD_PARAM2(menu, cid) |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3102 DW_FUNCTION_RETURN(dw_menu_delete_item, int) |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3103 DW_FUNCTION_RESTORE_PARAM2(menu, HMENUI, cid, ULONG) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3104 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3105 int ret = DW_ERROR_UNKNOWN; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3106 char numbuf[25] = {0}; |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
3107 GMenuItem *tmphandle; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3108 |
2310
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3109 if(menu) |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3110 { |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3111 snprintf(numbuf, 24, "%lu", cid); |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3112 tmphandle = _dw_find_submenu_id(menu, numbuf); |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3113 |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3114 if(tmphandle && G_IS_MENU_ITEM(tmphandle)) |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3115 { |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3116 /* g_menu_remove(menu, position); */ |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3117 g_object_unref(G_OBJECT(tmphandle)); |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3118 g_object_set_data(G_OBJECT(menu), numbuf, NULL); |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3119 ret = DW_ERROR_NONE; |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3120 } |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3121 } |
5df7b1431d1a
GTK4: Moved the rest of the menu functions into thread safety to try to fix
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2309
diff
changeset
|
3122 DW_FUNCTION_RETURN_THIS(ret); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3123 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3124 |
2300
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
3125 /* Delayed unparent of the popup menu from the parent */ |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
3126 gboolean _dw_idle_popover_unparent(gpointer data) |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
3127 { |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
3128 GtkWidget *self = GTK_WIDGET(data); |
2331
addbd7db1e5c
GTK4: If parent passed to dw_menu_popup() is a GtkWindow, add the popup to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2330
diff
changeset
|
3129 GtkWidget *box, *window = g_object_get_data(G_OBJECT(self), "_dw_window"); |
addbd7db1e5c
GTK4: If parent passed to dw_menu_popup() is a GtkWindow, add the popup to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2330
diff
changeset
|
3130 |
addbd7db1e5c
GTK4: If parent passed to dw_menu_popup() is a GtkWindow, add the popup to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2330
diff
changeset
|
3131 if(window && GTK_IS_WINDOW(window) && |
addbd7db1e5c
GTK4: If parent passed to dw_menu_popup() is a GtkWindow, add the popup to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2330
diff
changeset
|
3132 (box = g_object_get_data(G_OBJECT(window), "_dw_grid")) && GTK_IS_GRID(box)) |
addbd7db1e5c
GTK4: If parent passed to dw_menu_popup() is a GtkWindow, add the popup to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2330
diff
changeset
|
3133 gtk_grid_remove(GTK_GRID(box), self); |
addbd7db1e5c
GTK4: If parent passed to dw_menu_popup() is a GtkWindow, add the popup to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2330
diff
changeset
|
3134 else |
addbd7db1e5c
GTK4: If parent passed to dw_menu_popup() is a GtkWindow, add the popup to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2330
diff
changeset
|
3135 gtk_widget_unparent(self); |
2300
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
3136 return false; |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
3137 } |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
3138 |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
3139 void _dw_popover_menu_closed(GtkPopover *self, gpointer data) |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
3140 { |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
3141 GtkWidget *parent = GTK_WIDGET(data); |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
3142 |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
3143 /* Can't unparent immediately, since the "activate" signal happens second... |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
3144 * so we have to delay unparenting until the "activate" handler runs. |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
3145 */ |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
3146 if(GTK_IS_WIDGET(parent) && GTK_IS_POPOVER(self)) |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
3147 g_idle_add(G_SOURCE_FUNC(_dw_idle_popover_unparent), (gpointer)self); |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
3148 } |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
3149 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3150 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3151 * Pops up a context menu at given x and y coordinates. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3152 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3153 * menu: The handle the the existing menu. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3154 * parent: Handle to the window initiating the popup. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3155 * x: X coordinate. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3156 * y: Y coordinate. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3157 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3158 DW_FUNCTION_DEFINITION(dw_menu_popup, void, HMENUI *menu, HWND parent, int x, int y) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3159 DW_FUNCTION_ADD_PARAM4(menu, parent, x, y) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3160 DW_FUNCTION_NO_RETURN(dw_menu_popup) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3161 DW_FUNCTION_RESTORE_PARAM4(menu, HMENUI *, parent, HWND, x, int, y, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3162 { |
2290
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
3163 if(menu && *menu && G_MENU(*menu)) |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
3164 { |
2290
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
3165 GtkWidget *tmp = gtk_popover_menu_new_from_model_full(G_MENU_MODEL(*menu), GTK_POPOVER_MENU_NESTED); |
2302
785775b9002f
GTK4: Use gtk_popover_set_pointing_to() to position the popover instead of
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2301
diff
changeset
|
3166 GdkRectangle rect = { x, y, 1, 1 }; |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
3167 |
2331
addbd7db1e5c
GTK4: If parent passed to dw_menu_popup() is a GtkWindow, add the popup to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2330
diff
changeset
|
3168 if(GTK_IS_WINDOW(parent)) |
addbd7db1e5c
GTK4: If parent passed to dw_menu_popup() is a GtkWindow, add the popup to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2330
diff
changeset
|
3169 { |
addbd7db1e5c
GTK4: If parent passed to dw_menu_popup() is a GtkWindow, add the popup to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2330
diff
changeset
|
3170 GtkWidget *box = g_object_get_data(G_OBJECT(parent), "_dw_grid"); |
addbd7db1e5c
GTK4: If parent passed to dw_menu_popup() is a GtkWindow, add the popup to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2330
diff
changeset
|
3171 |
addbd7db1e5c
GTK4: If parent passed to dw_menu_popup() is a GtkWindow, add the popup to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2330
diff
changeset
|
3172 if(box && GTK_IS_GRID(box)) |
addbd7db1e5c
GTK4: If parent passed to dw_menu_popup() is a GtkWindow, add the popup to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2330
diff
changeset
|
3173 { |
addbd7db1e5c
GTK4: If parent passed to dw_menu_popup() is a GtkWindow, add the popup to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2330
diff
changeset
|
3174 gtk_grid_attach(GTK_GRID(box), tmp, 65535, 65535, 1, 1); |
addbd7db1e5c
GTK4: If parent passed to dw_menu_popup() is a GtkWindow, add the popup to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2330
diff
changeset
|
3175 g_object_set_data(G_OBJECT(tmp), "_dw_window", (gpointer)parent); |
2332
594111e84e89
GTK4: Save pointer to the activate popup menu for a window.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2331
diff
changeset
|
3176 g_object_set_data(G_OBJECT(parent), "_dw_menu_popup", (gpointer)tmp); |
2331
addbd7db1e5c
GTK4: If parent passed to dw_menu_popup() is a GtkWindow, add the popup to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2330
diff
changeset
|
3177 } |
addbd7db1e5c
GTK4: If parent passed to dw_menu_popup() is a GtkWindow, add the popup to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2330
diff
changeset
|
3178 } |
addbd7db1e5c
GTK4: If parent passed to dw_menu_popup() is a GtkWindow, add the popup to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2330
diff
changeset
|
3179 else |
addbd7db1e5c
GTK4: If parent passed to dw_menu_popup() is a GtkWindow, add the popup to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2330
diff
changeset
|
3180 gtk_widget_set_parent(tmp, GTK_WIDGET(parent)); |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
3181 |
2303
cdd8459add40
GTK4: Add code to setup the toplevel menu for popups.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2302
diff
changeset
|
3182 if(!g_object_get_data(G_OBJECT(*menu), "_dw_menuparent")) |
cdd8459add40
GTK4: Add code to setup the toplevel menu for popups.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2302
diff
changeset
|
3183 { |
cdd8459add40
GTK4: Add code to setup the toplevel menu for popups.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2302
diff
changeset
|
3184 int menugroup = DW_POINTER_TO_INT(g_object_get_data(G_OBJECT(*menu), "_dw_menugroup")); |
cdd8459add40
GTK4: Add code to setup the toplevel menu for popups.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2302
diff
changeset
|
3185 GSimpleActionGroup *group = g_object_get_data(G_OBJECT(*menu), "_dw_group"); |
cdd8459add40
GTK4: Add code to setup the toplevel menu for popups.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2302
diff
changeset
|
3186 char tempbuf[25] = {0}; |
cdd8459add40
GTK4: Add code to setup the toplevel menu for popups.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2302
diff
changeset
|
3187 |
cdd8459add40
GTK4: Add code to setup the toplevel menu for popups.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2302
diff
changeset
|
3188 snprintf(tempbuf, 24, "menu%d", menugroup); |
cdd8459add40
GTK4: Add code to setup the toplevel menu for popups.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2302
diff
changeset
|
3189 |
cdd8459add40
GTK4: Add code to setup the toplevel menu for popups.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2302
diff
changeset
|
3190 gtk_widget_insert_action_group(GTK_WIDGET(tmp), tempbuf, G_ACTION_GROUP(group)); |
cdd8459add40
GTK4: Add code to setup the toplevel menu for popups.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2302
diff
changeset
|
3191 g_object_set_data(G_OBJECT(*menu), "_dw_menuparent", (gpointer)tmp); |
cdd8459add40
GTK4: Add code to setup the toplevel menu for popups.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2302
diff
changeset
|
3192 } |
2290
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
3193 _dw_menu_set_group_recursive(*menu, GTK_WIDGET(tmp)); |
2300
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
3194 gtk_popover_set_autohide(GTK_POPOVER(tmp), TRUE); |
2302
785775b9002f
GTK4: Use gtk_popover_set_pointing_to() to position the popover instead of
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2301
diff
changeset
|
3195 gtk_popover_set_has_arrow (GTK_POPOVER(tmp), FALSE); |
785775b9002f
GTK4: Use gtk_popover_set_pointing_to() to position the popover instead of
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2301
diff
changeset
|
3196 gtk_popover_set_pointing_to(GTK_POPOVER(tmp), &rect); |
2300
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
3197 g_signal_connect(G_OBJECT(tmp), "closed", G_CALLBACK(_dw_popover_menu_closed), (gpointer)parent); |
2299
27c20fa1615e
GTK4: Fix a crash while trying to create a popup menu...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2295
diff
changeset
|
3198 gtk_popover_popup(GTK_POPOVER(tmp)); |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
3199 *menu = NULL; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
3200 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3201 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3202 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3203 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3204 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3205 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3206 * Returns the current X and Y coordinates of the mouse pointer. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3207 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3208 * x: Pointer to variable to store X coordinate. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3209 * y: Pointer to variable to store Y coordinate. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3210 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3211 DW_FUNCTION_DEFINITION(dw_pointer_query_pos, void, long *x, long *y) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3212 DW_FUNCTION_ADD_PARAM2(x, y) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3213 DW_FUNCTION_NO_RETURN(dw_pointer_query_pos) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3214 DW_FUNCTION_RESTORE_PARAM2(x, long *, y, long *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3215 { |
2278
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
3216 GdkSeat *seat = gdk_display_get_default_seat(gdk_display_get_default()); |
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
3217 GdkDevice *mouse = gdk_seat_get_pointer(seat); |
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
3218 double dx, dy; |
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
3219 |
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
3220 gdk_device_get_surface_at_position(mouse, &dx, &dy); |
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
3221 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3222 if(x) |
2278
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
3223 *x = (long)dx; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3224 if(y) |
2278
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
3225 *y = (long)dy; |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3226 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3227 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3228 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3229 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3230 * Sets the X and Y coordinates of the mouse pointer. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3231 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3232 * x: X coordinate. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3233 * y: Y coordinate. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3234 */ |
2322
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
3235 #ifndef GDK_WINDOWING_X11 |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
3236 void API dw_pointer_set_pos(long x, long y) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3237 { |
2322
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
3238 } |
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
3239 #else |
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
3240 DW_FUNCTION_DEFINITION(dw_pointer_set_pos, void, long x, long y) |
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
3241 DW_FUNCTION_ADD_PARAM2(x, y) |
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
3242 DW_FUNCTION_NO_RETURN(dw_pointer_set_pos) |
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
3243 DW_FUNCTION_RESTORE_PARAM2(x, long, y, long) |
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
3244 { |
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
3245 GdkDisplay *display = gdk_display_get_default(); |
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
3246 |
2324
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
3247 if(display && GDK_IS_X11_DISPLAY(display)) |
2322
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
3248 { |
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
3249 Display *xdisplay = gdk_x11_display_get_xdisplay(display); |
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
3250 Window xrootwin = gdk_x11_display_get_xrootwindow(display); |
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
3251 |
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
3252 if(xdisplay) |
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
3253 XWarpPointer(xdisplay, None, xrootwin, 0, 0, 0, 0, (int)x, (int)y); |
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
3254 } |
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
3255 DW_FUNCTION_RETURN_NOTHING; |
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
3256 } |
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
3257 #endif |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3258 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3259 #define _DW_TREE_CONTAINER 1 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3260 #define _DW_TREE_TREE 2 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3261 #define _DW_TREE_LISTBOX 3 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3262 |
2287
680212c356e3
GTK4: Refactor tree and fix DW_SIGNAL_ITEM_CONTEXT signals on tree view
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2286
diff
changeset
|
3263 GtkWidget *_dw_tree_create(unsigned long id) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3264 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3265 GtkWidget *tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3266 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3267 tmp = gtk_scrolled_window_new(); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3268 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (tmp), |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3269 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3270 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3271 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3272 gtk_widget_show(tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3273 return tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3274 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3275 |
2287
680212c356e3
GTK4: Refactor tree and fix DW_SIGNAL_ITEM_CONTEXT signals on tree view
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2286
diff
changeset
|
3276 GtkWidget *_dw_tree_view_setup(GtkWidget *tmp, GtkTreeModel *store) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3277 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3278 GtkWidget *tree = gtk_tree_view_new_with_model(store); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3279 gtk_tree_view_set_enable_search(GTK_TREE_VIEW(tree), FALSE); |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3280 gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(tmp), tree); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3281 g_object_set_data(G_OBJECT(tmp), "_dw_user", (gpointer)tree); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3282 return tree; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3283 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3284 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3285 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3286 * Create a container object to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3287 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3288 * id: An ID to be used for getting the resource from the |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3289 * resource file. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3290 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3291 DW_FUNCTION_DEFINITION(dw_container_new, HWND, ULONG cid, int multi) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3292 DW_FUNCTION_ADD_PARAM2(cid, multi) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3293 DW_FUNCTION_RETURN(dw_container_new, HWND) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3294 DW_FUNCTION_RESTORE_PARAM2(cid, ULONG, multi, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3295 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3296 GtkWidget *tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3297 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3298 if((tmp = _dw_tree_create(cid))) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3299 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3300 g_object_set_data(G_OBJECT(tmp), "_dw_tree_type", GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3301 g_object_set_data(G_OBJECT(tmp), "_dw_multi_sel", GINT_TO_POINTER(multi)); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3302 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3303 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3304 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3305 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3306 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3307 * Create a tree object to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3308 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3309 * id: An ID to be used for getting the resource from the |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3310 * resource file. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3311 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3312 DW_FUNCTION_DEFINITION(dw_tree_new, HWND, ULONG cid) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3313 DW_FUNCTION_ADD_PARAM1(cid) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3314 DW_FUNCTION_RETURN(dw_tree_new, HWND) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3315 DW_FUNCTION_RESTORE_PARAM1(cid, ULONG) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3316 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3317 GtkWidget *tmp, *tree; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3318 GtkTreeStore *store; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3319 GtkTreeViewColumn *col; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3320 GtkCellRenderer *rend; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3321 GtkTreeSelection *sel; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3322 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3323 if((tmp = _dw_tree_create(cid))) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3324 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3325 store = gtk_tree_store_new(4, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_POINTER, G_TYPE_POINTER); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3326 tree = _dw_tree_view_setup(tmp, GTK_TREE_MODEL(store)); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3327 g_object_set_data(G_OBJECT(tmp), "_dw_tree_type", GINT_TO_POINTER(_DW_TREE_TYPE_TREE)); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3328 g_object_set_data(G_OBJECT(tree), "_dw_tree_type", GINT_TO_POINTER(_DW_TREE_TYPE_TREE)); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3329 col = gtk_tree_view_column_new(); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3330 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3331 rend = gtk_cell_renderer_pixbuf_new(); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3332 gtk_tree_view_column_pack_start(col, rend, FALSE); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3333 gtk_tree_view_column_add_attribute(col, rend, "pixbuf", 1); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3334 rend = gtk_cell_renderer_text_new(); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3335 gtk_tree_view_column_pack_start(col, rend, TRUE); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3336 gtk_tree_view_column_add_attribute(col, rend, "text", 0); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3337 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3338 gtk_tree_view_append_column(GTK_TREE_VIEW (tree), col); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3339 gtk_tree_view_set_expander_column(GTK_TREE_VIEW(tree), col); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3340 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), FALSE); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3341 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3342 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3343 gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3344 gtk_widget_show(tree); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3345 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3346 if(_DWDefaultFont) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3347 dw_window_set_font(tmp, _DWDefaultFont); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3348 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3349 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3350 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3351 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3352 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3353 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3354 * Create a new static text window (widget) to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3355 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3356 * text: The text to be display by the static text widget. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3357 * id: An ID to be used with dw_window_from_id() or 0L. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3358 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3359 DW_FUNCTION_DEFINITION(dw_text_new, HWND, const char *text, ULONG cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3360 DW_FUNCTION_ADD_PARAM2(text, cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3361 DW_FUNCTION_RETURN(dw_text_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3362 DW_FUNCTION_RESTORE_PARAM2(text, const char *, cid, ULONG) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3363 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3364 GtkWidget *tmp = gtk_label_new(text); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3365 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3366 /* Left and centered */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3367 gtk_label_set_xalign(GTK_LABEL(tmp), 0.0f); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3368 gtk_label_set_yalign(GTK_LABEL(tmp), 0.5f); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3369 gtk_widget_show(tmp); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3370 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3371 if(_DWDefaultFont) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3372 dw_window_set_font(tmp, _DWDefaultFont); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3373 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3374 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3375 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3376 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3377 * Create a new status text window (widget) to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3378 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3379 * text: The text to be display by the static text widget. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3380 * id: An ID to be used with dw_window_from_id() or 0L. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3381 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3382 DW_FUNCTION_DEFINITION(dw_status_text_new, HWND, const char *text, ULONG cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3383 DW_FUNCTION_ADD_PARAM2(text, cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3384 DW_FUNCTION_RETURN(dw_status_text_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3385 DW_FUNCTION_RESTORE_PARAM2(text, const char *, cid, ULONG) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3386 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3387 GtkWidget *tmp, *frame = gtk_frame_new(NULL); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3388 tmp = gtk_label_new(text); |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3389 gtk_frame_set_child(GTK_FRAME(frame), tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3390 gtk_widget_show(tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3391 gtk_widget_show(frame); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3392 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3393 /* Left and centered */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3394 gtk_label_set_xalign(GTK_LABEL(tmp), 0.0f); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3395 gtk_label_set_yalign(GTK_LABEL(tmp), 0.5f); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3396 g_object_set_data(G_OBJECT(frame), "_dw_id", GINT_TO_POINTER(cid)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3397 g_object_set_data(G_OBJECT(frame), "_dw_label", (gpointer)tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3398 if(_DWDefaultFont) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3399 dw_window_set_font(tmp, _DWDefaultFont); |
2306
558959a64772
GTK4: Fix thread safety while using dw_main() and fix an status text issue.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2305
diff
changeset
|
3400 DW_FUNCTION_RETURN_THIS(frame); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3401 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3402 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3403 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3404 * Create a new Multiline Editbox window (widget) to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3405 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3406 * id: An ID to be used with dw_window_from_id() or 0L. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3407 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3408 DW_FUNCTION_DEFINITION(dw_mle_new, HWND, ULONG cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3409 DW_FUNCTION_ADD_PARAM1(cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3410 DW_FUNCTION_RETURN(dw_mle_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3411 DW_FUNCTION_RESTORE_PARAM1(cid, ULONG) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3412 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3413 GtkWidget *tmp, *tmpbox = gtk_scrolled_window_new(); |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3414 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(tmpbox), |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3415 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3416 tmp = gtk_text_view_new(); |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3417 gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(tmpbox), tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3418 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(tmp), GTK_WRAP_WORD); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3419 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3420 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3421 g_object_set_data(G_OBJECT(tmpbox), "_dw_user", (gpointer)tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3422 gtk_widget_show(tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3423 gtk_widget_show(tmpbox); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3424 if(_DWDefaultFont) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3425 dw_window_set_font(tmpbox, _DWDefaultFont); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3426 DW_FUNCTION_RETURN_THIS(tmpbox); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3427 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3428 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3429 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3430 * Create a new Entryfield window (widget) to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3431 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3432 * text: The default text to be in the entryfield widget. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3433 * id: An ID to be used with dw_window_from_id() or 0L. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3434 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3435 DW_FUNCTION_DEFINITION(dw_entryfield_new, HWND, const char *text, ULONG cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3436 DW_FUNCTION_ADD_PARAM2(text, cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3437 DW_FUNCTION_RETURN(dw_entryfield_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3438 DW_FUNCTION_RESTORE_PARAM2(text, const char *, cid, ULONG) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3439 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3440 GtkEntryBuffer *buffer = gtk_entry_buffer_new(text, -1); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3441 GtkWidget *tmp = gtk_entry_new_with_buffer(buffer); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3442 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3443 gtk_widget_show(tmp); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3444 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3445 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3446 if(_DWDefaultFont) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3447 dw_window_set_font(tmp, _DWDefaultFont); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3448 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3449 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3450 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3451 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3452 * Create a new Entryfield (password) window (widget) to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3453 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3454 * text: The default text to be in the entryfield widget. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3455 * id: An ID to be used with dw_window_from_id() or 0L. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3456 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3457 DW_FUNCTION_DEFINITION(dw_entryfield_password_new, HWND, const char *text, ULONG cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3458 DW_FUNCTION_ADD_PARAM2(text, cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3459 DW_FUNCTION_RETURN(dw_entryfield_password_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3460 DW_FUNCTION_RESTORE_PARAM2(text, const char *, cid, ULONG) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3461 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3462 GtkEntryBuffer *buffer = gtk_entry_buffer_new(text, -1); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3463 GtkWidget *tmp = gtk_entry_new_with_buffer(buffer); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3464 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3465 gtk_entry_set_visibility(GTK_ENTRY(tmp), FALSE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3466 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3467 gtk_widget_show(tmp); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3468 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3469 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3470 if(_DWDefaultFont) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3471 dw_window_set_font(tmp, _DWDefaultFont); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3472 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3473 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3474 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3475 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3476 * Create a new Combobox window (widget) to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3477 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3478 * text: The default text to be in the combpbox widget. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3479 * id: An ID to be used with dw_window_from_id() or 0L. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3480 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3481 DW_FUNCTION_DEFINITION(dw_combobox_new, HWND, const char *text, ULONG cid) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3482 DW_FUNCTION_ADD_PARAM2(text, cid) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3483 DW_FUNCTION_RETURN(dw_combobox_new, HWND) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3484 DW_FUNCTION_RESTORE_PARAM2(text, const char *, cid, ULONG) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3485 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3486 GtkWidget *tmp; |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3487 GtkEntryBuffer *buffer; |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3488 GtkListStore *store = gtk_list_store_new(1, G_TYPE_STRING); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3489 tmp = gtk_combo_box_new_with_model_and_entry(GTK_TREE_MODEL(store)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3490 gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(tmp), 0); |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3491 buffer = gtk_entry_get_buffer(GTK_ENTRY(gtk_combo_box_get_child(GTK_COMBO_BOX(tmp)))); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3492 gtk_entry_buffer_set_max_length(buffer, 0); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3493 gtk_entry_buffer_set_text(buffer, text, -1); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3494 gtk_widget_show(tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3495 g_object_set_data(G_OBJECT(tmp), "_dw_tree_type", GINT_TO_POINTER(_DW_TREE_TYPE_COMBOBOX)); |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3496 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3497 if(_DWDefaultFont) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3498 dw_window_set_font(tmp, _DWDefaultFont); |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3499 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3500 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3501 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3502 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3503 * Create a new button window (widget) to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3504 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3505 * text: The text to be display by the static text widget. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3506 * id: An ID to be used with dw_window_from_id() or 0L. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3507 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3508 DW_FUNCTION_DEFINITION(dw_button_new, HWND, const char *text, ULONG cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3509 DW_FUNCTION_ADD_PARAM2(text, cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3510 DW_FUNCTION_RETURN(dw_button_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3511 DW_FUNCTION_RESTORE_PARAM2(text, const char *, cid, ULONG) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3512 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3513 GtkWidget *tmp = gtk_button_new_with_label(text); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3514 gtk_widget_show(tmp); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3515 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3516 if(_DWDefaultFont) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3517 dw_window_set_font(tmp, _DWDefaultFont); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3518 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3519 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3520 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3521 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3522 * Create a new bitmap button window (widget) to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3523 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3524 * text: Bubble help text to be displayed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3525 * id: An ID of a bitmap in the resource file. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3526 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3527 DW_FUNCTION_DEFINITION(dw_bitmapbutton_new, HWND, const char *text, ULONG cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3528 DW_FUNCTION_ADD_PARAM2(text, cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3529 DW_FUNCTION_RETURN(dw_bitmapbutton_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3530 DW_FUNCTION_RESTORE_PARAM2(text, const char *, cid, ULONG) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3531 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3532 GtkWidget *tmp = gtk_button_new(); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3533 GtkWidget *bitmap = dw_bitmap_new(cid); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3534 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3535 if(bitmap) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3536 { |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3537 dw_window_set_bitmap(bitmap, cid, NULL); |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3538 gtk_button_set_child(GTK_BUTTON(tmp), bitmap); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3539 g_object_set_data(G_OBJECT(tmp), "_dw_bitmap", bitmap); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3540 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3541 gtk_widget_show(tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3542 if(text) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3543 gtk_widget_set_tooltip_text(tmp, text); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3544 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3545 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3546 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3547 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3548 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3549 * Create a new bitmap button window (widget) to be packed from a file. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3550 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3551 * label_text: Text to display on button. TBD when Windows works |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3552 * text: Bubble help text to be displayed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3553 * id: An ID to be used with dw_window_from_id() or 0L. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3554 * filename: Name of the file, omit extention to have |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3555 * DW pick the appropriate file extension. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3556 * (BMP on OS/2 or Windows, XPM on Unix) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3557 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3558 DW_FUNCTION_DEFINITION(dw_bitmapbutton_new_from_file, HWND, const char *text, ULONG cid, const char *filename) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3559 DW_FUNCTION_ADD_PARAM3(text, cid, filename) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3560 DW_FUNCTION_RETURN(dw_bitmapbutton_new_from_file, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3561 DW_FUNCTION_RESTORE_PARAM3(text, const char *, cid, ULONG, filename, const char *) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3562 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3563 GtkWidget *tmp = gtk_button_new(); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3564 GtkWidget *bitmap = dw_bitmap_new(cid); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3565 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3566 if(bitmap) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3567 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3568 dw_window_set_bitmap(bitmap, 0, filename); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3569 gtk_button_set_child(GTK_BUTTON(tmp), bitmap); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3570 g_object_set_data(G_OBJECT(tmp), "_dw_bitmap", bitmap); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3571 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3572 gtk_widget_show(tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3573 if(text) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3574 gtk_widget_set_tooltip_text(tmp, text); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3575 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3576 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3577 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3578 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3579 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3580 * Create a new bitmap button window (widget) to be packed from data. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3581 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3582 * text: Bubble help text to be displayed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3583 * id: An ID to be used with dw_window_from_id() or 0L. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3584 * data: Raw data of image. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3585 * (BMP on OS/2 or Windows, XPM on Unix) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3586 * len: Length of raw data |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3587 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3588 DW_FUNCTION_DEFINITION(dw_bitmapbutton_new_from_data, HWND, const char *text, ULONG cid, const char *data, int len) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3589 DW_FUNCTION_ADD_PARAM4(text, cid, data, len) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3590 DW_FUNCTION_RETURN(dw_bitmapbutton_new_from_data, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3591 DW_FUNCTION_RESTORE_PARAM4(text, const char *, cid, ULONG, data, const char *, len, int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3592 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3593 GtkWidget *tmp = gtk_button_new(); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3594 GtkWidget *bitmap = dw_bitmap_new(cid); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3595 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3596 if(bitmap) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3597 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3598 dw_window_set_bitmap_from_data(bitmap, 0, data, len); |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3599 gtk_button_set_child(GTK_BUTTON(tmp), bitmap); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3600 g_object_set_data(G_OBJECT(tmp), "_dw_bitmap", bitmap); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3601 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3602 gtk_widget_show(tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3603 if(text) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3604 gtk_widget_set_tooltip_text(tmp, text); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3605 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3606 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3607 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3608 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3609 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3610 * Create a new spinbutton window (widget) to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3611 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3612 * text: The text to be display by the static text widget. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3613 * id: An ID to be used with dw_window_from_id() or 0L. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3614 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3615 DW_FUNCTION_DEFINITION(dw_spinbutton_new, HWND, const char *text, ULONG cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3616 DW_FUNCTION_ADD_PARAM2(text, cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3617 DW_FUNCTION_RETURN(dw_spinbutton_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3618 DW_FUNCTION_RESTORE_PARAM2(text, const char *, cid, ULONG) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3619 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3620 GtkAdjustment *adj = (GtkAdjustment *)gtk_adjustment_new((float)atoi(text), -65536.0, 65536.0, 1.0, 5.0, 0.0); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3621 GtkWidget *tmp = gtk_spin_button_new(adj, 0, 0); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3622 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3623 gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(tmp), TRUE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3624 gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(tmp), TRUE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3625 gtk_widget_show(tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3626 g_object_set_data(G_OBJECT(tmp), "_dw_adjustment", (gpointer)adj); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3627 g_object_set_data(G_OBJECT(adj), "_dw_spinbutton", (gpointer)tmp); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3628 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3629 if(_DWDefaultFont) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3630 dw_window_set_font(tmp, _DWDefaultFont); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3631 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3632 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3633 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3634 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3635 * Create a new radiobutton window (widget) to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3636 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3637 * text: The text to be display by the static text widget. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3638 * id: An ID to be used with dw_window_from_id() or 0L. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3639 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3640 DW_FUNCTION_DEFINITION(dw_radiobutton_new, HWND, const char *text, ULONG cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3641 DW_FUNCTION_ADD_PARAM2(text, cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3642 DW_FUNCTION_RETURN(dw_radiobutton_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3643 DW_FUNCTION_RESTORE_PARAM2(text, const char *, cid, ULONG) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3644 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3645 GtkWidget *tmp = gtk_toggle_button_new_with_label(text); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3646 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3647 gtk_widget_show(tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3648 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3649 if(_DWDefaultFont) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3650 dw_window_set_font(tmp, _DWDefaultFont); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3651 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3652 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3653 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3654 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3655 * Create a new slider window (widget) to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3656 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3657 * vertical: TRUE or FALSE if slider is vertical. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3658 * increments: Number of increments available. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3659 * id: An ID to be used with dw_window_from_id() or 0L. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3660 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3661 DW_FUNCTION_DEFINITION(dw_slider_new, HWND, int vertical, int increments, ULONG cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3662 DW_FUNCTION_ADD_PARAM3(vertical, increments, cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3663 DW_FUNCTION_RETURN(dw_slider_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3664 DW_FUNCTION_RESTORE_PARAM3(vertical, int, increments, int, cid, ULONG) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3665 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3666 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3667 GtkAdjustment *adjustment = (GtkAdjustment *)gtk_adjustment_new(0, 0, (gfloat)increments, 1, 1, 1); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3668 GtkWidget *tmp = gtk_scale_new(vertical ? GTK_ORIENTATION_VERTICAL : GTK_ORIENTATION_HORIZONTAL, adjustment); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3669 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3670 gtk_widget_show(tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3671 gtk_scale_set_draw_value(GTK_SCALE(tmp), 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3672 gtk_scale_set_digits(GTK_SCALE(tmp), 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3673 g_object_set_data(G_OBJECT(tmp), "_dw_adjustment", (gpointer)adjustment); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3674 g_object_set_data(G_OBJECT(adjustment), "_dw_slider", (gpointer)tmp); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3675 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3676 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3677 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3678 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3679 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3680 * Create a new scrollbar window (widget) to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3681 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3682 * vertical: TRUE or FALSE if scrollbar is vertical. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3683 * increments: Number of increments available. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3684 * id: An ID to be used with dw_window_from_id() or 0L. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3685 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3686 DW_FUNCTION_DEFINITION(dw_scrollbar_new, HWND, int vertical, ULONG cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3687 DW_FUNCTION_ADD_PARAM2(vertical, cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3688 DW_FUNCTION_RETURN(dw_scrollbar_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3689 DW_FUNCTION_RESTORE_PARAM2(vertical, int, cid, ULONG) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3690 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3691 GtkAdjustment *adjustment = (GtkAdjustment *)gtk_adjustment_new(0, 0, 0, 1, 1, 1); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3692 GtkWidget *tmp = gtk_scrollbar_new(vertical ? GTK_ORIENTATION_VERTICAL : GTK_ORIENTATION_HORIZONTAL, adjustment); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3693 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3694 gtk_widget_set_can_focus(tmp, FALSE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3695 gtk_widget_show(tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3696 g_object_set_data(G_OBJECT(tmp), "_dw_adjustment", (gpointer)adjustment); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3697 g_object_set_data(G_OBJECT(adjustment), "_dw_scrollbar", (gpointer)tmp); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3698 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3699 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3700 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3701 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3702 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3703 * Create a new percent bar window (widget) to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3704 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3705 * id: An ID to be used with dw_window_from_id() or 0L. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3706 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3707 DW_FUNCTION_DEFINITION(dw_percent_new, HWND, ULONG cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3708 DW_FUNCTION_ADD_PARAM1(cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3709 DW_FUNCTION_RETURN(dw_percent_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3710 DW_FUNCTION_RESTORE_PARAM1(cid, ULONG) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3711 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3712 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3713 GtkWidget *tmp = gtk_progress_bar_new(); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3714 gtk_widget_show(tmp); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3715 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3716 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3717 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3718 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3719 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3720 * Create a new checkbox window (widget) to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3721 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3722 * text: The text to be display by the static text widget. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3723 * id: An ID to be used with dw_window_from_id() or 0L. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3724 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3725 DW_FUNCTION_DEFINITION(dw_checkbox_new, HWND, const char *text, ULONG cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3726 DW_FUNCTION_ADD_PARAM2(text, cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3727 DW_FUNCTION_RETURN(dw_checkbox_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3728 DW_FUNCTION_RESTORE_PARAM2(text, const char *, cid, ULONG) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3729 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3730 GtkWidget *tmp = gtk_check_button_new_with_label(text); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3731 gtk_widget_show(tmp); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3732 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3733 if(_DWDefaultFont) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3734 dw_window_set_font(tmp, _DWDefaultFont); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3735 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3736 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3737 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3738 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3739 * Create a new listbox window (widget) to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3740 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3741 * id: An ID to be used with dw_window_from_id() or 0L. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3742 * multi: Multiple select TRUE or FALSE. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3743 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3744 DW_FUNCTION_DEFINITION(dw_listbox_new, HWND, ULONG cid, int multi) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3745 DW_FUNCTION_ADD_PARAM2(cid, multi) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3746 DW_FUNCTION_RETURN(dw_listbox_new, HWND) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3747 DW_FUNCTION_RESTORE_PARAM2(cid, ULONG, multi, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3748 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3749 GtkWidget *tmp, *tree; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3750 GtkListStore *store; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3751 GtkTreeViewColumn *col; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3752 GtkCellRenderer *rend; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3753 GtkTreeSelection *sel; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3754 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3755 if((tmp = _dw_tree_create(cid))) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3756 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3757 store = gtk_list_store_new(1, G_TYPE_STRING); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3758 tree = _dw_tree_view_setup(tmp, GTK_TREE_MODEL(store)); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3759 g_object_set_data(G_OBJECT(tmp), "_dw_tree_type", GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3760 g_object_set_data(G_OBJECT(tree), "_dw_tree_type", GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3761 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3762 col = gtk_tree_view_column_new(); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3763 rend = gtk_cell_renderer_text_new(); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3764 gtk_tree_view_column_pack_start(col, rend, TRUE); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3765 gtk_tree_view_column_add_attribute(col, rend, "text", 0); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3766 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3767 gtk_tree_view_append_column(GTK_TREE_VIEW (tree), col); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3768 gtk_tree_view_set_expander_column(GTK_TREE_VIEW(tree), col); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3769 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), FALSE); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3770 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3771 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3772 if(multi) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3773 gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3774 else |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3775 gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3776 gtk_widget_show(tree); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3777 if(_DWDefaultFont) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3778 dw_window_set_font(tmp, _DWDefaultFont); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3779 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
3780 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3781 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3782 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3783 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3784 * Sets the icon used for a given window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3785 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3786 * handle: Handle to the window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3787 * id: An ID to be used to specify the icon. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3788 */ |
2319
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3789 DW_FUNCTION_DEFINITION(dw_window_set_icon, void, HWND handle, HICN icon) |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3790 DW_FUNCTION_ADD_PARAM2(handle, icon) |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3791 DW_FUNCTION_NO_RETURN(dw_window_set_icon) |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3792 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, icon, HICN) |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3793 { |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3794 if(handle && GTK_IS_WINDOW(handle)) |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3795 { |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3796 int rid = GPOINTER_TO_INT(icon); |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3797 |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3798 if(rid < 65536) |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3799 { |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3800 GdkDisplay *display = gdk_display_get_default(); |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3801 GtkIconTheme *theme = gtk_icon_theme_get_for_display(display); |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3802 |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3803 if(theme) |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3804 { |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3805 char resource_path[201] = {0}; |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3806 char window_icon[25] = {0}; |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3807 |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3808 snprintf(resource_path, 200, "%s%u.png", _DW_RESOURCE_PATH, rid); |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3809 gtk_icon_theme_add_resource_path(theme, _DW_RESOURCE_PATH); |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3810 snprintf(window_icon, 24, "%u", rid); |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3811 gtk_window_set_icon_name(GTK_WINDOW(handle), window_icon); |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3812 } |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3813 } |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3814 } |
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
3815 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3816 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3817 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3818 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3819 * Sets the bitmap used for a given static window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3820 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3821 * handle: Handle to the window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3822 * id: An ID to be used to specify the icon, |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3823 * (pass 0 if you use the filename param) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3824 * filename: a path to a file (Bitmap on OS/2 or |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3825 * Windows and a pixmap on Unix, pass |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3826 * NULL if you use the id param) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3827 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3828 DW_FUNCTION_DEFINITION(dw_window_set_bitmap, void, HWND handle, unsigned long id, const char *filename) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3829 DW_FUNCTION_ADD_PARAM3(handle, id, filename) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3830 DW_FUNCTION_NO_RETURN(dw_window_set_bitmap) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3831 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, id, ULONG, filename, const char *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3832 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3833 GdkPixbuf *tmp = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3834 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3835 if(id) |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
3836 tmp = _dw_find_pixbuf((HICN)id, NULL, NULL); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3837 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3838 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3839 char *file = alloca(strlen(filename) + 6); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3840 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3841 strcpy(file, filename); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3842 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3843 /* check if we can read from this file (it exists and read permission) */ |
2282
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3844 if(access(file, 04) != 0) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3845 { |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
3846 int i = 0; |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
3847 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3848 /* Try with various extentions */ |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
3849 while(_dw_image_exts[i] && !tmp) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3850 { |
2282
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3851 strcpy(file, filename); |
2312
ada8f7610df0
GTK4: Fix building with -D_DW_SINGLE_THREADED and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2311
diff
changeset
|
3852 strcat(file, _dw_image_exts[i]); |
2282
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3853 if(access(file, 04) == 0) |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
3854 tmp = gdk_pixbuf_new_from_file(file, NULL); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
3855 i++; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3856 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3857 } |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
3858 else |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3859 tmp = gdk_pixbuf_new_from_file(file, NULL); |
2282
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3860 } |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3861 |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3862 if(tmp) |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3863 { |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3864 if(GTK_IS_BUTTON(handle)) |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3865 { |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3866 GtkWidget *pixmap = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_bitmap"); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3867 if(pixmap) |
2366
b3efaae95735
GTK4: Apparenlty on GTK4 GtkImage is used for icons, switch to GtkPicture.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2365
diff
changeset
|
3868 gtk_picture_set_pixbuf(GTK_PICTURE(pixmap), tmp); |
b3efaae95735
GTK4: Apparenlty on GTK4 GtkImage is used for icons, switch to GtkPicture.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2365
diff
changeset
|
3869 } |
b3efaae95735
GTK4: Apparenlty on GTK4 GtkImage is used for icons, switch to GtkPicture.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2365
diff
changeset
|
3870 else if(GTK_IS_PICTURE(handle)) |
b3efaae95735
GTK4: Apparenlty on GTK4 GtkImage is used for icons, switch to GtkPicture.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2365
diff
changeset
|
3871 gtk_picture_set_pixbuf(GTK_PICTURE(handle), tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3872 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3873 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3874 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3875 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3876 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3877 * Sets the bitmap used for a given static window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3878 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3879 * handle: Handle to the window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3880 * id: An ID to be used to specify the icon, |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3881 * (pass 0 if you use the filename param) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3882 * data: the image data |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3883 * Bitmap on Windows and a pixmap on Unix, pass |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3884 * NULL if you use the id param) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3885 * len: length of data |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3886 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3887 DW_FUNCTION_DEFINITION(dw_window_set_bitmap_from_data, void, HWND handle, unsigned long id, const char *data, int len) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3888 DW_FUNCTION_ADD_PARAM4(handle, id, data, len) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3889 DW_FUNCTION_NO_RETURN(dw_window_set_bitmap_from_data) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3890 DW_FUNCTION_RESTORE_PARAM4(handle, HWND, id, ULONG, data, const char *, len, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3891 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3892 GdkPixbuf *tmp = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3893 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3894 if(data) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3895 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3896 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3897 * A real hack; create a temporary file and write the contents |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3898 * of the data to the file |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3899 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3900 char template[] = "/tmp/dwpixmapXXXXXX"; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3901 int written = -1, fd = mkstemp(template); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3902 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3903 if(fd != -1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3904 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3905 written = write(fd, data, len); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3906 close(fd); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3907 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3908 /* Bail if we couldn't write full file */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3909 if(fd != -1 && written == len) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3910 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3911 tmp = gdk_pixbuf_new_from_file(template, NULL); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3912 /* remove our temporary file */ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3913 unlink(template); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3914 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3915 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3916 else if (id) |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
3917 tmp = _dw_find_pixbuf((HICN)id, NULL, NULL); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3918 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3919 if(tmp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3920 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3921 if(GTK_IS_BUTTON(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3922 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3923 GtkWidget *pixmap = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_bitmap"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3924 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3925 if(pixmap) |
2366
b3efaae95735
GTK4: Apparenlty on GTK4 GtkImage is used for icons, switch to GtkPicture.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2365
diff
changeset
|
3926 gtk_picture_set_pixbuf(GTK_PICTURE(pixmap), tmp); |
b3efaae95735
GTK4: Apparenlty on GTK4 GtkImage is used for icons, switch to GtkPicture.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2365
diff
changeset
|
3927 } |
b3efaae95735
GTK4: Apparenlty on GTK4 GtkImage is used for icons, switch to GtkPicture.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2365
diff
changeset
|
3928 else if(GTK_IS_PICTURE(handle)) |
b3efaae95735
GTK4: Apparenlty on GTK4 GtkImage is used for icons, switch to GtkPicture.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2365
diff
changeset
|
3929 gtk_picture_set_pixbuf(GTK_PICTURE(handle), tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3930 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3931 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3932 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3933 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3934 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3935 * Sets the text used for a given window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3936 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3937 * handle: Handle to the window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3938 * text: The text associated with a given window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3939 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3940 DW_FUNCTION_DEFINITION(dw_window_set_text, void, HWND handle, const char *text) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3941 DW_FUNCTION_ADD_PARAM2(handle, text) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3942 DW_FUNCTION_NO_RETURN(dw_window_set_text) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3943 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, text, char *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3944 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3945 if(GTK_IS_ENTRY(handle)) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3946 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3947 GtkEntryBuffer *buffer = gtk_entry_get_buffer(GTK_ENTRY(handle)); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3948 if(buffer) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3949 gtk_entry_buffer_set_text(buffer, text, -1); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3950 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3951 else if(GTK_IS_COMBO_BOX(handle)) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3952 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3953 GtkWidget *entry = gtk_combo_box_get_child(GTK_COMBO_BOX(handle)); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3954 GtkEntryBuffer *buffer = gtk_entry_get_buffer(GTK_ENTRY(entry)); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3955 if(buffer) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3956 gtk_entry_buffer_set_text(buffer, text, -1); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3957 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3958 else if(GTK_IS_LABEL(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3959 gtk_label_set_text(GTK_LABEL(handle), text); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3960 else if(GTK_IS_BUTTON(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3961 gtk_button_set_label(GTK_BUTTON(handle), text); |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3962 else if(GTK_IS_WINDOW(handle)) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3963 gtk_window_set_title(GTK_WINDOW(handle), text); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3964 else if (GTK_IS_FRAME(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3965 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3966 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3967 * This is a groupbox or status_text |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3968 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3969 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_label"); |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3970 if (tmp && GTK_IS_LABEL(tmp)) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3971 gtk_label_set_text(GTK_LABEL(tmp), text); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3972 else /* assume groupbox */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3973 gtk_frame_set_label(GTK_FRAME(handle), text && *text ? text : NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3974 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3975 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3976 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3977 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3978 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3979 * Sets the text used for a given window's floating bubble help. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3980 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3981 * handle: Handle to the window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3982 * bubbletext: The text in the floating bubble tooltip. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3983 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3984 DW_FUNCTION_DEFINITION(dw_window_set_tooltip, void, HWND handle, const char *bubbletext) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3985 DW_FUNCTION_ADD_PARAM2(handle, bubbletext) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3986 DW_FUNCTION_NO_RETURN(dw_window_set_tooltip) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3987 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, bubbletext, char *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3988 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3989 if(bubbletext && *bubbletext) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3990 gtk_widget_set_tooltip_text(handle, bubbletext); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3991 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3992 gtk_widget_set_has_tooltip(handle, FALSE); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
3993 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3994 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3995 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3996 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3997 * Gets the text used for a given window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3998 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3999 * handle: Handle to the window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4000 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4001 * text: The text associsated with a given window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4002 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4003 DW_FUNCTION_DEFINITION(dw_window_get_text, char *, HWND handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4004 DW_FUNCTION_ADD_PARAM1(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4005 DW_FUNCTION_RETURN(dw_window_get_text, char *) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4006 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4007 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4008 const char *possible = NULL; |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4009 char *retval = NULL; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4010 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4011 if(GTK_IS_ENTRY(handle)) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
4012 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
4013 GtkEntryBuffer *buffer = gtk_entry_get_buffer(GTK_ENTRY(handle)); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
4014 possible = gtk_entry_buffer_get_text(buffer); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
4015 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4016 else if(GTK_IS_COMBO_BOX(handle)) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
4017 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
4018 GtkWidget *entry = gtk_combo_box_get_child(GTK_COMBO_BOX(handle)); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
4019 GtkEntryBuffer *buffer = gtk_entry_get_buffer(GTK_ENTRY(entry)); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
4020 possible = gtk_entry_buffer_get_text(buffer); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
4021 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4022 else if(GTK_IS_LABEL(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4023 possible = gtk_label_get_text(GTK_LABEL(handle)); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4024 retval = strdup(possible ? possible : ""); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4025 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4026 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4027 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4028 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4029 * Disables given window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4030 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4031 * handle: Handle to the window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4032 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4033 DW_FUNCTION_DEFINITION(dw_window_disable, void, HWND handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4034 DW_FUNCTION_ADD_PARAM1(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4035 DW_FUNCTION_NO_RETURN(dw_window_disable) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4036 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4037 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4038 gtk_widget_set_sensitive(handle, FALSE); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4039 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4040 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4041 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4042 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4043 * Enables given window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4044 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4045 * handle: Handle to the window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4046 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4047 DW_FUNCTION_DEFINITION(dw_window_enable, void, HWND handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4048 DW_FUNCTION_ADD_PARAM1(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4049 DW_FUNCTION_NO_RETURN(dw_window_enable) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4050 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4051 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4052 gtk_widget_set_sensitive(handle, TRUE); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4053 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4054 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4055 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4056 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4057 * Gets the child window handle with specified ID. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4058 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4059 * handle: Handle to the parent window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4060 * id: Integer ID of the child. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4061 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4062 DW_FUNCTION_DEFINITION(dw_window_from_id, HWND, HWND handle, int id) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4063 DW_FUNCTION_ADD_PARAM2(handle, id) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4064 DW_FUNCTION_RETURN(dw_window_from_id, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4065 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, id, int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4066 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4067 GtkWidget *retval = NULL; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4068 |
2275
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
4069 if(handle && GTK_WIDGET(handle) && id) |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
4070 { |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
4071 GtkWidget *widget = gtk_widget_get_first_child(GTK_WIDGET(handle)); |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
4072 |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
4073 while(widget) |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
4074 { |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
4075 if(id == GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "_dw_id"))) |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4076 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4077 retval = widget; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4078 widget = NULL; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4079 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4080 else |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4081 widget = gtk_widget_get_next_sibling(GTK_WIDGET(widget)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4082 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4083 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4084 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4085 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4086 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4087 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4088 * Adds text to an MLE box and returns the current point. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4089 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4090 * handle: Handle to the MLE to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4091 * buffer: Text buffer to be imported. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4092 * startpoint: Point to start entering text. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4093 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4094 DW_FUNCTION_DEFINITION(dw_mle_import, unsigned int, HWND handle, const char *buffer, int startpoint) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4095 DW_FUNCTION_ADD_PARAM3(handle, buffer, startpoint) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4096 DW_FUNCTION_RETURN(dw_mle_import, unsigned int) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4097 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, buffer, const char *, startpoint, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4098 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4099 unsigned int tmppoint = startpoint; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4100 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4101 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4102 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4103 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4104 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4105 if(tmp && GTK_IS_TEXT_VIEW(tmp)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4106 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4107 GtkTextBuffer *tbuffer; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4108 GtkTextIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4109 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4110 tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tmp)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4111 gtk_text_buffer_get_iter_at_offset(tbuffer, &iter, startpoint); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4112 gtk_text_buffer_place_cursor(tbuffer, &iter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4113 gtk_text_buffer_insert_at_cursor(tbuffer, buffer, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4114 tmppoint = (startpoint > -1 ? startpoint : 0) + strlen(buffer); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4115 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4116 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4117 DW_FUNCTION_RETURN_THIS(tmppoint); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4118 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4119 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4120 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4121 * Grabs text from an MLE box. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4122 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4123 * handle: Handle to the MLE to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4124 * buffer: Text buffer to be exported. MUST allow for trailing nul character. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4125 * startpoint: Point to start grabbing text. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4126 * length: Amount of text to be grabbed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4127 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4128 DW_FUNCTION_DEFINITION(dw_mle_export, void, HWND handle, char *buffer, int startpoint, int length) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4129 DW_FUNCTION_ADD_PARAM4(handle, buffer, startpoint, length) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4130 DW_FUNCTION_NO_RETURN(dw_mle_export) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4131 DW_FUNCTION_RESTORE_PARAM4(handle, HWND, buffer, char *, startpoint, int, length, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4132 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4133 gchar *text; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4134 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4135 /* force the return value to nul in case the following tests fail */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4136 if(buffer) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4137 buffer[0] = '\0'; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4138 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4139 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4140 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4141 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4142 if(tmp && GTK_IS_TEXT_VIEW(tmp)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4143 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4144 GtkTextBuffer *tbuffer; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4145 GtkTextIter start, end; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4146 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4147 tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tmp)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4148 gtk_text_buffer_get_iter_at_offset(tbuffer, &start, startpoint); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4149 gtk_text_buffer_get_iter_at_offset(tbuffer, &end, startpoint + length); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4150 text = gtk_text_iter_get_text(&start, &end); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4151 if(text) /* Should this get freed? */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4152 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4153 if(buffer) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4154 strcpy(buffer, text); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4155 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4156 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4157 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4158 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4159 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4160 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4161 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4162 * Obtains information about an MLE box. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4163 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4164 * handle: Handle to the MLE to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4165 * bytes: A pointer to a variable to return the total bytes. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4166 * lines: A pointer to a variable to return the number of lines. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4167 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4168 DW_FUNCTION_DEFINITION(dw_mle_get_size, void, HWND handle, unsigned long *bytes, unsigned long *lines) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4169 DW_FUNCTION_ADD_PARAM3(handle, bytes, lines) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4170 DW_FUNCTION_NO_RETURN(dw_mle_get_size) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4171 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, bytes, unsigned long *, lines, unsigned long *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4172 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4173 if(bytes) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4174 *bytes = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4175 if(lines) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4176 *lines = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4177 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4178 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4179 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4180 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4181 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4182 if(tmp && GTK_IS_TEXT_VIEW(tmp)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4183 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4184 GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(tmp)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4185 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4186 if(bytes) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4187 *bytes = gtk_text_buffer_get_char_count(buffer); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4188 if(lines) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4189 *lines = gtk_text_buffer_get_line_count(buffer); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4190 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4191 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4192 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4193 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4194 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4195 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4196 * Deletes text from an MLE box. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4197 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4198 * handle: Handle to the MLE to be deleted from. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4199 * startpoint: Point to start deleting text. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4200 * length: Amount of text to be deleted. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4201 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4202 DW_FUNCTION_DEFINITION(dw_mle_delete, void, HWND handle, int startpoint, int length) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4203 DW_FUNCTION_ADD_PARAM3(handle, startpoint, length) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4204 DW_FUNCTION_NO_RETURN(dw_mle_delete) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4205 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, startpoint, int, length, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4206 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4207 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4208 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4209 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4210 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4211 if(tmp && GTK_IS_TEXT_VIEW(tmp)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4212 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4213 GtkTextBuffer *tbuffer; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4214 GtkTextIter start, end; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4215 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4216 tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tmp)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4217 gtk_text_buffer_get_iter_at_offset(tbuffer, &start, startpoint); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4218 gtk_text_buffer_get_iter_at_offset(tbuffer, &end, startpoint + length); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4219 gtk_text_buffer_delete(tbuffer, &start, &end); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4220 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4221 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4222 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4223 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4224 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4225 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4226 * Clears all text from an MLE box. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4227 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4228 * handle: Handle to the MLE to be cleared. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4229 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4230 DW_FUNCTION_DEFINITION(dw_mle_clear, void, HWND handle) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4231 DW_FUNCTION_ADD_PARAM1(handle) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4232 DW_FUNCTION_NO_RETURN(dw_mle_clear) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4233 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4234 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4235 int length; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4236 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4237 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4238 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4239 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4240 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4241 if(tmp && GTK_IS_TEXT_VIEW(tmp)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4242 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4243 GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(tmp)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4244 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4245 length = -1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4246 gtk_text_buffer_set_text(buffer, "", length); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4247 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4248 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4249 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4250 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4251 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4252 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4253 * Sets the visible line of an MLE box. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4254 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4255 * handle: Handle to the MLE. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4256 * line: Line to be visible. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4257 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4258 DW_FUNCTION_DEFINITION(dw_mle_set_visible, void, HWND handle, int line) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4259 DW_FUNCTION_ADD_PARAM2(handle, line) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4260 DW_FUNCTION_NO_RETURN(dw_mle_set_visible) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4261 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, line, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4262 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4263 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4264 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4265 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4266 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4267 if(tmp && GTK_IS_TEXT_VIEW(tmp)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4268 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4269 GtkTextBuffer *tbuffer; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4270 GtkTextIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4271 GtkTextMark *mark = (GtkTextMark *)g_object_get_data(G_OBJECT(handle), "_dw_mark"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4272 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4273 tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tmp)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4274 gtk_text_buffer_get_iter_at_offset(tbuffer, &iter, 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4275 gtk_text_iter_set_line(&iter, line); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4276 if(!mark) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4277 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4278 mark = gtk_text_buffer_create_mark(tbuffer, NULL, &iter, FALSE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4279 g_object_set_data(G_OBJECT(handle), "_dw_mark", (gpointer)mark); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4280 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4281 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4282 gtk_text_buffer_move_mark(tbuffer, mark, &iter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4283 gtk_text_view_scroll_to_mark(GTK_TEXT_VIEW(tmp), mark, |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4284 0, FALSE, 0, 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4285 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4286 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4287 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4288 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4289 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4290 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4291 * Sets the editablity of an MLE box. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4292 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4293 * handle: Handle to the MLE. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4294 * state: TRUE if it can be edited, FALSE for readonly. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4295 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4296 DW_FUNCTION_DEFINITION(dw_mle_set_editable, void, HWND handle, int state) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4297 DW_FUNCTION_ADD_PARAM2(handle, state) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4298 DW_FUNCTION_NO_RETURN(dw_mle_set_editable) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4299 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, state, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4300 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4301 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4302 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4303 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4304 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4305 if(tmp && GTK_IS_TEXT_VIEW(tmp)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4306 gtk_text_view_set_editable(GTK_TEXT_VIEW(tmp), state); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4307 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4308 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4309 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4310 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4311 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4312 * Sets the word wrap state of an MLE box. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4313 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4314 * handle: Handle to the MLE. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4315 * state: TRUE if it wraps, FALSE if it doesn't. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4316 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4317 DW_FUNCTION_DEFINITION(dw_mle_set_word_wrap, void, HWND handle, int state) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4318 DW_FUNCTION_ADD_PARAM2(handle, state) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4319 DW_FUNCTION_NO_RETURN(dw_mle_set_word_wrap) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4320 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, state, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4321 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4322 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4323 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4324 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4325 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4326 if(tmp && GTK_IS_TEXT_VIEW(tmp)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4327 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(tmp), state ? GTK_WRAP_WORD : GTK_WRAP_NONE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4328 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4329 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4330 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4331 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4332 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4333 * Sets the word auto complete state of an MLE box. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4334 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4335 * handle: Handle to the MLE. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4336 * state: Bitwise combination of DW_MLE_COMPLETE_TEXT/DASH/QUOTE |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4337 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
4338 void API dw_mle_set_auto_complete(HWND handle, int state) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4339 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4340 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4341 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4342 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4343 * Sets the current cursor position of an MLE box. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4344 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4345 * handle: Handle to the MLE to be positioned. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4346 * point: Point to position cursor. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4347 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4348 DW_FUNCTION_DEFINITION(dw_mle_set_cursor, void, HWND handle, int point) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4349 DW_FUNCTION_ADD_PARAM2(handle, point) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4350 DW_FUNCTION_NO_RETURN(dw_mle_set_cursor) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4351 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, point, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4352 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4353 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4354 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4355 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4356 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4357 if(tmp && GTK_IS_TEXT_VIEW(tmp)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4358 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4359 GtkTextBuffer *tbuffer; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4360 GtkTextIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4361 GtkTextMark *mark = (GtkTextMark *)g_object_get_data(G_OBJECT(handle), "_dw_mark"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4362 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4363 tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tmp)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4364 gtk_text_buffer_get_iter_at_offset(tbuffer, &iter, point); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4365 if(!mark) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4366 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4367 mark = gtk_text_buffer_create_mark(tbuffer, NULL, &iter, FALSE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4368 g_object_set_data(G_OBJECT(handle), "_dw_mark", (gpointer)mark); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4369 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4370 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4371 gtk_text_buffer_move_mark(tbuffer, mark, &iter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4372 gtk_text_buffer_place_cursor(tbuffer, &iter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4373 gtk_text_view_scroll_to_mark(GTK_TEXT_VIEW(tmp), mark, |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4374 0, FALSE, 0, 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4375 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4376 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4377 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4378 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4379 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4380 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4381 * Finds text in an MLE box. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4382 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4383 * handle: Handle to the MLE to be cleared. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4384 * text: Text to search for. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4385 * point: Start point of search. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4386 * flags: Search specific flags. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4387 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4388 DW_FUNCTION_DEFINITION(dw_mle_search, int, HWND handle, const char *text, int point, DW_UNUSED(unsigned long flags)) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4389 DW_FUNCTION_ADD_PARAM4(handle, text, point, flags) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4390 DW_FUNCTION_RETURN(dw_mle_search, int) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4391 DW_FUNCTION_RESTORE_PARAM4(handle, HWND, text, const char *, point, int, DW_UNUSED(flags), unsigned long) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4392 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4393 int retval = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4394 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4395 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4396 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4397 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4398 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4399 if(tmp && GTK_IS_TEXT_VIEW(tmp)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4400 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4401 GtkTextBuffer *tbuffer; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4402 GtkTextIter iter, found; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4403 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4404 tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tmp)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4405 gtk_text_buffer_get_iter_at_offset(tbuffer, &iter, point); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4406 gtk_text_iter_forward_search(&iter, text, GTK_TEXT_SEARCH_TEXT_ONLY, &found, NULL, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4407 retval = gtk_text_iter_get_offset(&found); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4408 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4409 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4410 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4411 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4412 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4413 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4414 * Stops redrawing of an MLE box. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4415 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4416 * handle: Handle to the MLE to freeze. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4417 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
4418 void API dw_mle_freeze(HWND handle) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4419 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4420 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4421 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4422 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4423 * Resumes redrawing of an MLE box. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4424 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4425 * handle: Handle to the MLE to thaw. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4426 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
4427 void API dw_mle_thaw(HWND handle) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4428 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4429 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4430 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4431 /* Internal function to update the progress bar |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4432 * while in an indeterminate state. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4433 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4434 gboolean _dw_update_progress_bar(gpointer data) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4435 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4436 if(g_object_get_data(G_OBJECT(data), "_dw_alive")) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4437 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4438 gtk_progress_bar_pulse(GTK_PROGRESS_BAR(data)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4439 return TRUE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4440 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4441 return FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4442 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4443 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4444 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4445 * Sets the percent bar position. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4446 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4447 * handle: Handle to the percent bar to be set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4448 * position: Position of the percent bar withing the range. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4449 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4450 DW_FUNCTION_DEFINITION(dw_percent_set_pos, void, HWND handle, unsigned int position) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4451 DW_FUNCTION_ADD_PARAM2(handle, position) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4452 DW_FUNCTION_NO_RETURN(dw_percent_set_pos) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4453 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, position, unsigned int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4454 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4455 if(position == DW_PERCENT_INDETERMINATE) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4456 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4457 /* Check if we are indeterminate already */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4458 if(!g_object_get_data(G_OBJECT(handle), "_dw_alive")) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4459 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4460 /* If not become indeterminate... and start a timer to continue */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4461 gtk_progress_bar_pulse(GTK_PROGRESS_BAR(handle)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4462 g_object_set_data(G_OBJECT(handle), "_dw_alive", GINT_TO_POINTER(1)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4463 g_timeout_add(100, (GSourceFunc)_dw_update_progress_bar, (gpointer)handle); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4464 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4465 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4466 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4467 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4468 /* Cancel the existing timer if one is there */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4469 g_object_set_data(G_OBJECT(handle), "_dw_alive", NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4470 /* Set the position like normal */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4471 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(handle), (gfloat)position/100); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4472 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4473 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4474 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4475 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4476 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4477 * Returns the position of the slider. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4478 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4479 * handle: Handle to the slider to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4480 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4481 DW_FUNCTION_DEFINITION(dw_slider_get_pos, unsigned int, HWND handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4482 DW_FUNCTION_ADD_PARAM1(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4483 DW_FUNCTION_RETURN(dw_slider_get_pos, unsigned int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4484 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4485 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4486 int val = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4487 GtkAdjustment *adjustment; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4488 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4489 if(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4490 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4491 adjustment = (GtkAdjustment *)g_object_get_data(G_OBJECT(handle), "_dw_adjustment"); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4492 if(adjustment) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4493 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4494 int max = _dw_round_value(gtk_adjustment_get_upper(adjustment)) - 1; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4495 int thisval = _dw_round_value(gtk_adjustment_get_value(adjustment)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4496 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4497 if(gtk_orientable_get_orientation(GTK_ORIENTABLE(handle)) == GTK_ORIENTATION_VERTICAL) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4498 val = max - thisval; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4499 else |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4500 val = thisval; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4501 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4502 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4503 DW_FUNCTION_RETURN_THIS(val); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4504 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4505 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4506 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4507 * Sets the slider position. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4508 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4509 * handle: Handle to the slider to be set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4510 * position: Position of the slider withing the range. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4511 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4512 DW_FUNCTION_DEFINITION(dw_slider_set_pos, void, HWND handle, unsigned int position) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4513 DW_FUNCTION_ADD_PARAM2(handle, position) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4514 DW_FUNCTION_NO_RETURN(dw_slider_set_pos) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4515 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, position, unsigned int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4516 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4517 GtkAdjustment *adjustment; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4518 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4519 if(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4520 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4521 adjustment = (GtkAdjustment *)g_object_get_data(G_OBJECT(handle), "_dw_adjustment"); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4522 if(adjustment) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4523 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4524 int max = _dw_round_value(gtk_adjustment_get_upper(adjustment)) - 1; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4525 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4526 if(gtk_orientable_get_orientation(GTK_ORIENTABLE(handle)) == GTK_ORIENTATION_VERTICAL) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4527 gtk_adjustment_set_value(adjustment, (gfloat)(max - position)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4528 else |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4529 gtk_adjustment_set_value(adjustment, (gfloat)position); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4530 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4531 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4532 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4533 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4534 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4535 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4536 * Returns the position of the scrollbar. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4537 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4538 * handle: Handle to the scrollbar to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4539 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4540 DW_FUNCTION_DEFINITION(dw_scrollbar_get_pos, unsigned int, HWND handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4541 DW_FUNCTION_ADD_PARAM1(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4542 DW_FUNCTION_RETURN(dw_scrollbar_get_pos, unsigned int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4543 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4544 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4545 int val = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4546 GtkAdjustment *adjustment; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4547 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4548 if(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4549 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4550 adjustment = (GtkAdjustment *)g_object_get_data(G_OBJECT(handle), "_dw_adjustment"); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4551 if(adjustment) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4552 val = _dw_round_value(gtk_adjustment_get_value(adjustment)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4553 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4554 DW_FUNCTION_RETURN_THIS(val); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4555 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4556 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4557 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4558 * Sets the scrollbar position. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4559 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4560 * handle: Handle to the scrollbar to be set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4561 * position: Position of the scrollbar withing the range. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4562 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4563 DW_FUNCTION_DEFINITION(dw_scrollbar_set_pos, void, HWND handle, unsigned int position) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4564 DW_FUNCTION_ADD_PARAM2(handle, position) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4565 DW_FUNCTION_NO_RETURN(dw_scrollbar_set_pos) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4566 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, position, unsigned int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4567 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4568 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4569 GtkAdjustment *adjustment; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4570 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4571 if(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4572 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4573 if((adjustment = (GtkAdjustment *)g_object_get_data(G_OBJECT(handle), "_dw_adjustment"))) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4574 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4575 g_object_set_data(G_OBJECT(adjustment), "_dw_suppress_value_changed_event", GINT_TO_POINTER(1)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4576 gtk_adjustment_set_value(adjustment, (gfloat)position); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4577 g_object_set_data(G_OBJECT(adjustment), "_dw_suppress_value_changed_event", GINT_TO_POINTER(0)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4578 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4579 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4580 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4581 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4582 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4583 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4584 * Sets the scrollbar range. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4585 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4586 * handle: Handle to the scrollbar to be set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4587 * range: Maximum range value. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4588 * visible: Visible area relative to the range. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4589 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4590 DW_FUNCTION_DEFINITION(dw_scrollbar_set_range, void, HWND handle, unsigned int range, unsigned int visible) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4591 DW_FUNCTION_ADD_PARAM3(handle, range, visible) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4592 DW_FUNCTION_NO_RETURN(dw_scrollbar_set_range) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4593 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, range, unsigned int, visible, unsigned int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4594 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4595 GtkAdjustment *adjustment; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4596 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4597 if(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4598 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4599 if((adjustment = (GtkAdjustment *)g_object_get_data(G_OBJECT(handle), "_dw_adjustment"))) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4600 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4601 gtk_adjustment_set_upper(adjustment, (gdouble)range); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4602 gtk_adjustment_set_page_increment(adjustment,(gdouble)visible); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4603 gtk_adjustment_set_page_size(adjustment, (gdouble)visible); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4604 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4605 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4606 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4607 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4608 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4609 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4610 * Sets the spinbutton value. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4611 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4612 * handle: Handle to the spinbutton to be set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4613 * position: Current value of the spinbutton. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4614 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4615 DW_FUNCTION_DEFINITION(dw_spinbutton_set_pos, void, HWND handle, long position) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4616 DW_FUNCTION_ADD_PARAM2(handle, position) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4617 DW_FUNCTION_NO_RETURN(dw_spinbutton_set_pos) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4618 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, position, long) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4619 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4620 gtk_spin_button_set_value(GTK_SPIN_BUTTON(handle), (gfloat)position); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4621 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4622 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4623 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4624 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4625 * Sets the spinbutton limits. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4626 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4627 * handle: Handle to the spinbutton to be set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4628 * position: Current value of the spinbutton. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4629 * position: Current value of the spinbutton. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4630 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4631 DW_FUNCTION_DEFINITION(dw_spinbutton_set_limits, void, HWND handle, long upper, long lower) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4632 DW_FUNCTION_ADD_PARAM3(handle, upper, lower) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4633 DW_FUNCTION_NO_RETURN(dw_spinbutton_set_limits) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4634 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, upper, long, lower, long) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4635 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4636 long curval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4637 GtkAdjustment *adj; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4638 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4639 curval = dw_spinbutton_get_pos(handle); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4640 adj = (GtkAdjustment *)gtk_adjustment_new((gfloat)curval, (gfloat)lower, (gfloat)upper, 1.0, 5.0, 0.0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4641 gtk_spin_button_set_adjustment(GTK_SPIN_BUTTON(handle), adj); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4642 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4643 * Set our internal relationships between the adjustment and the spinbutton |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4644 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4645 g_object_set_data(G_OBJECT(handle), "_dw_adjustment", (gpointer)adj); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4646 g_object_set_data(G_OBJECT(adj), "_dw_spinbutton", (gpointer)handle); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4647 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4648 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4649 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4650 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4651 * Sets the entryfield character limit. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4652 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4653 * handle: Handle to the spinbutton to be set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4654 * limit: Number of characters the entryfield will take. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4655 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4656 DW_FUNCTION_DEFINITION(dw_entryfield_set_limit, void, HWND handle, ULONG limit) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4657 DW_FUNCTION_ADD_PARAM2(handle, limit) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4658 DW_FUNCTION_NO_RETURN(dw_entryfield_set_limit) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4659 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, limit, ULONG) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4660 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4661 gtk_entry_set_max_length(GTK_ENTRY(handle), limit); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4662 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4663 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4664 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4665 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4666 * Returns the current value of the spinbutton. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4667 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4668 * handle: Handle to the spinbutton to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4669 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4670 DW_FUNCTION_DEFINITION(dw_spinbutton_get_pos, long, HWND handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4671 DW_FUNCTION_ADD_PARAM1(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4672 DW_FUNCTION_RETURN(dw_spinbutton_get_pos, long) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4673 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4674 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4675 long retval = (long)gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(handle)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4676 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4677 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4678 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4679 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4680 * Returns the state of the checkbox. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4681 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4682 * handle: Handle to the checkbox to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4683 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4684 DW_FUNCTION_DEFINITION(dw_checkbox_get, int, HWND handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4685 DW_FUNCTION_ADD_PARAM1(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4686 DW_FUNCTION_RETURN(dw_checkbox_get, int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4687 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4688 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4689 int retval = 0; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4690 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4691 if(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4692 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4693 if(GTK_IS_TOGGLE_BUTTON(handle)) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4694 retval = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(handle)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4695 retval = gtk_check_button_get_active(GTK_CHECK_BUTTON(handle)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4696 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4697 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4698 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4699 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4700 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4701 * Sets the state of the checkbox. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4702 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4703 * handle: Handle to the checkbox to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4704 * value: TRUE for checked, FALSE for unchecked. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4705 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4706 DW_FUNCTION_DEFINITION(dw_checkbox_set, void, HWND handle, int value) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4707 DW_FUNCTION_ADD_PARAM2(handle, value) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4708 DW_FUNCTION_NO_RETURN(dw_checkbox_set) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4709 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, value, int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4710 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4711 if(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4712 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4713 if(GTK_IS_TOGGLE_BUTTON(handle)) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4714 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(handle), value); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4715 else |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4716 gtk_check_button_set_active(GTK_CHECK_BUTTON(handle), value); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4717 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
4718 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4719 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4720 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4721 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4722 * Inserts an item into a tree window (widget) after another item. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4723 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4724 * handle: Handle to the tree to be inserted. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4725 * item: Handle to the item to be positioned after. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4726 * title: The text title of the entry. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4727 * icon: Handle to coresponding icon. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4728 * parent: Parent handle or 0 if root. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4729 * itemdata: Item specific data. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4730 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4731 DW_FUNCTION_DEFINITION(dw_tree_insert_after, HTREEITEM, HWND handle, HTREEITEM item, const char *title, HICN icon, HTREEITEM parent, void *itemdata) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4732 DW_FUNCTION_ADD_PARAM6(handle, item, title, icon, parent, itemdata) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4733 DW_FUNCTION_RETURN(dw_tree_insert_after, HTREEITEM) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4734 DW_FUNCTION_RESTORE_PARAM6(handle, HWND, item, HTREEITEM, title, char *, icon, HICN, parent, HTREEITEM, itemdata, void *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4735 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4736 GtkWidget *tree; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4737 GtkTreeIter *iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4738 GtkTreeStore *store; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4739 GdkPixbuf *pixbuf; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4740 HTREEITEM retval = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4741 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4742 if(handle) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4743 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4744 if((tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user")) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4745 && GTK_IS_TREE_VIEW(tree) && |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4746 (store = (GtkTreeStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4747 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4748 iter = (GtkTreeIter *)malloc(sizeof(GtkTreeIter)); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4749 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4750 pixbuf = _dw_find_pixbuf(icon, NULL, NULL); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4751 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4752 gtk_tree_store_insert_after(store, iter, (GtkTreeIter *)parent, (GtkTreeIter *)item); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4753 gtk_tree_store_set (store, iter, 0, title, 1, pixbuf, 2, itemdata, 3, iter, -1); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4754 retval = (HTREEITEM)iter; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4755 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4756 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4757 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4758 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4759 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4760 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4761 * Inserts an item into a tree window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4762 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4763 * handle: Handle to the tree to be inserted. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4764 * title: The text title of the entry. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4765 * icon: Handle to coresponding icon. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4766 * parent: Parent handle or 0 if root. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4767 * itemdata: Item specific data. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4768 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4769 DW_FUNCTION_DEFINITION(dw_tree_insert, HTREEITEM, HWND handle, const char *title, HICN icon, HTREEITEM parent, void *itemdata) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4770 DW_FUNCTION_ADD_PARAM5(handle, title, icon, parent, itemdata) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4771 DW_FUNCTION_RETURN(dw_tree_insert, HTREEITEM) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4772 DW_FUNCTION_RESTORE_PARAM5(handle, HWND, title, char *, icon, HICN, parent, HTREEITEM, itemdata, void *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4773 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4774 GtkWidget *tree; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4775 GtkTreeIter *iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4776 GtkTreeStore *store; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4777 GdkPixbuf *pixbuf; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4778 HTREEITEM retval = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4779 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4780 if(handle) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4781 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4782 if((tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user")) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4783 && GTK_IS_TREE_VIEW(tree) && |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4784 (store = (GtkTreeStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4785 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4786 iter = (GtkTreeIter *)malloc(sizeof(GtkTreeIter)); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4787 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4788 pixbuf = _dw_find_pixbuf(icon, NULL, NULL); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4789 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4790 gtk_tree_store_append (store, iter, (GtkTreeIter *)parent); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4791 gtk_tree_store_set (store, iter, 0, title, 1, pixbuf, 2, itemdata, 3, iter, -1); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4792 retval = (HTREEITEM)iter; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4793 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4794 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4795 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4796 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4797 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4798 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4799 * Sets the text and icon of an item in a tree window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4800 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4801 * handle: Handle to the tree containing the item. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4802 * item: Handle of the item to be modified. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4803 * title: The text title of the entry. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4804 * icon: Handle to coresponding icon. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4805 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4806 DW_FUNCTION_DEFINITION(dw_tree_item_change, void, HWND handle, HTREEITEM item, const char *title, HICN icon) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4807 DW_FUNCTION_ADD_PARAM4(handle, item, title, icon) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4808 DW_FUNCTION_NO_RETURN(dw_tree_item_change) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4809 DW_FUNCTION_RESTORE_PARAM4(handle, HWND, item, HTREEITEM, title, char *, icon, HICN) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4810 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4811 GtkWidget *tree; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4812 GtkTreeStore *store; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4813 GdkPixbuf *pixbuf; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4814 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4815 if(handle) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4816 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4817 if((tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user")) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4818 && GTK_IS_TREE_VIEW(tree) && |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4819 (store = (GtkTreeStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4820 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4821 pixbuf = _dw_find_pixbuf(icon, NULL, NULL); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4822 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4823 gtk_tree_store_set(store, (GtkTreeIter *)item, 0, title, 1, pixbuf, -1); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4824 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4825 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4826 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4827 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4828 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4829 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4830 * Sets the item data of a tree item. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4831 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4832 * handle: Handle to the tree containing the item. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4833 * item: Handle of the item to be modified. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4834 * itemdata: User defined data to be associated with item. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4835 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4836 DW_FUNCTION_DEFINITION(dw_tree_item_set_data, void, HWND handle, HTREEITEM item, void *itemdata) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4837 DW_FUNCTION_ADD_PARAM3(handle, item, itemdata) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4838 DW_FUNCTION_NO_RETURN(dw_tree_item_set_data) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4839 DW_FUNCTION_RESTORE_PARAM3(DW_UNUSED(handle), HWND, item, HTREEITEM, itemdata, void *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4840 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4841 GtkWidget *tree; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4842 GtkTreeStore *store; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4843 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4844 if(handle && item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4845 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4846 if((tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user")) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4847 && GTK_IS_TREE_VIEW(tree) && |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4848 (store = (GtkTreeStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4849 gtk_tree_store_set(store, (GtkTreeIter *)item, 2, itemdata, -1); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4850 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4851 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4852 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4853 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4854 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4855 * Gets the text an item in a tree window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4856 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4857 * handle: Handle to the tree containing the item. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4858 * item: Handle of the item to be modified. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4859 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4860 DW_FUNCTION_DEFINITION(dw_tree_get_title, char *, HWND handle, HTREEITEM item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4861 DW_FUNCTION_ADD_PARAM2(handle, item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4862 DW_FUNCTION_RETURN(dw_tree_get_title, char *) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4863 DW_FUNCTION_RESTORE_PARAM2(DW_UNUSED(handle), HWND, item, HTREEITEM) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4864 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4865 char *text = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4866 GtkWidget *tree; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4867 GtkTreeModel *store; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4868 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4869 if(handle && item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4870 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4871 tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4872 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4873 if(tree && GTK_IS_TREE_VIEW(tree) && |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4874 (store = (GtkTreeModel *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4875 gtk_tree_model_get(store, (GtkTreeIter *)item, _DW_DATA_TYPE_STRING, &text, -1); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4876 if(text) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4877 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4878 char *temp = text; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4879 text = strdup(temp); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4880 g_free(temp); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4881 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4882 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4883 DW_FUNCTION_RETURN_THIS(text); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4884 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4885 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4886 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4887 * Gets the text an item in a tree window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4888 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4889 * handle: Handle to the tree containing the item. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4890 * item: Handle of the item to be modified. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4891 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4892 DW_FUNCTION_DEFINITION(dw_tree_get_parent, HTREEITEM, HWND handle, HTREEITEM item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4893 DW_FUNCTION_ADD_PARAM2(handle, item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4894 DW_FUNCTION_RETURN(dw_tree_get_parent, HTREEITEM) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4895 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, item, HTREEITEM) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4896 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4897 HTREEITEM parent = (HTREEITEM)0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4898 GtkWidget *tree; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4899 GtkTreeModel *store; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4900 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4901 if(handle && item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4902 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4903 tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4904 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4905 if(tree && GTK_IS_TREE_VIEW(tree) && |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4906 (store = (GtkTreeModel *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4907 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4908 GtkTreeIter iter; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4909 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4910 if(gtk_tree_model_iter_parent(store, &iter, (GtkTreeIter *)item)) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4911 gtk_tree_model_get(store, &iter, 3, &parent, -1); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4912 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4913 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4914 DW_FUNCTION_RETURN_THIS(parent); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4915 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4916 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4917 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4918 * Gets the item data of a tree item. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4919 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4920 * handle: Handle to the tree containing the item. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4921 * item: Handle of the item to be modified. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4922 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4923 DW_FUNCTION_DEFINITION(dw_tree_item_get_data, void *, HWND handle, HTREEITEM item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4924 DW_FUNCTION_ADD_PARAM2(handle, item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4925 DW_FUNCTION_RETURN(dw_tree_item_get_data, void *) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4926 DW_FUNCTION_RESTORE_PARAM2(DW_UNUSED(handle), HWND, item, HTREEITEM) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4927 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4928 void *ret = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4929 GtkWidget *tree; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4930 GtkTreeModel *store; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4931 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4932 if(handle && item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4933 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4934 if((tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user")) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4935 && GTK_IS_TREE_VIEW(tree) && |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4936 (store = (GtkTreeModel *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4937 gtk_tree_model_get(store, (GtkTreeIter *)item, 2, &ret, -1); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4938 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4939 DW_FUNCTION_RETURN_THIS(ret); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4940 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4941 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4942 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4943 * Sets this item as the active selection. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4944 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4945 * handle: Handle to the tree window (widget) to be selected. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4946 * item: Handle to the item to be selected. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4947 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4948 DW_FUNCTION_DEFINITION(dw_tree_item_select, void, HWND handle, HTREEITEM item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4949 DW_FUNCTION_ADD_PARAM2(handle, item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4950 DW_FUNCTION_NO_RETURN(dw_tree_item_select) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4951 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, item, HTREEITEM) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4952 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4953 GtkWidget *tree; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4954 GtkTreeStore *store; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4955 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4956 if(handle && item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4957 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4958 if((tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user")) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4959 && GTK_IS_TREE_VIEW(tree) && |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4960 (store = (GtkTreeStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4961 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4962 GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), (GtkTreeIter *)item); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4963 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4964 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4965 gtk_tree_view_set_cursor(GTK_TREE_VIEW(tree), path, NULL, FALSE); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4966 gtk_tree_selection_select_iter(sel, (GtkTreeIter *)item); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4967 gtk_tree_path_free(path); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4968 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4969 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4970 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4971 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4972 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4973 static void _dw_recursive_free(GtkTreeModel *store, GtkTreeIter parent) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4974 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4975 void *data; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4976 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4977 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4978 gtk_tree_model_get(store, &parent, 3, &data, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4979 if(data) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4980 free(data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4981 gtk_tree_store_set(GTK_TREE_STORE(store), &parent, 3, NULL, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4982 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4983 if(gtk_tree_model_iter_children(store, &iter, &parent)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4984 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4985 do { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4986 _dw_recursive_free(GTK_TREE_MODEL(store), iter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4987 } while(gtk_tree_model_iter_next(GTK_TREE_MODEL(store), &iter)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4988 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4989 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4990 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4991 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4992 * Removes all nodes from a tree. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4993 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4994 * handle: Handle to the window (widget) to be cleared. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4995 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4996 DW_FUNCTION_DEFINITION(dw_tree_clear, void, HWND handle) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4997 DW_FUNCTION_ADD_PARAM1(handle) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4998 DW_FUNCTION_NO_RETURN(dw_tree_clear) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
4999 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5000 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5001 GtkWidget *tree; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5002 GtkTreeStore *store; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5003 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5004 if(handle) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5005 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5006 if((tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user")) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5007 && GTK_IS_TREE_VIEW(tree) && |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5008 (store = (GtkTreeStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5009 { |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5010 GtkTreeIter iter; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5011 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5012 if(gtk_tree_model_get_iter_first(GTK_TREE_MODEL(store), &iter)) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5013 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5014 do { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5015 _dw_recursive_free(GTK_TREE_MODEL(store), iter); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5016 } while(gtk_tree_model_iter_next(GTK_TREE_MODEL(store), &iter)); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5017 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5018 gtk_tree_store_clear(store); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5019 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5020 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5021 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5022 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5023 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5024 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5025 * Expands a node on a tree. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5026 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5027 * handle: Handle to the tree window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5028 * item: Handle to node to be expanded. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5029 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5030 DW_FUNCTION_DEFINITION(dw_tree_item_expand, void, HWND handle, HTREEITEM item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5031 DW_FUNCTION_ADD_PARAM2(handle, item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5032 DW_FUNCTION_NO_RETURN(dw_tree_item_expand) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5033 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, item, HTREEITEM) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5034 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5035 GtkWidget *tree; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5036 GtkTreeStore *store; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5037 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5038 if(handle) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5039 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5040 if((tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user")) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5041 && GTK_IS_TREE_VIEW(tree) && |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5042 (store = (GtkTreeStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5043 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5044 GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), (GtkTreeIter *)item); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5045 gtk_tree_view_expand_row(GTK_TREE_VIEW(tree), path, FALSE); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5046 gtk_tree_path_free(path); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5047 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5048 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5049 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5050 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5051 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5052 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5053 * Collapses a node on a tree. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5054 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5055 * handle: Handle to the tree window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5056 * item: Handle to node to be collapsed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5057 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5058 DW_FUNCTION_DEFINITION(dw_tree_item_collapse, void, HWND handle, HTREEITEM item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5059 DW_FUNCTION_ADD_PARAM2(handle, item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5060 DW_FUNCTION_NO_RETURN(dw_tree_item_collapse) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5061 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, item, HTREEITEM) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5062 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5063 GtkWidget *tree; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5064 GtkTreeStore *store; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5065 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5066 if(handle) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5067 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5068 if((tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user")) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5069 && GTK_IS_TREE_VIEW(tree) && |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5070 (store = (GtkTreeStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5071 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5072 GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), (GtkTreeIter *)item); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5073 gtk_tree_view_collapse_row(GTK_TREE_VIEW(tree), path); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5074 gtk_tree_path_free(path); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5075 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5076 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5077 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5078 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5079 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5080 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5081 * Removes a node from a tree. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5082 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5083 * handle: Handle to the window (widget) to be cleared. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5084 * item: Handle to node to be deleted. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5085 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5086 DW_FUNCTION_DEFINITION(dw_tree_item_delete, void, HWND handle, HTREEITEM item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5087 DW_FUNCTION_ADD_PARAM2(handle, item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5088 DW_FUNCTION_NO_RETURN(dw_tree_item_delete) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5089 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, item, HTREEITEM) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5090 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5091 GtkWidget *tree; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5092 GtkTreeStore *store; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5093 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5094 if(handle) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5095 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5096 if((tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user")) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5097 && GTK_IS_TREE_VIEW(tree) && |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5098 (store = (GtkTreeStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5099 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5100 gtk_tree_store_remove(store, (GtkTreeIter *)item); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5101 free(item); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5102 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5103 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5104 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5105 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5106 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5107 #define _DW_CONTAINER_STORE_EXTRA 2 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5108 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5109 static int _dw_container_setup_int(HWND handle, unsigned long *flags, char **titles, int count, int separator, int extra) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5110 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5111 int z; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5112 char numbuf[25] = {0}; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5113 GtkWidget *tree; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5114 GtkListStore *store; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5115 GtkTreeViewColumn *col; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5116 GtkCellRenderer *rend; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5117 GtkTreeSelection *sel; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5118 GType *array = calloc(count + _DW_CONTAINER_STORE_EXTRA + 1, sizeof(GType)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5119 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5120 /* Save some of the info so it is easily accessible */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5121 g_object_set_data(G_OBJECT(handle), "_dw_cont_columns", GINT_TO_POINTER(count)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5122 g_object_set_data(G_OBJECT(handle), "_dw_cont_extra", GINT_TO_POINTER(extra)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5123 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5124 /* First param is row title */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5125 array[0] = G_TYPE_STRING; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5126 /* Second param is row data */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5127 array[1] = G_TYPE_POINTER; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5128 array[2] = G_TYPE_POINTER; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5129 /* First loop... create array to create the store */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5130 for(z=0;z<count;z++) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5131 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5132 if(z == 0 && flags[z] & DW_CFA_STRINGANDICON) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5133 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5134 array[_DW_CONTAINER_STORE_EXTRA] = GDK_TYPE_PIXBUF; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5135 array[_DW_CONTAINER_STORE_EXTRA+1] = G_TYPE_STRING; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5136 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5137 else if(flags[z] & DW_CFA_BITMAPORICON) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5138 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5139 array[z+_DW_CONTAINER_STORE_EXTRA+1] = GDK_TYPE_PIXBUF; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5140 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5141 else if(flags[z] & DW_CFA_STRING) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5142 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5143 array[z+_DW_CONTAINER_STORE_EXTRA+1] = G_TYPE_STRING; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5144 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5145 else if(flags[z] & DW_CFA_ULONG) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5146 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5147 array[z+_DW_CONTAINER_STORE_EXTRA+1] = G_TYPE_ULONG; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5148 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5149 else if(flags[z] & DW_CFA_TIME) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5150 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5151 array[z+_DW_CONTAINER_STORE_EXTRA+1] = G_TYPE_STRING; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5152 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5153 else if(flags[z] & DW_CFA_DATE) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5154 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5155 array[z+_DW_CONTAINER_STORE_EXTRA+1] = G_TYPE_STRING; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5156 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5157 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5158 /* Create the store and then the tree */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5159 store = gtk_list_store_newv(count + _DW_CONTAINER_STORE_EXTRA + 1, array); |
2287
680212c356e3
GTK4: Refactor tree and fix DW_SIGNAL_ITEM_CONTEXT signals on tree view
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2286
diff
changeset
|
5160 tree = _dw_tree_view_setup(handle, GTK_TREE_MODEL(store)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5161 g_object_set_data(G_OBJECT(tree), "_dw_tree_type", GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5162 /* Second loop... create the columns */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5163 for(z=0;z<count;z++) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5164 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5165 snprintf(numbuf, 24, "_dw_cont_col%d", z); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5166 g_object_set_data(G_OBJECT(tree), numbuf, GINT_TO_POINTER(flags[z])); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5167 col = gtk_tree_view_column_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5168 rend = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5169 void **params = calloc(sizeof(void *), 3); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5170 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5171 if(z == 0 && flags[z] & DW_CFA_STRINGANDICON) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5172 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5173 rend = gtk_cell_renderer_pixbuf_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5174 gtk_tree_view_column_pack_start(col, rend, FALSE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5175 gtk_tree_view_column_add_attribute(col, rend, "pixbuf", _DW_CONTAINER_STORE_EXTRA); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5176 rend = gtk_cell_renderer_text_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5177 gtk_tree_view_column_pack_start(col, rend, TRUE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5178 gtk_tree_view_column_add_attribute(col, rend, "text", _DW_CONTAINER_STORE_EXTRA+1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5179 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5180 else if(flags[z] & DW_CFA_BITMAPORICON) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5181 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5182 rend = gtk_cell_renderer_pixbuf_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5183 gtk_tree_view_column_pack_start(col, rend, FALSE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5184 gtk_tree_view_column_add_attribute(col, rend, "pixbuf", z+_DW_CONTAINER_STORE_EXTRA+1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5185 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5186 else if(flags[z] & DW_CFA_STRING) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5187 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5188 rend = gtk_cell_renderer_text_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5189 gtk_tree_view_column_pack_start(col, rend, TRUE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5190 gtk_tree_view_column_add_attribute(col, rend, "text", z+_DW_CONTAINER_STORE_EXTRA+1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5191 gtk_tree_view_column_set_resizable(col, TRUE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5192 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5193 else if(flags[z] & DW_CFA_ULONG) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5194 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5195 rend = gtk_cell_renderer_text_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5196 gtk_tree_view_column_pack_start(col, rend, TRUE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5197 gtk_tree_view_column_add_attribute(col, rend, "text", z+_DW_CONTAINER_STORE_EXTRA+1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5198 gtk_tree_view_column_set_resizable(col, TRUE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5199 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5200 else if(flags[z] & DW_CFA_TIME) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5201 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5202 rend = gtk_cell_renderer_text_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5203 gtk_tree_view_column_pack_start(col, rend, TRUE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5204 gtk_tree_view_column_add_attribute(col, rend, "text", z+_DW_CONTAINER_STORE_EXTRA+1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5205 gtk_tree_view_column_set_resizable(col, TRUE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5206 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5207 else if(flags[z] & DW_CFA_DATE) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5208 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5209 rend = gtk_cell_renderer_text_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5210 gtk_tree_view_column_pack_start(col, rend, TRUE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5211 gtk_tree_view_column_add_attribute(col, rend, "text", z+_DW_CONTAINER_STORE_EXTRA+1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5212 gtk_tree_view_column_set_resizable(col, TRUE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5213 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5214 g_object_set_data(G_OBJECT(col), "_dw_column", GINT_TO_POINTER(z)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5215 params[2] = tree; |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
5216 g_signal_connect_data(G_OBJECT(col), "clicked", G_CALLBACK(_dw_column_click_event), (gpointer)params, _dw_signal_disconnect, 0); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5217 gtk_tree_view_column_set_title(col, titles[z]); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5218 if(flags[z] & DW_CFA_RIGHT) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5219 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5220 gtk_tree_view_column_set_alignment(col, 1.0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5221 if(rend) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5222 gtk_cell_renderer_set_alignment(rend, 1.0, 0.5); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5223 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5224 else if(flags[z] & DW_CFA_CENTER) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5225 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5226 gtk_tree_view_column_set_alignment(col, 0.5); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5227 if(rend) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5228 gtk_cell_renderer_set_alignment(rend, 0.5, 0.5); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5229 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5230 gtk_tree_view_append_column(GTK_TREE_VIEW (tree), col); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5231 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5232 /* Finish up */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5233 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), TRUE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5234 gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(tree), TRUE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5235 gtk_tree_view_set_rubber_banding(GTK_TREE_VIEW(tree), TRUE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5236 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5237 if(g_object_get_data(G_OBJECT(handle), "_dw_multi_sel")) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5238 gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5239 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5240 gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5241 gtk_widget_show(tree); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5242 free(array); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5243 if(_DWDefaultFont) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5244 dw_window_set_font(handle, _DWDefaultFont); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5245 return DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5246 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5247 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5248 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5249 * Sets up the container columns. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5250 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5251 * handle: Handle to the container to be configured. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5252 * flags: An array of unsigned longs with column flags. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5253 * titles: An array of strings with column text titles. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5254 * count: The number of columns (this should match the arrays). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5255 * separator: The column number that contains the main separator. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5256 * (this item may only be used in OS/2) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5257 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5258 DW_FUNCTION_DEFINITION(dw_container_setup, int, HWND handle, unsigned long *flags, char **titles, int count, int separator) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5259 DW_FUNCTION_ADD_PARAM5(handle, flags, titles, count, separator) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5260 DW_FUNCTION_RETURN(dw_container_setup, int) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5261 DW_FUNCTION_RESTORE_PARAM5(handle, HWND, flags, unsigned long *, titles, char **, count, int, DW_UNUSED(separator), int) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5262 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5263 int retval = _dw_container_setup_int(handle, flags, titles, count, separator, 0); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5264 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5265 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5266 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5267 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5268 * Configures the main filesystem columnn title for localization. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5269 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5270 * handle: Handle to the container to be configured. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5271 * title: The title to be displayed in the main column. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5272 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5273 void API dw_filesystem_set_column_title(HWND handle, const char *title) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5274 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5275 char *newtitle = strdup(title ? title : ""); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5276 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5277 g_object_set_data(G_OBJECT(handle), "_dw_coltitle", newtitle); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5278 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5279 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5280 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5281 * Sets up the filesystem columns, note: filesystem always has an icon/filename field. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5282 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5283 * handle: Handle to the container to be configured. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5284 * flags: An array of unsigned longs with column flags. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5285 * titles: An array of strings with column text titles. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5286 * count: The number of columns (this should match the arrays). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5287 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5288 DW_FUNCTION_DEFINITION(dw_filesystem_setup, int, HWND handle, unsigned long *flags, char **titles, int count) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5289 DW_FUNCTION_ADD_PARAM4(handle, flags, titles, count) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5290 DW_FUNCTION_RETURN(dw_filesystem_setup, int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5291 DW_FUNCTION_RESTORE_PARAM4(handle, HWND, flags, unsigned long *, titles, char **, count, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5292 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5293 char **newtitles = malloc(sizeof(char *) * (count + 1)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5294 unsigned long *newflags = malloc(sizeof(unsigned long) * (count + 1)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5295 char *coltitle = (char *)g_object_get_data(G_OBJECT(handle), "_dw_coltitle"); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5296 int retval; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5297 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5298 newtitles[0] = coltitle ? coltitle : "Filename"; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5299 newflags[0] = DW_CFA_STRINGANDICON | DW_CFA_LEFT | DW_CFA_HORZSEPARATOR; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5300 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5301 memcpy(&newtitles[1], titles, sizeof(char *) * count); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5302 memcpy(&newflags[1], flags, sizeof(unsigned long) * count); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5303 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5304 retval = _dw_container_setup_int(handle, newflags, newtitles, count + 1, 1, 1); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5305 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5306 if(coltitle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5307 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5308 g_object_set_data(G_OBJECT(handle), "_dw_coltitle", NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5309 free(coltitle); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5310 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5311 if(newtitles) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5312 free(newtitles); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5313 if(newflags) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5314 free(newflags); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5315 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5316 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5317 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5318 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5319 * Obtains an icon from a module (or header in GTK). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5320 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5321 * module: Handle to module (DLL) in OS/2 and Windows. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5322 * id: A unsigned long id int the resources on OS/2 and |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5323 * Windows, on GTK this is converted to a pointer |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5324 * to an embedded XPM. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5325 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
5326 HICN API dw_icon_load(unsigned long module, unsigned long id) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5327 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5328 return (HICN)id; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5329 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5330 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5331 /* Internal function to keep HICNs from getting too big */ |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5332 GdkPixbuf *_dw_icon_resize(GdkPixbuf *ret) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5333 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5334 if(ret) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5335 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5336 int pwidth = gdk_pixbuf_get_width(ret); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5337 int pheight = gdk_pixbuf_get_height(ret); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5338 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5339 if(pwidth > 24 || pheight > 24) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5340 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5341 GdkPixbuf *orig = ret; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5342 ret = gdk_pixbuf_scale_simple(ret, pwidth > 24 ? 24 : pwidth, pheight > 24 ? 24 : pheight, GDK_INTERP_BILINEAR); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5343 g_object_unref(G_OBJECT(orig)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5344 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5345 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5346 return ret; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5347 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5348 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5349 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5350 * Obtains an icon from a file. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5351 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5352 * filename: Name of the file, omit extention to have |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5353 * DW pick the appropriate file extension. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5354 * (ICO on OS/2 or Windows, XPM on Unix) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5355 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5356 HICN API dw_icon_load_from_file(const char *filename) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5357 { |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5358 HICN retval = 0; |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5359 |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5360 if(filename && *filename) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5361 { |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5362 char *file = alloca(strlen(filename) + 6); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5363 |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5364 strcpy(file, filename); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5365 |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5366 /* check if we can read from this file (it exists and read permission) */ |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5367 if(access(file, 04) != 0) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5368 { |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5369 int i = 0; |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5370 |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5371 /* Try with various extentions */ |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5372 while(_dw_image_exts[i] && !retval) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5373 { |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5374 strcpy(file, filename); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5375 strcat(file, _dw_image_exts[i]); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5376 if(access(file, 04) == 0) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5377 retval = _dw_icon_resize(gdk_pixbuf_new_from_file(file, NULL)); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5378 i++; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5379 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5380 } |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5381 else |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5382 retval = _dw_icon_resize(gdk_pixbuf_new_from_file(file, NULL)); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5383 } |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5384 return retval; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5385 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5386 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5387 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5388 * Obtains an icon from data. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5389 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5390 * data: Source of data for image. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5391 * len: length of data |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5392 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5393 HICN API dw_icon_load_from_data(const char *data, int len) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5394 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5395 int fd, written = -1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5396 char template[] = "/tmp/dwiconXXXXXX"; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5397 HICN ret = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5398 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5399 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5400 * A real hack; create a temporary file and write the contents |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5401 * of the data to the file |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5402 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5403 if((fd = mkstemp(template)) != -1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5404 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5405 written = write(fd, data, len); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5406 close(fd); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5407 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5408 /* Bail if we couldn't write full file */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5409 if(fd == -1 || written != len) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5410 return 0; |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
5411 ret = _dw_icon_resize(gdk_pixbuf_new_from_file(template, NULL)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5412 unlink(template); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5413 return ret; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5414 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5415 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5416 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5417 * Frees a loaded resource in OS/2 and Windows. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5418 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5419 * handle: Handle to icon returned by dw_icon_load(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5420 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
5421 void API dw_icon_free(HICN handle) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5422 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5423 int iicon = GPOINTER_TO_INT(handle); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5424 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5425 if(iicon > 65535) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5426 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5427 g_object_unref(handle); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5428 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5429 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5430 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5431 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5432 * Allocates memory used to populate a container. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5433 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5434 * handle: Handle to the container window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5435 * rowcount: The number of items to be populated. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5436 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5437 DW_FUNCTION_DEFINITION(dw_container_alloc, void *, HWND handle, int rowcount) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5438 DW_FUNCTION_ADD_PARAM2(handle, rowcount) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5439 DW_FUNCTION_RETURN(dw_container_alloc, void *) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5440 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, rowcount, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5441 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5442 int z, prevrowcount = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5443 GtkWidget *cont; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5444 GtkListStore *store = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5445 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5446 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5447 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5448 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5449 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5450 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(cont)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5451 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5452 if(store) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5453 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5454 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5455 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5456 prevrowcount = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cont), "_dw_rowcount")); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5457 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5458 for(z=0;z<rowcount;z++) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5459 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5460 gtk_list_store_append(store, &iter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5461 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5462 g_object_set_data(G_OBJECT(cont), "_dw_insertpos", GINT_TO_POINTER(prevrowcount)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5463 g_object_set_data(G_OBJECT(cont), "_dw_rowcount", GINT_TO_POINTER(rowcount + prevrowcount)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5464 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5465 DW_FUNCTION_RETURN_THIS(cont); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5466 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5467 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5468 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5469 * Internal representation of dw_container_set_item() extracted so we can pass |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5470 * two data pointers; icon and text for dw_filesystem_set_item(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5471 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5472 void _dw_container_set_item_int(HWND handle, void *pointer, int column, int row, void *data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5473 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5474 char numbuf[25] = {0}, textbuffer[101] = {0}; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5475 int flag = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5476 GtkWidget *cont; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5477 GtkListStore *store = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5478 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5479 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5480 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5481 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5482 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5483 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(cont)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5484 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5485 if(store) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5486 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5487 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5488 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5489 snprintf(numbuf, 24, "_dw_cont_col%d", column); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5490 flag = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cont), numbuf)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5491 if(pointer) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5492 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5493 row += GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cont), "_dw_insertpos")); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5494 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5495 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5496 if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, row)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5497 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5498 if(flag & DW_CFA_STRINGANDICON) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5499 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5500 void **thisdata = (void **)data; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5501 HICN hicon = data ? *((HICN *)thisdata[0]) : 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5502 char *tmp = data ? (char *)thisdata[1] : NULL; |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
5503 GdkPixbuf *pixbuf = hicon ? _dw_find_pixbuf(hicon, NULL, NULL) : NULL; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5504 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5505 gtk_list_store_set(store, &iter, _DW_CONTAINER_STORE_EXTRA, pixbuf, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5506 gtk_list_store_set(store, &iter, _DW_CONTAINER_STORE_EXTRA + 1, tmp, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5507 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5508 else if(flag & DW_CFA_BITMAPORICON) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5509 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5510 HICN hicon = data ? *((HICN *)data) : 0; |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
5511 GdkPixbuf *pixbuf = hicon ? _dw_find_pixbuf(hicon, NULL, NULL) : NULL; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5512 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5513 gtk_list_store_set(store, &iter, column + _DW_CONTAINER_STORE_EXTRA + 1, pixbuf, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5514 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5515 else if(flag & DW_CFA_STRING) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5516 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5517 char *tmp = data ? *((char **)data) : NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5518 gtk_list_store_set(store, &iter, column + _DW_CONTAINER_STORE_EXTRA + 1, tmp, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5519 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5520 else if(flag & DW_CFA_ULONG) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5521 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5522 ULONG tmp = data ? *((ULONG *)data): 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5523 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5524 gtk_list_store_set(store, &iter, column + _DW_CONTAINER_STORE_EXTRA + 1, tmp, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5525 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5526 else if(flag & DW_CFA_DATE) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5527 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5528 if(data) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5529 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5530 struct tm curtm; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5531 CDATE cdate = *((CDATE *)data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5532 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5533 memset( &curtm, 0, sizeof(curtm) ); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5534 curtm.tm_mday = cdate.day; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5535 curtm.tm_mon = cdate.month - 1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5536 curtm.tm_year = cdate.year - 1900; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5537 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5538 strftime(textbuffer, 100, "%x", &curtm); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5539 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5540 gtk_list_store_set(store, &iter, column + _DW_CONTAINER_STORE_EXTRA + 1, textbuffer, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5541 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5542 else if(flag & DW_CFA_TIME) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5543 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5544 if(data) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5545 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5546 struct tm curtm; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5547 CTIME ctime = *((CTIME *)data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5548 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5549 memset( &curtm, 0, sizeof(curtm) ); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5550 curtm.tm_hour = ctime.hours; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5551 curtm.tm_min = ctime.minutes; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5552 curtm.tm_sec = ctime.seconds; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5553 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5554 strftime(textbuffer, 100, "%X", &curtm); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5555 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5556 gtk_list_store_set(store, &iter, column + _DW_CONTAINER_STORE_EXTRA + 1, textbuffer, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5557 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5558 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5559 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5560 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5561 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5562 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5563 * Sets an item in specified row and column to the given data. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5564 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5565 * handle: Handle to the container window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5566 * pointer: Pointer to the allocated memory in dw_container_alloc(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5567 * column: Zero based column of data being set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5568 * row: Zero based row of data being set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5569 * data: Pointer to the data to be added. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5570 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5571 DW_FUNCTION_DEFINITION(dw_container_set_item, void, HWND handle, void *pointer, int column, int row, void *data) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5572 DW_FUNCTION_ADD_PARAM5(handle, pointer, column, row, data) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5573 DW_FUNCTION_NO_RETURN(dw_container_set_item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5574 DW_FUNCTION_RESTORE_PARAM5(handle, HWND, pointer, void *, column, int, row, int, data, void *) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5575 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5576 _dw_container_set_item_int(handle, pointer, column, row, data); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5577 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5578 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5579 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5580 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5581 * Changes an existing item in specified row and column to the given data. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5582 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5583 * handle: Handle to the container window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5584 * column: Zero based column of data being set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5585 * row: Zero based row of data being set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5586 * data: Pointer to the data to be added. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5587 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5588 DW_FUNCTION_DEFINITION(dw_container_change_item, void, HWND handle, int column, int row, void *data) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5589 DW_FUNCTION_ADD_PARAM4(handle, column, row, data) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5590 DW_FUNCTION_NO_RETURN(dw_container_change_item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5591 DW_FUNCTION_RESTORE_PARAM4(handle, HWND, column, int, row, int, data, void *) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5592 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5593 _dw_container_set_item_int(handle, NULL, column, row, data); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5594 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5595 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5596 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5597 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5598 * Changes an existing item in specified row and column to the given data. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5599 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5600 * handle: Handle to the container window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5601 * column: Zero based column of data being set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5602 * row: Zero based row of data being set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5603 * data: Pointer to the data to be added. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5604 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5605 void API dw_filesystem_change_item(HWND handle, int column, int row, void *data) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5606 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5607 dw_filesystem_set_item(handle, NULL, column, row, data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5608 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5609 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5610 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5611 * Changes an item in specified row and column to the given data. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5612 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5613 * handle: Handle to the container window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5614 * pointer: Pointer to the allocated memory in dw_container_alloc(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5615 * column: Zero based column of data being set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5616 * row: Zero based row of data being set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5617 * data: Pointer to the data to be added. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5618 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5619 void API dw_filesystem_change_file(HWND handle, int row, const char *filename, HICN icon) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5620 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5621 dw_filesystem_set_file(handle, NULL, row, filename, icon); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5622 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5623 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5624 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5625 * Sets an item in specified row and column to the given data. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5626 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5627 * handle: Handle to the container window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5628 * pointer: Pointer to the allocated memory in dw_container_alloc(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5629 * column: Zero based column of data being set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5630 * row: Zero based row of data being set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5631 * data: Pointer to the data to be added. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5632 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5633 DW_FUNCTION_DEFINITION(dw_filesystem_set_file, void, HWND handle, void *pointer, int row, const char *filename, HICN icon) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5634 DW_FUNCTION_ADD_PARAM5(handle, pointer, row, filename, icon) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5635 DW_FUNCTION_NO_RETURN(dw_filesystem_set_file) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5636 DW_FUNCTION_RESTORE_PARAM5(handle, HWND, pointer, void *, row, int, filename, char *, icon, HICN) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5637 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5638 void *data[2] = { (void *)&icon, (void *)filename }; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5639 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5640 _dw_container_set_item_int(handle, pointer, 0, row, (void *)data); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5641 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5642 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5643 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5644 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5645 * Sets an item in specified row and column to the given data. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5646 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5647 * handle: Handle to the container window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5648 * pointer: Pointer to the allocated memory in dw_container_alloc(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5649 * column: Zero based column of data being set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5650 * row: Zero based row of data being set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5651 * data: Pointer to the data to be added. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5652 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5653 DW_FUNCTION_DEFINITION(dw_filesystem_set_item, void, HWND handle, void *pointer, int column, int row, void *data) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5654 DW_FUNCTION_ADD_PARAM5(handle, pointer, column, row, data) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5655 DW_FUNCTION_NO_RETURN(dw_filesystem_set_item) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5656 DW_FUNCTION_RESTORE_PARAM5(handle, HWND, pointer, void *, column, int, row, int, data, void *) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5657 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5658 _dw_container_set_item_int(handle, pointer, column + 1, row, data); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5659 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5660 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5661 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5662 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5663 * Gets column type for a container column |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5664 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5665 * handle: Handle to the container window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5666 * column: Zero based column. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5667 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5668 DW_FUNCTION_DEFINITION(dw_container_get_column_type, int, HWND handle, int column) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5669 DW_FUNCTION_ADD_PARAM2(handle, column) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5670 DW_FUNCTION_RETURN(dw_container_get_column_type, int) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5671 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, column, int) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5672 { |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5673 int flag, rc = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5674 GtkWidget *cont = handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5675 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5676 if((cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"))) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5677 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5678 char numbuf[25] = {0}; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5679 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5680 snprintf(numbuf, 24, "_dw_cont_col%d", column); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5681 flag = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cont), numbuf)); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5682 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5683 if(flag & DW_CFA_BITMAPORICON) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5684 rc = DW_CFA_BITMAPORICON; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5685 else if(flag & DW_CFA_STRING) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5686 rc = DW_CFA_STRING; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5687 else if(flag & DW_CFA_ULONG) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5688 rc = DW_CFA_ULONG; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5689 else if(flag & DW_CFA_DATE) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5690 rc = DW_CFA_DATE; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5691 else if(flag & DW_CFA_TIME) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5692 rc = DW_CFA_TIME; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5693 else |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5694 rc = 0; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5695 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5696 DW_FUNCTION_RETURN_THIS(rc); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5697 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5698 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5699 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5700 * Gets column type for a filesystem container column |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5701 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5702 * handle: Handle to the container window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5703 * column: Zero based column. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5704 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5705 int API dw_filesystem_get_column_type(HWND handle, int column) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5706 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5707 return dw_container_get_column_type( handle, column + 1 ); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5708 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5709 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5710 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5711 * Sets the alternating row colors for container window (widget) handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5712 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5713 * handle: The window (widget) handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5714 * oddcolor: Odd row background color in DW_RGB format or a default color index. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5715 * evencolor: Even row background color in DW_RGB format or a default color index. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5716 * DW_RGB_TRANSPARENT will disable coloring rows. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5717 * DW_CLR_DEFAULT will use the system default alternating row colors. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5718 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5719 void API dw_container_set_stripe(HWND handle, unsigned long oddcolor, unsigned long evencolor) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5720 { |
2441
a80df2e7195d
GTK4: Add a comment with the information about striped controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2410
diff
changeset
|
5721 /* TODO: If we want to accomplish this, according to mclasen we can do it |
a80df2e7195d
GTK4: Add a comment with the information about striped controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2410
diff
changeset
|
5722 * with CSS on a GtkListBox widget using the following CSS: |
a80df2e7195d
GTK4: Add a comment with the information about striped controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2410
diff
changeset
|
5723 * "row: nth-child(even) { background: red; }" |
a80df2e7195d
GTK4: Add a comment with the information about striped controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2410
diff
changeset
|
5724 * However he does not recommend we do it for performance reasons. |
a80df2e7195d
GTK4: Add a comment with the information about striped controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2410
diff
changeset
|
5725 */ |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5726 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5727 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5728 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5729 * Sets the width of a column in the container. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5730 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5731 * handle: Handle to window (widget) of container. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5732 * column: Zero based column of width being set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5733 * width: Width of column in pixels. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5734 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5735 DW_FUNCTION_DEFINITION(dw_container_set_column_width, void, HWND handle, int column, int width) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5736 DW_FUNCTION_ADD_PARAM3(handle, column, width) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5737 DW_FUNCTION_NO_RETURN(dw_container_set_column_width) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5738 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, column, int, width, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5739 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5740 GtkWidget *cont; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5741 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5742 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5743 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5744 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5745 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5746 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5747 GtkTreeViewColumn *col = gtk_tree_view_get_column(GTK_TREE_VIEW(cont), column); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5748 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5749 if(col && GTK_IS_TREE_VIEW_COLUMN(col)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5750 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5751 gtk_tree_view_column_set_fixed_width(GTK_TREE_VIEW_COLUMN(col), width); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5752 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5753 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5754 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5755 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5756 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5757 /* Internal version for both */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5758 void _dw_container_set_row_data_int(HWND handle, void *pointer, int row, int type, void *data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5759 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5760 GtkWidget *cont = handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5761 GtkListStore *store = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5762 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5763 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5764 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5765 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(cont)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5766 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5767 if(store) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5768 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5769 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5770 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5771 if(pointer) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5772 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5773 row += GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cont), "_dw_insertpos")); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5774 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5775 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5776 if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, row)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5777 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5778 gtk_list_store_set(store, &iter, type, (gpointer)data, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5779 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5780 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5781 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5782 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5783 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5784 * Sets the title of a row in the container. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5785 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5786 * pointer: Pointer to the allocated memory in dw_container_alloc(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5787 * row: Zero based row of data being set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5788 * title: String title of the item. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5789 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5790 DW_FUNCTION_DEFINITION(dw_container_set_row_title, void, void *pointer, int row, const char *title) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5791 DW_FUNCTION_ADD_PARAM3(pointer, row, title) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5792 DW_FUNCTION_NO_RETURN(dw_container_set_row_title) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5793 DW_FUNCTION_RESTORE_PARAM3(pointer, void *, row, int, title, char *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5794 { |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5795 _dw_container_set_row_data_int(pointer, pointer, row, _DW_DATA_TYPE_STRING, (void *)title); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5796 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5797 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5798 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5799 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5800 * Changes the title of a row already inserted in the container. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5801 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5802 * handle: Handle to window (widget) of container. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5803 * row: Zero based row of data being set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5804 * title: String title of the item. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5805 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5806 DW_FUNCTION_DEFINITION(dw_container_change_row_title, void, HWND handle, int row, const char *title) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5807 DW_FUNCTION_ADD_PARAM3(handle, row, title) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5808 DW_FUNCTION_NO_RETURN(dw_container_change_row_title) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5809 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, row, int, title, char *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5810 { |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5811 _dw_container_set_row_data_int(handle, NULL, row, _DW_DATA_TYPE_STRING, (void *)title); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5812 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5813 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5814 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5815 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5816 * Sets the data of a row in the container. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5817 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5818 * pointer: Pointer to the allocated memory in dw_container_alloc(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5819 * row: Zero based row of data being set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5820 * data: Data pointer. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5821 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5822 DW_FUNCTION_DEFINITION(dw_container_set_row_data, void, void *pointer, int row, void *data) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5823 DW_FUNCTION_ADD_PARAM3(pointer, row, data) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5824 DW_FUNCTION_NO_RETURN(dw_container_set_row_data) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5825 DW_FUNCTION_RESTORE_PARAM3(pointer, void *, row, int, data, void *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5826 { |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5827 _dw_container_set_row_data_int(pointer, pointer, row, _DW_DATA_TYPE_POINTER, data); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5828 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5829 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5830 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5831 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5832 * Changes the data of a row already inserted in the container. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5833 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5834 * handle: Handle to window (widget) of container. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5835 * row: Zero based row of data being set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5836 * data: Data pointer. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5837 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5838 DW_FUNCTION_DEFINITION(dw_container_change_row_data, void, HWND handle, int row, void *data) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5839 DW_FUNCTION_ADD_PARAM3(handle, row, data) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5840 DW_FUNCTION_NO_RETURN(dw_container_change_row_data) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5841 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, row, int, data, void *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5842 { |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
5843 _dw_container_set_row_data_int(handle, NULL, row, _DW_DATA_TYPE_POINTER, data); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5844 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5845 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5846 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5847 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5848 * Sets the title of a row in the container. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5849 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5850 * handle: Handle to the container window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5851 * pointer: Pointer to the allocated memory in dw_container_alloc(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5852 * rowcount: The number of rows to be inserted. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5853 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
5854 void API dw_container_insert(HWND handle, void *pointer, int rowcount) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5855 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5856 /* Don't need to do anything here */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5857 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5858 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5859 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5860 * Removes the first x rows from a container. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5861 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5862 * handle: Handle to the window (widget) to be deleted from. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5863 * rowcount: The number of rows to be deleted. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5864 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5865 DW_FUNCTION_DEFINITION(dw_container_delete, void, HWND handle, int rowcount) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5866 DW_FUNCTION_ADD_PARAM2(handle, rowcount) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5867 DW_FUNCTION_NO_RETURN(dw_container_delete) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5868 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, rowcount, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5869 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5870 GtkWidget *cont; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5871 GtkListStore *store = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5872 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5873 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5874 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5875 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5876 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5877 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(cont)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5878 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5879 if(store) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5880 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5881 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5882 int rows, z; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5883 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5884 rows = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cont), "_dw_rowcount")); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5885 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5886 for(z=0;z<rowcount;z++) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5887 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5888 if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, 0)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5889 gtk_list_store_remove(store, &iter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5890 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5891 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5892 if(rows - rowcount < 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5893 rows = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5894 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5895 rows -= rowcount; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5896 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5897 g_object_set_data(G_OBJECT(cont), "_dw_rowcount", GINT_TO_POINTER(rows)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5898 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5899 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5900 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5901 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5902 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5903 * Removes all rows from a container. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5904 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5905 * handle: Handle to the window (widget) to be cleared. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5906 * redraw: TRUE to cause the container to redraw immediately. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5907 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5908 DW_FUNCTION_DEFINITION(dw_container_clear, void, HWND handle, DW_UNUSED(int redraw)) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5909 DW_FUNCTION_ADD_PARAM2(handle, redraw) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5910 DW_FUNCTION_NO_RETURN(dw_container_clear) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5911 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, DW_UNUSED(redraw), int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5912 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5913 GtkWidget *cont; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5914 GtkListStore *store = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5915 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5916 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5917 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5918 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5919 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5920 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(cont)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5921 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5922 if(store) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5923 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5924 g_object_set_data(G_OBJECT(cont), "_dw_rowcount", GINT_TO_POINTER(0)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5925 g_object_set_data(G_OBJECT(cont), "_dw_insertpos", GINT_TO_POINTER(0)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5926 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5927 gtk_list_store_clear(store); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5928 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5929 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5930 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5931 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5932 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5933 * Scrolls container up or down. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5934 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5935 * handle: Handle to the window (widget) to be scrolled. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5936 * direction: DW_SCROLL_UP, DW_SCROLL_DOWN, DW_SCROLL_TOP or |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5937 * DW_SCROLL_BOTTOM. (rows is ignored for last two) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5938 * rows: The number of rows to be scrolled. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5939 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5940 DW_FUNCTION_DEFINITION(dw_container_scroll, void, HWND handle, int direction, long rows) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5941 DW_FUNCTION_ADD_PARAM3(handle, direction, rows) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5942 DW_FUNCTION_NO_RETURN(dw_container_scroll) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5943 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, direction, int, rows, long) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5944 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5945 GtkWidget *cont; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5946 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5947 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5948 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5949 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5950 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5951 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5952 GtkAdjustment *adjust = gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(cont)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5953 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5954 if(adjust) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5955 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5956 gint rowcount = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cont), "_dw_rowcount")); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5957 gdouble currpos = gtk_adjustment_get_value(adjust); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5958 gdouble upper = gtk_adjustment_get_upper(adjust); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5959 gdouble lower = gtk_adjustment_get_lower(adjust); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5960 gdouble change; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5961 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5962 /* Safety check */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5963 if(rowcount > 0) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5964 { |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5965 change = ((gdouble)rows/(gdouble)rowcount) * (upper - lower); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5966 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5967 switch(direction) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5968 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5969 case DW_SCROLL_TOP: |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5970 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5971 gtk_adjustment_set_value(adjust, lower); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5972 break; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5973 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5974 case DW_SCROLL_BOTTOM: |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5975 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5976 gtk_adjustment_set_value(adjust, upper); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5977 break; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5978 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5979 case DW_SCROLL_UP: |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5980 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5981 gdouble newpos = currpos - change; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5982 if(newpos < lower) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5983 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5984 newpos = lower; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5985 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5986 gtk_adjustment_set_value(adjust, newpos); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5987 break; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5988 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5989 case DW_SCROLL_DOWN: |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5990 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5991 gdouble newpos = currpos + change; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5992 if(newpos > upper) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5993 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5994 newpos = upper; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5995 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5996 gtk_adjustment_set_value(adjust, newpos); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5997 break; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5998 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
5999 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6000 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6001 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6002 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6003 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6004 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6005 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6006 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6007 * Starts a new query of a container. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6008 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6009 * handle: Handle to the window (widget) to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6010 * flags: If this parameter is DW_CRA_SELECTED it will only |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6011 * return items that are currently selected. Otherwise |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6012 * it will return all records in the container. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6013 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6014 DW_FUNCTION_DEFINITION(dw_container_query_start, char *, HWND handle, unsigned long flags) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6015 DW_FUNCTION_ADD_PARAM2(handle, flags) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6016 DW_FUNCTION_RETURN(dw_container_query_start, char *) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6017 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, flags, unsigned long) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6018 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6019 GtkWidget *cont; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6020 GtkListStore *store = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6021 char *retval = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6022 int type = flags & DW_CR_RETDATA ? _DW_DATA_TYPE_POINTER : _DW_DATA_TYPE_STRING; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6023 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6024 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6025 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6026 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6027 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6028 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(cont)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6029 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6030 if(store) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6031 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6032 /* These should be separate but right now this will work */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6033 if(flags & DW_CRA_SELECTED) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6034 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6035 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(cont)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6036 GList *list = gtk_tree_selection_get_selected_rows(sel, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6037 if(list) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6038 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6039 GtkTreePath *path = g_list_nth_data(list, 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6040 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6041 if(path) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6042 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6043 gint *indices = gtk_tree_path_get_indices(path); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6044 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6045 if(indices) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6046 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6047 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6048 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6049 if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, indices[0])) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6050 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6051 gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, type, &retval, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6052 g_object_set_data(G_OBJECT(cont), "_dw_querypos", GINT_TO_POINTER(1)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6053 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6054 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6055 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6056 g_list_foreach(list, (GFunc) gtk_tree_path_free, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6057 g_list_free(list); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6058 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6059 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6060 else if(flags & DW_CRA_CURSORED) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6061 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6062 GtkTreePath *path; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6063 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6064 gtk_tree_view_get_cursor(GTK_TREE_VIEW(cont), &path, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6065 if(path) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6066 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6067 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6068 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6069 if(gtk_tree_model_get_iter(GTK_TREE_MODEL(store), &iter, path)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6070 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6071 gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, type, &retval, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6072 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6073 gtk_tree_path_free(path); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6074 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6075 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6076 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6077 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6078 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6079 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6080 if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, 0)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6081 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6082 gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, type, &retval, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6083 g_object_set_data(G_OBJECT(cont), "_dw_querypos", GINT_TO_POINTER(1)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6084 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6085 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6086 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6087 /* If there is a title, duplicate it and free the temporary copy */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6088 if(retval && type == _DW_DATA_TYPE_STRING) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6089 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6090 char *temp = retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6091 retval = strdup(temp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6092 g_free(temp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6093 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6094 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6095 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6096 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6097 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6098 * Continues an existing query of a container. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6099 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6100 * handle: Handle to the window (widget) to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6101 * flags: If this parameter is DW_CRA_SELECTED it will only |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6102 * return items that are currently selected. Otherwise |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6103 * it will return all records in the container. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6104 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6105 DW_FUNCTION_DEFINITION(dw_container_query_next, char *, HWND handle, unsigned long flags) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6106 DW_FUNCTION_ADD_PARAM2(handle, flags) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6107 DW_FUNCTION_RETURN(dw_container_query_next, char *) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6108 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, flags, unsigned long) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6109 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6110 GtkWidget *cont; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6111 GtkListStore *store = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6112 char *retval = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6113 int type = flags & DW_CR_RETDATA ? _DW_DATA_TYPE_POINTER : _DW_DATA_TYPE_STRING; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6114 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6115 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6116 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6117 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6118 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6119 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(cont)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6120 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6121 if(store) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6122 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6123 int pos = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cont), "_dw_querypos")); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6124 int count = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6125 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6126 /* These should be separate but right now this will work */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6127 if(flags & DW_CRA_SELECTED) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6128 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6129 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(cont)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6130 GList *list = gtk_tree_selection_get_selected_rows(sel, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6131 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6132 if(list) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6133 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6134 GtkTreePath *path = g_list_nth_data(list, pos); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6135 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6136 if(path) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6137 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6138 gint *indices = gtk_tree_path_get_indices(path); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6139 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6140 if(indices) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6141 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6142 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6143 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6144 if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, indices[0])) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6145 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6146 gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, type, &retval, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6147 g_object_set_data(G_OBJECT(cont), "_dw_querypos", GINT_TO_POINTER(pos+1)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6148 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6149 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6150 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6151 g_list_foreach(list, (GFunc) gtk_tree_path_free, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6152 g_list_free(list); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6153 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6154 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6155 else if(flags & DW_CRA_CURSORED) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6156 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6157 /* There will only be one item cursored, |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6158 * retrieve it with dw_container_query_start() |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6159 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6160 retval = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6161 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6162 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6163 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6164 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6165 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6166 if(pos < count && gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, pos)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6167 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6168 gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, type, &retval, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6169 g_object_set_data(G_OBJECT(cont), "_dw_querypos", GINT_TO_POINTER(pos+1)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6170 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6171 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6172 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6173 /* If there is a title, duplicate it and free the temporary copy */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6174 if(retval && type == _DW_DATA_TYPE_STRING) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6175 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6176 char *temp = retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6177 retval = strdup(temp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6178 g_free(temp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6179 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6180 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6181 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6182 |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
6183 int _dw_find_iter(GtkListStore *store, GtkTreeIter *iter, void *data, int textcomp) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6184 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6185 int z, rows = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6186 void *thisdata; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6187 int retval = FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6188 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6189 for(z=0;z<rows;z++) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6190 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6191 if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), iter, NULL, z)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6192 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6193 /* Get either string from position 0 or pointer from position 1 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6194 gtk_tree_model_get(GTK_TREE_MODEL(store), iter, textcomp ? _DW_DATA_TYPE_STRING : _DW_DATA_TYPE_POINTER, &thisdata, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6195 if((textcomp && thisdata && strcmp((char *)thisdata, (char *)data) == 0) || (!textcomp && thisdata == data)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6196 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6197 retval = TRUE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6198 z = rows; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6199 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6200 if(textcomp && thisdata) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6201 g_free(thisdata); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6202 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6203 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6204 return retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6205 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6206 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6207 void _dw_container_cursor_int(HWND handle, void *data, int textcomp) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6208 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6209 GtkWidget *cont; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6210 GtkListStore *store = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6211 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6212 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6213 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6214 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6215 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6216 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(cont)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6217 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6218 if(store) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6219 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6220 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6221 |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
6222 if(_dw_find_iter(store, &iter, data, textcomp)) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6223 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6224 GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6225 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6226 if(path) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6227 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6228 gtk_tree_view_row_activated(GTK_TREE_VIEW(cont), path, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6229 gtk_tree_path_free(path); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6230 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6231 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6232 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6233 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6234 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6235 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6236 * Cursors the item with the text speficied, and scrolls to that item. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6237 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6238 * handle: Handle to the window (widget) to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6239 * text: Text usually returned by dw_container_query(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6240 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6241 DW_FUNCTION_DEFINITION(dw_container_cursor, void, HWND handle, const char *text) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6242 DW_FUNCTION_ADD_PARAM2(handle, text) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6243 DW_FUNCTION_NO_RETURN(dw_container_cursor) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6244 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, text, char *) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6245 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6246 _dw_container_cursor_int(handle, (void *)text, TRUE); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6247 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6248 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6249 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6250 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6251 * Cursors the item with the text speficied, and scrolls to that item. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6252 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6253 * handle: Handle to the window (widget) to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6254 * text: Text usually returned by dw_container_query(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6255 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6256 DW_FUNCTION_DEFINITION(dw_container_cursor_by_data, void, HWND handle, void *data) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6257 DW_FUNCTION_ADD_PARAM2(handle, data) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6258 DW_FUNCTION_NO_RETURN(dw_container_cursor_by_data) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6259 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, data, void *) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6260 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6261 _dw_container_cursor_int(handle, data, FALSE); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6262 DW_FUNCTION_RETURN_NOTHING; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6263 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6264 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6265 void _dw_container_delete_row_int(HWND handle, void *data, int textcomp) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6266 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6267 GtkWidget *cont; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6268 GtkListStore *store = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6269 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6270 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6271 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6272 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6273 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6274 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(cont)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6275 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6276 if(store) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6277 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6278 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6279 int rows = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cont), "_dw_rowcount")); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6280 |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
6281 if(_dw_find_iter(store, &iter, data, textcomp)) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6282 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6283 gtk_list_store_remove(store, &iter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6284 rows--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6285 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6286 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6287 g_object_set_data(G_OBJECT(cont), "_dw_rowcount", GINT_TO_POINTER(rows)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6288 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6289 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6290 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6291 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6292 * Deletes the item with the text speficied. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6293 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6294 * handle: Handle to the window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6295 * text: Text usually returned by dw_container_query(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6296 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6297 DW_FUNCTION_DEFINITION(dw_container_delete_row, void, HWND handle, const char *text) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6298 DW_FUNCTION_ADD_PARAM2(handle, text) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6299 DW_FUNCTION_NO_RETURN(dw_container_delete_row) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6300 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, text, char *) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6301 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6302 _dw_container_delete_row_int(handle, (void *)text, TRUE); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6303 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6304 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6305 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6306 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6307 * Deletes the item with the text speficied. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6308 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6309 * handle: Handle to the window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6310 * text: Text usually returned by dw_container_query(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6311 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6312 DW_FUNCTION_DEFINITION(dw_container_delete_row_by_data, void, HWND handle, void *data) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6313 DW_FUNCTION_ADD_PARAM2(handle, data) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6314 DW_FUNCTION_NO_RETURN(dw_container_delete_row_by_data) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6315 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, data, void *) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6316 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6317 _dw_container_delete_row_int(handle, data, FALSE); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6318 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6319 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6320 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6321 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6322 * Optimizes the column widths so that all data is visible. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6323 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6324 * handle: Handle to the window (widget) to be optimized. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6325 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6326 DW_FUNCTION_DEFINITION(dw_container_optimize, void, HWND handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6327 DW_FUNCTION_ADD_PARAM1(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6328 DW_FUNCTION_NO_RETURN(dw_container_optimize) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6329 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6330 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6331 GtkWidget *cont; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6332 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6333 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6334 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6335 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6336 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6337 gtk_tree_view_columns_autosize(GTK_TREE_VIEW(cont)); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6338 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6339 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6340 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6341 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6342 * Inserts an icon into the taskbar. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6343 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6344 * handle: Window handle that will handle taskbar icon messages. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6345 * icon: Icon handle to display in the taskbar. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6346 * bubbletext: Text to show when the mouse is above the icon. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6347 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
6348 void API dw_taskbar_insert(HWND handle, HICN icon, const char *bubbletext) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6349 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6350 /* TODO: Removed in GTK4.... no replacement? */ |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6351 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6352 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6353 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6354 * Deletes an icon from the taskbar. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6355 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6356 * handle: Window handle that was used with dw_taskbar_insert(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6357 * icon: Icon handle that was used with dw_taskbar_insert(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6358 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
6359 void API dw_taskbar_delete(HWND handle, HICN icon) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6360 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6361 /* TODO: Removed in GTK4.... no replacement? */ |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6362 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6363 |
2341
1a630cddf384
GTK4: Remove render widgets from the dirty list when they are destroyed.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2340
diff
changeset
|
6364 /* Make sure the widget is out of the dirty list if it is destroyed */ |
1a630cddf384
GTK4: Remove render widgets from the dirty list when they are destroyed.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2340
diff
changeset
|
6365 static void _dw_render_destroy(GtkWidget *widget, gpointer data) |
1a630cddf384
GTK4: Remove render widgets from the dirty list when they are destroyed.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2340
diff
changeset
|
6366 { |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6367 cairo_surface_t *surface = (cairo_surface_t *)g_object_get_data(G_OBJECT(widget), "_dw_cr_surface"); |
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6368 |
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6369 if(surface) |
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6370 cairo_surface_destroy(surface); |
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6371 |
2341
1a630cddf384
GTK4: Remove render widgets from the dirty list when they are destroyed.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2340
diff
changeset
|
6372 _dw_dirty_list = g_list_remove(_dw_dirty_list, widget); |
1a630cddf384
GTK4: Remove render widgets from the dirty list when they are destroyed.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2340
diff
changeset
|
6373 } |
1a630cddf384
GTK4: Remove render widgets from the dirty list when they are destroyed.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2340
diff
changeset
|
6374 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6375 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6376 * Creates a rendering context widget (window) to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6377 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6378 * id: An id to be used with dw_window_from_id. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6379 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6380 * A handle to the widget or NULL on failure. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6381 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6382 DW_FUNCTION_DEFINITION(dw_render_new, HWND, ULONG cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6383 DW_FUNCTION_ADD_PARAM1(cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6384 DW_FUNCTION_RETURN(dw_render_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6385 DW_FUNCTION_RESTORE_PARAM1(cid, ULONG) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6386 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6387 GtkWidget *tmp = gtk_drawing_area_new(); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6388 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
2341
1a630cddf384
GTK4: Remove render widgets from the dirty list when they are destroyed.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2340
diff
changeset
|
6389 g_signal_connect(G_OBJECT(tmp), "destroy", G_CALLBACK(_dw_render_destroy), NULL); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6390 gtk_widget_set_can_focus(tmp, TRUE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6391 gtk_widget_show(tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6392 if(_DWDefaultFont) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6393 dw_window_set_font(tmp, _DWDefaultFont); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6394 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6395 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6396 |
2355
fad0821cb953
Add new function dw_render_redraw() which will trigger expose event on render widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2347
diff
changeset
|
6397 /* |
fad0821cb953
Add new function dw_render_redraw() which will trigger expose event on render widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2347
diff
changeset
|
6398 * Invalidate the render widget triggering an expose event. |
fad0821cb953
Add new function dw_render_redraw() which will trigger expose event on render widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2347
diff
changeset
|
6399 * Parameters: |
fad0821cb953
Add new function dw_render_redraw() which will trigger expose event on render widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2347
diff
changeset
|
6400 * handle: A handle to a render widget to be redrawn. |
fad0821cb953
Add new function dw_render_redraw() which will trigger expose event on render widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2347
diff
changeset
|
6401 */ |
fad0821cb953
Add new function dw_render_redraw() which will trigger expose event on render widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2347
diff
changeset
|
6402 DW_FUNCTION_DEFINITION(dw_render_redraw, void, HWND handle) |
fad0821cb953
Add new function dw_render_redraw() which will trigger expose event on render widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2347
diff
changeset
|
6403 DW_FUNCTION_ADD_PARAM1(handle) |
fad0821cb953
Add new function dw_render_redraw() which will trigger expose event on render widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2347
diff
changeset
|
6404 DW_FUNCTION_NO_RETURN(dw_render_redraw) |
fad0821cb953
Add new function dw_render_redraw() which will trigger expose event on render widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2347
diff
changeset
|
6405 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
fad0821cb953
Add new function dw_render_redraw() which will trigger expose event on render widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2347
diff
changeset
|
6406 { |
fad0821cb953
Add new function dw_render_redraw() which will trigger expose event on render widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2347
diff
changeset
|
6407 if(handle && GTK_IS_WIDGET(handle)) |
fad0821cb953
Add new function dw_render_redraw() which will trigger expose event on render widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2347
diff
changeset
|
6408 gtk_widget_queue_draw(handle); |
2356
6f4f7882363c
GTK4: Fix compilation after last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2355
diff
changeset
|
6409 DW_FUNCTION_RETURN_NOTHING; |
2355
fad0821cb953
Add new function dw_render_redraw() which will trigger expose event on render widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2347
diff
changeset
|
6410 } |
fad0821cb953
Add new function dw_render_redraw() which will trigger expose event on render widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2347
diff
changeset
|
6411 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6412 /* Returns a GdkRGBA from a DW color */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6413 static GdkRGBA _dw_internal_color(unsigned long value) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6414 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6415 if(DW_RGB_COLOR & value) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6416 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6417 GdkRGBA color = { (gfloat)DW_RED_VALUE(value) / 255.0, (gfloat)DW_GREEN_VALUE(value) / 255.0, (gfloat)DW_BLUE_VALUE(value) / 255.0, 1.0 }; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6418 return color; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6419 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6420 if (value < 16) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6421 return _colors[value]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6422 return _colors[0]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6423 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6424 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6425 /* Sets the current foreground drawing color. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6426 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6427 * red: red value. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6428 * green: green value. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6429 * blue: blue value. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6430 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
6431 void API dw_color_foreground_set(unsigned long value) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6432 { |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6433 GdkRGBA color = _dw_internal_color(value); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6434 GdkRGBA *foreground = pthread_getspecific(_dw_fg_color_key); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6435 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6436 *foreground = color; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6437 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6438 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6439 /* Sets the current background drawing color. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6440 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6441 * red: red value. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6442 * green: green value. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6443 * blue: blue value. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6444 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
6445 void API dw_color_background_set(unsigned long value) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6446 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6447 GdkRGBA *background = pthread_getspecific(_dw_bg_color_key); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6448 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6449 if(value == DW_CLR_DEFAULT) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6450 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6451 if(background) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6452 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6453 pthread_setspecific(_dw_bg_color_key, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6454 free(background); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6455 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6456 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6457 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6458 { |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6459 GdkRGBA color = _dw_internal_color(value); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6460 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6461 if(!background) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6462 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6463 background = malloc(sizeof(GdkRGBA)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6464 pthread_setspecific(_dw_bg_color_key, background); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6465 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6466 *background = color; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6467 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6468 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6469 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6470 /* Allows the user to choose a color using the system's color chooser dialog. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6471 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6472 * value: current color |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6473 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6474 * The selected color or the current color if cancelled. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6475 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6476 DW_FUNCTION_DEFINITION(dw_color_choose, ULONG, ULONG value) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6477 DW_FUNCTION_ADD_PARAM1(value) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6478 DW_FUNCTION_RETURN(dw_color_choose, ULONG) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6479 DW_FUNCTION_RESTORE_PARAM1(value, ULONG) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6480 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6481 GtkColorChooser *cd; |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6482 GdkRGBA color = _dw_internal_color(value); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6483 unsigned long retcolor = value; |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6484 DWDialog *tmp = dw_dialog_new(NULL); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6485 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6486 cd = (GtkColorChooser *)gtk_color_chooser_dialog_new("Choose color", NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6487 gtk_color_chooser_set_use_alpha(cd, FALSE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6488 gtk_color_chooser_set_rgba(cd, &color); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6489 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6490 gtk_widget_show(GTK_WIDGET(cd)); |
2267
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
6491 g_signal_connect(G_OBJECT(cd), "response", G_CALLBACK(_dw_dialog_response), (gpointer)tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6492 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6493 if(DW_POINTER_TO_INT(dw_dialog_wait(tmp)) == GTK_RESPONSE_OK) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6494 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6495 gtk_color_chooser_get_rgba(cd, &color); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6496 retcolor = DW_RGB((int)(color.red * 255), (int)(color.green * 255), (int)(color.blue * 255)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6497 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6498 if(GTK_IS_WINDOW(cd)) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6499 gtk_window_destroy(GTK_WINDOW(cd)); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6500 DW_FUNCTION_RETURN_THIS(retcolor); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6501 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6502 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6503 /* Draw a point on a window (preferably a render window). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6504 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6505 * handle: Handle to the window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6506 * pixmap: Handle to the pixmap. (choose only one of these) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6507 * x: X coordinate. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6508 * y: Y coordinate. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6509 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6510 DW_FUNCTION_DEFINITION(dw_draw_point, void, HWND handle, HPIXMAP pixmap, int x, int y) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6511 DW_FUNCTION_ADD_PARAM4(handle, pixmap, x, y) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6512 DW_FUNCTION_NO_RETURN(dw_draw_point) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6513 DW_FUNCTION_RESTORE_PARAM4(handle, HWND, pixmap, HPIXMAP, x, int, y, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6514 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6515 cairo_t *cr = NULL; |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6516 int cached = FALSE; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6517 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6518 if(handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6519 { |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6520 cairo_surface_t *surface; |
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6521 |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
6522 if((cr = _dw_cairo_update(handle, -1, -1))) |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6523 cached = TRUE; |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6524 else if((surface = g_object_get_data(G_OBJECT(handle), "_dw_cr_surface"))) |
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6525 cr = cairo_create(surface); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6526 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6527 else if(pixmap) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6528 cr = cairo_create(pixmap->image); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6529 if(cr) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6530 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6531 GdkRGBA *foreground = pthread_getspecific(_dw_fg_color_key); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6532 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6533 gdk_cairo_set_source_rgba(cr, foreground); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6534 cairo_set_line_width(cr, 1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6535 cairo_move_to(cr, x, y); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6536 cairo_stroke(cr); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6537 /* If we are using a drawing context... |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6538 * we don't own the cairo context so don't destroy it. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6539 */ |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
6540 if(!cached) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6541 cairo_destroy(cr); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6542 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6543 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6544 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6545 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6546 /* Draw a line on a window (preferably a render window). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6547 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6548 * handle: Handle to the window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6549 * pixmap: Handle to the pixmap. (choose only one of these) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6550 * x1: First X coordinate. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6551 * y1: First Y coordinate. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6552 * x2: Second X coordinate. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6553 * y2: Second Y coordinate. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6554 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6555 DW_FUNCTION_DEFINITION(dw_draw_line, void, HWND handle, HPIXMAP pixmap, int x1, int y1, int x2, int y2) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6556 DW_FUNCTION_ADD_PARAM6(handle, pixmap, x1, y1, x2, y2) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6557 DW_FUNCTION_NO_RETURN(dw_draw_line) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6558 DW_FUNCTION_RESTORE_PARAM6(handle, HWND, pixmap, HPIXMAP, x1, int, y1, int, x2, int, y2, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6559 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6560 cairo_t *cr = NULL; |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6561 int cached = FALSE; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6562 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6563 if(handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6564 { |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6565 cairo_surface_t *surface; |
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6566 |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
6567 if((cr = _dw_cairo_update(handle, -1, -1))) |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6568 cached = TRUE; |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6569 else if((surface = g_object_get_data(G_OBJECT(handle), "_dw_cr_surface"))) |
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6570 cr = cairo_create(surface); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6571 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6572 else if(pixmap) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6573 cr = cairo_create(pixmap->image); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6574 if(cr) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6575 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6576 GdkRGBA *foreground = pthread_getspecific(_dw_fg_color_key); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6577 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6578 gdk_cairo_set_source_rgba(cr, foreground); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6579 cairo_set_line_width(cr, 1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6580 cairo_move_to(cr, x1, y1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6581 cairo_line_to(cr, x2, y2); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6582 cairo_stroke(cr); |
2280
7902be60c542
GTK4: More work on the draw and bitblt functions... still doesn't work
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2279
diff
changeset
|
6583 /* If we are using a drawing context... |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6584 * we don't own the cairo context so don't destroy it. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6585 */ |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
6586 if(!cached) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6587 cairo_destroy(cr); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6588 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6589 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6590 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6591 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6592 /* Draw a closed polygon on a window (preferably a render window). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6593 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6594 * handle: Handle to the window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6595 * pixmap: Handle to the pixmap. (choose only one of these) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6596 * flags: DW_DRAW_FILL (1) to fill the polygon or DW_DRAW_DEFAULT (0). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6597 * number of points |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6598 * x[]: X coordinates. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6599 * y[]: Y coordinates. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6600 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6601 DW_FUNCTION_DEFINITION(dw_draw_polygon, void, HWND handle, HPIXMAP pixmap, int flags, int npoints, int *x, int *y) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6602 DW_FUNCTION_ADD_PARAM6(handle, pixmap, flags, npoints, x, y) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6603 DW_FUNCTION_NO_RETURN(dw_draw_polygon) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6604 DW_FUNCTION_RESTORE_PARAM6(handle, HWND, pixmap, HPIXMAP, flags, int, npoints, int, x, int *, y, int *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6605 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6606 cairo_t *cr = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6607 int z; |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6608 int cached = FALSE; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6609 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6610 if(handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6611 { |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6612 cairo_surface_t *surface; |
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6613 |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
6614 if((cr = _dw_cairo_update(handle, -1, -1))) |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6615 cached = TRUE; |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6616 else if((surface = g_object_get_data(G_OBJECT(handle), "_dw_cr_surface"))) |
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6617 cr = cairo_create(surface); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6618 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6619 else if(pixmap) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6620 cr = cairo_create(pixmap->image); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6621 if(cr) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6622 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6623 GdkRGBA *foreground = pthread_getspecific(_dw_fg_color_key); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6624 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6625 if(flags & DW_DRAW_NOAA) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6626 cairo_set_antialias(cr, CAIRO_ANTIALIAS_NONE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6627 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6628 gdk_cairo_set_source_rgba(cr, foreground); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6629 cairo_set_line_width(cr, 1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6630 cairo_move_to(cr, x[0], y[0]); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6631 for(z=1;z<npoints;z++) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6632 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6633 cairo_line_to(cr, x[z], y[z]); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6634 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6635 if(flags & DW_DRAW_FILL) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6636 cairo_fill(cr); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6637 cairo_stroke(cr); |
2280
7902be60c542
GTK4: More work on the draw and bitblt functions... still doesn't work
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2279
diff
changeset
|
6638 /* If we are using a drawing context... |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6639 * we don't own the cairo context so don't destroy it. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6640 */ |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
6641 if(!cached) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6642 cairo_destroy(cr); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6643 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6644 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6645 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6646 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6647 /* Draw a rectangle on a window (preferably a render window). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6648 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6649 * handle: Handle to the window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6650 * pixmap: Handle to the pixmap. (choose only one of these) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6651 * flags: DW_DRAW_FILL (1) to fill the box or DW_DRAW_DEFAULT (0). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6652 * x: X coordinate. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6653 * y: Y coordinate. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6654 * width: Width of rectangle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6655 * height: Height of rectangle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6656 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6657 DW_FUNCTION_DEFINITION(dw_draw_rect, void, HWND handle, HPIXMAP pixmap, int flags, int x, int y, int width, int height) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6658 DW_FUNCTION_ADD_PARAM7(handle, pixmap, flags, x, y, width, height) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6659 DW_FUNCTION_NO_RETURN(dw_draw_rect) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6660 DW_FUNCTION_RESTORE_PARAM7(handle, HWND, pixmap, HPIXMAP, flags, int, x, int, y, int, width, int, height, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6661 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6662 cairo_t *cr = NULL; |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6663 int cached = FALSE; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6664 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6665 if(handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6666 { |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6667 cairo_surface_t *surface; |
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6668 |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
6669 if((cr = _dw_cairo_update(handle, -1, -1))) |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6670 cached = TRUE; |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6671 else if((surface = g_object_get_data(G_OBJECT(handle), "_dw_cr_surface"))) |
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6672 cr = cairo_create(surface); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6673 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6674 else if(pixmap) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6675 cr = cairo_create(pixmap->image); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6676 if(cr) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6677 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6678 GdkRGBA *foreground = pthread_getspecific(_dw_fg_color_key); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6679 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6680 if(flags & DW_DRAW_NOAA) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6681 cairo_set_antialias(cr, CAIRO_ANTIALIAS_NONE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6682 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6683 gdk_cairo_set_source_rgba(cr, foreground); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6684 cairo_set_line_width(cr, 1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6685 cairo_move_to(cr, x, y); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6686 cairo_line_to(cr, x, y + height); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6687 cairo_line_to(cr, x + width, y + height); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6688 cairo_line_to(cr, x + width, y); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6689 if(flags & DW_DRAW_FILL) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6690 cairo_fill(cr); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6691 cairo_stroke(cr); |
2280
7902be60c542
GTK4: More work on the draw and bitblt functions... still doesn't work
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2279
diff
changeset
|
6692 /* If we are using a drawing context... |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6693 * we don't own the cairo context so don't destroy it. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6694 */ |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
6695 if(!cached) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6696 cairo_destroy(cr); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6697 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6698 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6699 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6700 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6701 /* Draw an arc on a window (preferably a render window). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6702 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6703 * handle: Handle to the window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6704 * pixmap: Handle to the pixmap. (choose only one of these) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6705 * flags: DW_DRAW_FILL (1) to fill the arc or DW_DRAW_DEFAULT (0). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6706 * DW_DRAW_FULL will draw a complete circle/elipse. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6707 * xorigin: X coordinate of center of arc. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6708 * yorigin: Y coordinate of center of arc. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6709 * x1: X coordinate of first segment of arc. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6710 * y1: Y coordinate of first segment of arc. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6711 * x2: X coordinate of second segment of arc. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6712 * y2: Y coordinate of second segment of arc. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6713 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6714 DW_FUNCTION_DEFINITION(dw_draw_arc, void, HWND handle, HPIXMAP pixmap, int flags, int xorigin, int yorigin, int x1, int y1, int x2, int y2) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6715 DW_FUNCTION_ADD_PARAM9(handle, pixmap, flags, xorigin, yorigin, x1, y1, x2, y2) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6716 DW_FUNCTION_NO_RETURN(dw_draw_arc) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6717 DW_FUNCTION_RESTORE_PARAM9(handle, HWND, pixmap, HPIXMAP, flags, int, xorigin, int, yorigin, int, x1, int, y1, int, x2, int, y2, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6718 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6719 cairo_t *cr = NULL; |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6720 int cached = FALSE; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6721 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6722 if(handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6723 { |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6724 cairo_surface_t *surface; |
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6725 |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
6726 if((cr = _dw_cairo_update(handle, -1, -1))) |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6727 cached = TRUE; |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6728 else if((surface = g_object_get_data(G_OBJECT(handle), "_dw_cr_surface"))) |
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6729 cr = cairo_create(surface); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6730 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6731 else if(pixmap) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6732 cr = cairo_create(pixmap->image); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6733 if(cr) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6734 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6735 GdkRGBA *foreground = pthread_getspecific(_dw_fg_color_key); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6736 int width = abs(x2-x1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6737 float scale = fabs((float)(y2-y1))/(float)width; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6738 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6739 if(flags & DW_DRAW_NOAA) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6740 cairo_set_antialias(cr, CAIRO_ANTIALIAS_NONE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6741 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6742 gdk_cairo_set_source_rgba(cr, foreground); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6743 cairo_set_line_width(cr, 1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6744 if(scale != 1.0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6745 cairo_scale(cr, 1.0, scale); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6746 if(flags & DW_DRAW_FULL) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6747 cairo_arc(cr, xorigin, yorigin / scale, width/2, 0, M_PI*2); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6748 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6749 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6750 double dx = xorigin - x1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6751 double dy = yorigin - y1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6752 double r = sqrt(dx*dx + dy*dy); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6753 double a1 = atan2((y1-yorigin), (x1-xorigin)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6754 double a2 = atan2((y2-yorigin), (x2-xorigin)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6755 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6756 cairo_arc(cr, xorigin, yorigin, r, a1, a2); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6757 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6758 if(flags & DW_DRAW_FILL) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6759 cairo_fill(cr); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6760 cairo_stroke(cr); |
2280
7902be60c542
GTK4: More work on the draw and bitblt functions... still doesn't work
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2279
diff
changeset
|
6761 /* If we are using a drawing context... |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6762 * we don't own the cairo context so don't destroy it. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6763 */ |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
6764 if(!cached) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6765 cairo_destroy(cr); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6766 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6767 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6768 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6769 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6770 /* Draw text on a window (preferably a render window). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6771 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6772 * handle: Handle to the window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6773 * pixmap: Handle to the pixmap. (choose only one of these) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6774 * x: X coordinate. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6775 * y: Y coordinate. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6776 * text: Text to be displayed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6777 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6778 DW_FUNCTION_DEFINITION(dw_draw_text, void, HWND handle, HPIXMAP pixmap, int x, int y, const char *text) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6779 DW_FUNCTION_ADD_PARAM5(handle, pixmap, x, y, text) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6780 DW_FUNCTION_NO_RETURN(dw_draw_text) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6781 DW_FUNCTION_RESTORE_PARAM5(handle, HWND, pixmap, HPIXMAP, x, int, y, int, text, const char *) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6782 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6783 if(text) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6784 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6785 cairo_t *cr = NULL; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6786 PangoFontDescription *font; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6787 char *tmpname, *fontname = "monospace 10"; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6788 int cached = FALSE; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6789 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6790 if(handle) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6791 { |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6792 cairo_surface_t *surface; |
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6793 |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
6794 if((cr = _dw_cairo_update(handle, -1, -1))) |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6795 cached = TRUE; |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6796 else if((surface = g_object_get_data(G_OBJECT(handle), "_dw_cr_surface"))) |
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
6797 cr = cairo_create(surface); |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6798 if((tmpname = (char *)g_object_get_data(G_OBJECT(handle), "_dw_fontname"))) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6799 fontname = tmpname; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6800 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6801 else if(pixmap) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6802 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6803 if(pixmap->font) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6804 fontname = pixmap->font; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6805 else if(pixmap->handle && (tmpname = (char *)g_object_get_data(G_OBJECT(pixmap->handle), "_dw_fontname"))) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6806 fontname = tmpname; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6807 cr = cairo_create(pixmap->image); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6808 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6809 if(cr) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6810 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6811 font = pango_font_description_from_string(fontname); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6812 if(font) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6813 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6814 PangoContext *context = pango_cairo_create_context(cr); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6815 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6816 if(context) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6817 { |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6818 PangoLayout *layout = pango_layout_new(context); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6819 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6820 if(layout) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6821 { |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6822 GdkRGBA *foreground = pthread_getspecific(_dw_fg_color_key); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6823 GdkRGBA *background = pthread_getspecific(_dw_bg_color_key); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6824 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6825 pango_layout_set_font_description(layout, font); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6826 pango_layout_set_text(layout, text, strlen(text)); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6827 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6828 gdk_cairo_set_source_rgba(cr, foreground); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6829 /* Create a background color attribute if required */ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6830 if(background) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6831 { |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6832 PangoAttrList *list = pango_layout_get_attributes(layout); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6833 PangoAttribute *attr = pango_attr_background_new((guint16)(background->red * 65535), |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6834 (guint16)(background->green * 65535), |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6835 (guint16)(background->blue* 65535)); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6836 if(!list) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6837 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6838 list = pango_attr_list_new(); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6839 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6840 pango_attr_list_change(list, attr); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6841 pango_layout_set_attributes(layout, list); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6842 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6843 /* Do the drawing */ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6844 cairo_move_to(cr, x, y); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6845 pango_cairo_show_layout (cr, layout); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6846 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6847 g_object_unref(layout); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6848 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6849 g_object_unref(context); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6850 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6851 pango_font_description_free(font); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6852 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6853 /* If we are using a drawing context... |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6854 * we don't own the cairo context so don't destroy it. |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6855 */ |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
6856 if(!cached) |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6857 cairo_destroy(cr); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6858 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6859 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
6860 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6861 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6862 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6863 /* Query the width and height of a text string. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6864 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6865 * handle: Handle to the window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6866 * pixmap: Handle to the pixmap. (choose only one of these) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6867 * text: Text to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6868 * width: Pointer to a variable to be filled in with the width. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6869 * height Pointer to a variable to be filled in with the height. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6870 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6871 DW_FUNCTION_DEFINITION(dw_font_text_extents_get, void, HWND handle, HPIXMAP pixmap, const char *text, int *width, int *height) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6872 DW_FUNCTION_ADD_PARAM5(handle, pixmap, text, width, height) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6873 DW_FUNCTION_NO_RETURN(dw_font_text_extents_get) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6874 DW_FUNCTION_RESTORE_PARAM5(handle, HWND, pixmap, HPIXMAP, text, const char *, width, int *, height, int *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6875 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6876 PangoFontDescription *font; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6877 char *fontname = NULL; |
2336
dd1b2cc95c91
GTK4: Don't unref the PangoContext returned from gtk_widget_get_pango_context().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2335
diff
changeset
|
6878 int free_fontname = FALSE; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6879 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6880 if(text) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6881 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6882 if(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6883 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6884 fontname = (char *)g_object_get_data(G_OBJECT(handle), "_dw_fontname"); |
2336
dd1b2cc95c91
GTK4: Don't unref the PangoContext returned from gtk_widget_get_pango_context().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2335
diff
changeset
|
6885 if(fontname == NULL) |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6886 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6887 fontname = dw_window_get_font(handle); |
2336
dd1b2cc95c91
GTK4: Don't unref the PangoContext returned from gtk_widget_get_pango_context().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2335
diff
changeset
|
6888 free_fontname = TRUE; |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6889 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6890 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6891 else if(pixmap) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6892 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6893 if(pixmap->font) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6894 fontname = pixmap->font; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6895 else if(pixmap->handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6896 fontname = (char *)g_object_get_data(G_OBJECT(pixmap->handle), "_dw_fontname"); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6897 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6898 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6899 font = pango_font_description_from_string(fontname ? fontname : "monospace 10"); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6900 if(font) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6901 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6902 PangoContext *context = gtk_widget_get_pango_context(pixmap ? pixmap->handle : handle); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6903 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6904 if(context) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6905 { |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6906 PangoLayout *layout = pango_layout_new(context); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6907 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6908 if(layout) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6909 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6910 PangoRectangle rect; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6911 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6912 pango_layout_set_font_description(layout, font); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6913 pango_layout_set_text(layout, text, -1); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6914 pango_layout_get_pixel_extents(layout, NULL, &rect); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6915 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6916 if(width) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6917 *width = rect.width; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6918 if(height) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6919 *height = rect.height; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6920 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6921 g_object_unref(layout); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6922 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6923 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6924 pango_font_description_free(font); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6925 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6926 if(free_fontname) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6927 free(fontname); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6928 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
6929 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6930 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6931 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6932 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6933 * Creates a pixmap with given parameters. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6934 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6935 * handle: Window handle the pixmap is associated with. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6936 * or zero to enable this pixmap to be written |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6937 * off the screen to reduce flicker |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6938 * width: Width of the pixmap in pixels. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6939 * height: Height of the pixmap in pixels. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6940 * depth: Color depth of the pixmap. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6941 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6942 * A handle to a pixmap or NULL on failure. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6943 */ |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6944 DW_FUNCTION_DEFINITION(dw_pixmap_new, HPIXMAP, HWND handle, unsigned long width, unsigned long height, DW_UNUSED(int depth)) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6945 DW_FUNCTION_ADD_PARAM4(handle, width, height, depth) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6946 DW_FUNCTION_RETURN(dw_pixmap_new, HPIXMAP) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6947 DW_FUNCTION_RESTORE_PARAM4(handle, HWND, width, unsigned long, height, unsigned long, DW_UNUSED(depth), int) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6948 { |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6949 HPIXMAP pixmap = 0; |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6950 |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6951 if((pixmap = calloc(1,sizeof(struct _hpixmap)))) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6952 { |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6953 pixmap->width = width; |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6954 pixmap->height = height; |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6955 pixmap->handle = handle; |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6956 /* Depth needs to be divided by 3... but for the RGB colorspace... |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6957 * only 8 bits per sample is allowed, so to avoid issues just pass 8 for now. |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6958 */ |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6959 pixmap->pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, FALSE, 8, width, height); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6960 pixmap->image = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6961 } |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6962 DW_FUNCTION_RETURN_THIS(pixmap); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6963 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6964 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6965 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6966 * Creates a pixmap from a file. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6967 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6968 * handle: Window handle the pixmap is associated with. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6969 * filename: Name of the file, omit extention to have |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6970 * DW pick the appropriate file extension. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6971 * (BMP on OS/2 or Windows, XPM on Unix) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6972 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6973 * A handle to a pixmap or NULL on failure. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6974 */ |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6975 DW_FUNCTION_DEFINITION(dw_pixmap_new_from_file, HPIXMAP, HWND handle, const char *filename) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6976 DW_FUNCTION_ADD_PARAM2(handle, filename) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6977 DW_FUNCTION_RETURN(dw_pixmap_new_from_file, HPIXMAP) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6978 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, filename, const char *) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6979 { |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6980 HPIXMAP pixmap = 0; |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6981 |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6982 if(filename && *filename && (pixmap = calloc(1,sizeof(struct _hpixmap)))) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6983 { |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6984 char *file = alloca(strlen(filename) + 6); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6985 |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6986 strcpy(file, filename); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6987 |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6988 /* check if we can read from this file (it exists and read permission) */ |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6989 if(access(file, 04) != 0) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6990 { |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6991 int i = 0; |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6992 |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6993 /* Try with various extentions */ |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6994 while(_dw_image_exts[i] && !pixmap->pixbuf) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6995 { |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6996 strcpy(file, filename); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6997 strcat(file, _dw_image_exts[i]); |
2321
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
6998 if(access(file, 04) == 0) |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
6999 pixmap->pixbuf = gdk_pixbuf_new_from_file(file, NULL); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7000 i++; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7001 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7002 } |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7003 else |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7004 pixmap->pixbuf = gdk_pixbuf_new_from_file(file, NULL); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7005 |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7006 if(pixmap->pixbuf) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7007 { |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7008 pixmap->image = cairo_image_surface_create_from_png(file); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7009 pixmap->width = gdk_pixbuf_get_width(pixmap->pixbuf); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7010 pixmap->height = gdk_pixbuf_get_height(pixmap->pixbuf); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7011 pixmap->handle = handle; |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7012 } |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7013 else |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7014 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7015 free(pixmap); |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7016 pixmap = 0; |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7017 } |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7018 } |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7019 DW_FUNCTION_RETURN_THIS(pixmap); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7020 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7021 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7022 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7023 * Creates a pixmap from data |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7024 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7025 * handle: Window handle the pixmap is associated with. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7026 * data: Source of image data |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7027 * DW pick the appropriate file extension. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7028 * (BMP on OS/2 or Windows, XPM on Unix) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7029 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7030 * A handle to a pixmap or NULL on failure. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7031 */ |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7032 DW_FUNCTION_DEFINITION(dw_pixmap_new_from_data, HPIXMAP, HWND handle, const char *data, int len) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7033 DW_FUNCTION_ADD_PARAM3(handle, data, len) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7034 DW_FUNCTION_RETURN(dw_pixmap_new_from_data, HPIXMAP) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7035 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, data, const char *, len, int) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7036 { |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7037 HPIXMAP pixmap = 0; |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7038 |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7039 if(data && len > 0 && (pixmap = calloc(1,sizeof(struct _hpixmap)))) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7040 { |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7041 int fd, written = -1; |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7042 char template[] = "/tmp/dwpixmapXXXXXX"; |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7043 |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7044 /* |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7045 * A real hack; create a temporary file and write the contents |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7046 * of the data to the file |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7047 */ |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7048 if((fd = mkstemp(template)) != -1) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7049 { |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7050 written = write(fd, data, len); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7051 close(fd); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7052 } |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7053 /* Bail if we couldn't write full file */ |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7054 if(fd != -1 && written == len) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7055 { |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7056 pixmap->pixbuf = gdk_pixbuf_new_from_file(template, NULL); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7057 pixmap->image = cairo_image_surface_create_from_png(template); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7058 pixmap->width = gdk_pixbuf_get_width(pixmap->pixbuf); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7059 pixmap->height = gdk_pixbuf_get_height(pixmap->pixbuf); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7060 /* remove our temporary file */ |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7061 unlink(template); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7062 pixmap->handle = handle; |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7063 } |
2316
1f85311baa65
GTK4: dw_pixmap_new_from_data() should return NULL on failure.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2315
diff
changeset
|
7064 else |
1f85311baa65
GTK4: dw_pixmap_new_from_data() should return NULL on failure.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2315
diff
changeset
|
7065 { |
1f85311baa65
GTK4: dw_pixmap_new_from_data() should return NULL on failure.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2315
diff
changeset
|
7066 free(pixmap); |
1f85311baa65
GTK4: dw_pixmap_new_from_data() should return NULL on failure.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2315
diff
changeset
|
7067 pixmap = 0; |
1f85311baa65
GTK4: dw_pixmap_new_from_data() should return NULL on failure.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2315
diff
changeset
|
7068 } |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7069 } |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7070 DW_FUNCTION_RETURN_THIS(pixmap); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7071 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7072 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7073 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7074 * Sets the transparent color for a pixmap |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7075 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7076 * pixmap: Handle to a pixmap returned by |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7077 * dw_pixmap_new.. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7078 * color: transparent color |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7079 * Note: This does nothing on GTK+ as transparency |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7080 * is handled automatically |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7081 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7082 void API dw_pixmap_set_transparent_color(HPIXMAP pixmap, unsigned long color) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7083 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7084 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7085 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7086 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7087 * Creates a pixmap from internal resource graphic specified by id. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7088 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7089 * handle: Window handle the pixmap is associated with. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7090 * id: Resource ID associated with requested pixmap. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7091 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7092 * A handle to a pixmap or NULL on failure. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7093 */ |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7094 DW_FUNCTION_DEFINITION(dw_pixmap_grab, HPIXMAP, HWND handle, ULONG id) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7095 DW_FUNCTION_ADD_PARAM2(handle, id) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7096 DW_FUNCTION_RETURN(dw_pixmap_grab, HPIXMAP) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7097 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, id, ULONG) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7098 { |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7099 HPIXMAP pixmap = 0; |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7100 |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7101 if((pixmap = calloc(1,sizeof(struct _hpixmap)))) |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7102 { |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7103 pixmap->pixbuf = gdk_pixbuf_copy(_dw_find_pixbuf((HICN)id, &pixmap->width, &pixmap->height)); |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7104 pixmap->handle = handle; |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7105 } |
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7106 DW_FUNCTION_RETURN_THIS(pixmap); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7107 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7108 |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
7109 static void _dw_flush_dirty(gpointer widget, gpointer data) |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
7110 { |
2340
d797d1cec06b
GTK4: Remove some debug code and safety checks in new dw_flush() code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2339
diff
changeset
|
7111 if(widget && GTK_IS_WIDGET(widget)) |
d797d1cec06b
GTK4: Remove some debug code and safety checks in new dw_flush() code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2339
diff
changeset
|
7112 gtk_widget_queue_draw(GTK_WIDGET(widget)); |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
7113 } |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
7114 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7115 /* Call this after drawing to the screen to make sure |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7116 * anything you have drawn is visible. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7117 */ |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
7118 DW_FUNCTION_DEFINITION(dw_flush, void) |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
7119 DW_FUNCTION_ADD_PARAM |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
7120 DW_FUNCTION_NO_RETURN(dw_flush) |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
7121 { |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
7122 g_list_foreach(_dw_dirty_list, _dw_flush_dirty, NULL); |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
7123 g_list_free(_dw_dirty_list); |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
7124 _dw_dirty_list = NULL; |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
7125 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7126 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7127 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7128 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7129 * Sets the font used by a specified pixmap. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7130 * Normally the pixmap font is obtained from the associated window handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7131 * However this can be used to override that, or for pixmaps with no window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7132 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7133 * pixmap: Handle to a pixmap returned by dw_pixmap_new() or |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7134 * passed to the application via a callback. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7135 * fontname: Name and size of the font in the form "size.fontname" |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7136 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7137 * DW_ERROR_NONE on success and DW_ERROR_GENERAL on failure. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7138 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7139 int API dw_pixmap_set_font(HPIXMAP pixmap, const char *fontname) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7140 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7141 if(pixmap) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7142 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7143 char *oldfont = pixmap->font; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7144 |
2315
112595f9a645
GTK4: Remove unnecessary cruft and move pixmap functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2314
diff
changeset
|
7145 pixmap->font = _dw_convert_font(fontname); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7146 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7147 if(oldfont) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7148 free(oldfont); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7149 return DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7150 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7151 return DW_ERROR_GENERAL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7152 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7153 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7154 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7155 * Destroys an allocated pixmap. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7156 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7157 * pixmap: Handle to a pixmap returned by |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7158 * dw_pixmap_new.. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7159 */ |
2316
1f85311baa65
GTK4: dw_pixmap_new_from_data() should return NULL on failure.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2315
diff
changeset
|
7160 DW_FUNCTION_DEFINITION(dw_pixmap_destroy, void, HPIXMAP pixmap) |
1f85311baa65
GTK4: dw_pixmap_new_from_data() should return NULL on failure.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2315
diff
changeset
|
7161 DW_FUNCTION_ADD_PARAM1(pixmap) |
1f85311baa65
GTK4: dw_pixmap_new_from_data() should return NULL on failure.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2315
diff
changeset
|
7162 DW_FUNCTION_NO_RETURN(dw_pixmap_destroy) |
1f85311baa65
GTK4: dw_pixmap_new_from_data() should return NULL on failure.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2315
diff
changeset
|
7163 DW_FUNCTION_RESTORE_PARAM1(pixmap, HPIXMAP) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7164 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7165 g_object_unref(G_OBJECT(pixmap->pixbuf)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7166 cairo_surface_destroy(pixmap->image); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7167 if(pixmap->font) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7168 free(pixmap->font); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7169 free(pixmap); |
2316
1f85311baa65
GTK4: dw_pixmap_new_from_data() should return NULL on failure.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2315
diff
changeset
|
7170 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7171 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7172 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7173 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7174 * Copies from one item to another. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7175 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7176 * dest: Destination window handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7177 * destp: Destination pixmap. (choose only one). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7178 * xdest: X coordinate of destination. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7179 * ydest: Y coordinate of destination. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7180 * width: Width of area to copy. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7181 * height: Height of area to copy. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7182 * src: Source window handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7183 * srcp: Source pixmap. (choose only one). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7184 * xsrc: X coordinate of source. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7185 * ysrc: Y coordinate of source. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7186 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7187 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) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7188 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7189 dw_pixmap_stretch_bitblt(dest, destp, xdest, ydest, width, height, src, srcp, xsrc, ysrc, -1, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7190 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7191 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7192 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7193 * Copies from one surface to another allowing for stretching. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7194 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7195 * dest: Destination window handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7196 * destp: Destination pixmap. (choose only one). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7197 * xdest: X coordinate of destination. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7198 * ydest: Y coordinate of destination. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7199 * width: Width of the target area. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7200 * height: Height of the target area. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7201 * src: Source window handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7202 * srcp: Source pixmap. (choose only one). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7203 * xsrc: X coordinate of source. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7204 * ysrc: Y coordinate of source. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7205 * srcwidth: Width of area to copy. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7206 * srcheight: Height of area to copy. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7207 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7208 * DW_ERROR_NONE on success and DW_ERROR_GENERAL on failure. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7209 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
7210 DW_FUNCTION_DEFINITION(dw_pixmap_stretch_bitblt, int, HWND dest, HPIXMAP destp, int xdest, int ydest, int width, int height, HWND src, HPIXMAP srcp, int xsrc, int ysrc, int srcwidth, int srcheight) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
7211 DW_FUNCTION_ADD_PARAM12(dest, destp, xdest, ydest, width, height, src, srcp, xsrc, ysrc, srcwidth, srcheight) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
7212 DW_FUNCTION_RETURN(dw_pixmap_stretch_bitblt, int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
7213 DW_FUNCTION_RESTORE_PARAM12(dest, HWND, destp, HPIXMAP, xdest, int, ydest, int, width, int, height, int, src, HWND, srcp, HPIXMAP, xsrc, int, ysrc, int, srcwidth, int, srcheight, int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
7214 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7215 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7216 cairo_t *cr = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7217 int retval = DW_ERROR_GENERAL; |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
7218 int cached = FALSE; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7219 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7220 if(dest) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7221 { |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
7222 cairo_surface_t *surface; |
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
7223 |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
7224 if((cr = _dw_cairo_update(dest, -1, -1))) |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
7225 cached = TRUE; |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
7226 else if((surface = g_object_get_data(G_OBJECT(dest), "_dw_cr_surface"))) |
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
7227 cr = cairo_create(surface); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7228 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7229 else if(destp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7230 cr = cairo_create(destp->image); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7231 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7232 if(cr) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7233 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7234 double xscale = 1, yscale = 1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7235 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7236 if(srcwidth != -1 && srcheight != -1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7237 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7238 xscale = (double)width / (double)srcwidth; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7239 yscale = (double)height / (double)srcheight; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7240 cairo_scale(cr, xscale, yscale); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7241 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7242 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7243 if(src) |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
7244 { |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
7245 cairo_surface_t *surface = g_object_get_data(G_OBJECT(src), "_dw_cr_surface"); |
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
7246 if(surface) |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
7247 cairo_set_source_surface(cr, surface, (xdest + xsrc) / xscale, (ydest + ysrc) / yscale); |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
7248 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7249 else if(srcp) |
2362
4367da529f5a
GTK4: Fix direct drawing onto render widgets. Can't cache the cairo_t.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2356
diff
changeset
|
7250 cairo_set_source_surface(cr, srcp->image, (xdest + xsrc) / xscale, (ydest + ysrc) / yscale); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7251 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7252 cairo_rectangle(cr, xdest / xscale, ydest / yscale, width, height); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7253 cairo_fill(cr); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7254 /* If we are using a drawing context... |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7255 * we don't own the cairo context so don't destroy it. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7256 */ |
2337
ef078d219bfc
GTK4: Add a shadow surface to GtkDrawingArea widgets, which all the drawing
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2336
diff
changeset
|
7257 if(!cached) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7258 cairo_destroy(cr); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7259 retval = DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7260 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
7261 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7262 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7263 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7264 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7265 * Emits a beep. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7266 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7267 * freq: Frequency. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7268 * dur: Duration. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7269 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7270 void API dw_beep(int freq, int dur) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7271 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7272 gdk_display_beep(gdk_display_get_default()); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7273 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7274 |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
7275 void _dw_strlwr(char *buf) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7276 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7277 int z, len = strlen(buf); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7278 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7279 for(z=0;z<len;z++) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7280 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7281 if(buf[z] >= 'A' && buf[z] <= 'Z') |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7282 buf[z] -= 'A' - 'a'; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7283 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7284 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7285 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7286 /* Open a shared library and return a handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7287 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7288 * name: Base name of the shared library. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7289 * handle: Pointer to a module handle, |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7290 * will be filled in with the handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7291 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7292 int API dw_module_load(const char *name, HMOD *handle) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7293 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7294 int len; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7295 char *newname; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7296 char errorbuf[1025] = {0}; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7297 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7298 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7299 if(!handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7300 return -1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7301 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7302 if((len = strlen(name)) == 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7303 return -1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7304 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7305 /* Lenth + "lib" + ".so" + NULL */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7306 newname = malloc(len + 7); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7307 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7308 if(!newname) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7309 return -1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7310 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7311 sprintf(newname, "lib%s.so", name); |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
7312 _dw_strlwr(newname); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7313 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7314 *handle = dlopen(newname, RTLD_NOW); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7315 if(*handle == NULL) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7316 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7317 strncpy(errorbuf, dlerror(), 1024); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7318 printf("%s\n", errorbuf); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7319 sprintf(newname, "lib%s.so", name); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7320 *handle = dlopen(newname, RTLD_NOW); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7321 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7322 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7323 free(newname); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7324 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7325 return (NULL == *handle) ? -1 : 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7326 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7327 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7328 /* Queries the address of a symbol within open handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7329 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7330 * handle: Module handle returned by dw_module_load() |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7331 * name: Name of the symbol you want the address of. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7332 * func: A pointer to a function pointer, to obtain |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7333 * the address. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7334 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7335 int API dw_module_symbol(HMOD handle, const char *name, void**func) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7336 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7337 if(!func || !name) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7338 return -1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7339 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7340 if(strlen(name) == 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7341 return -1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7342 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7343 *func = (void*)dlsym(handle, name); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7344 return (NULL == *func); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7345 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7346 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7347 /* Frees the shared library previously opened. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7348 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7349 * handle: Module handle returned by dw_module_load() |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7350 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7351 int API dw_module_close(HMOD handle) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7352 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7353 if(handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7354 return dlclose(handle); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7355 return 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7356 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7357 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7358 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7359 * Returns the handle to an unnamed mutex semaphore. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7360 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7361 HMTX API dw_mutex_new(void) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7362 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7363 HMTX mutex = malloc(sizeof(pthread_mutex_t)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7364 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7365 pthread_mutex_init(mutex, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7366 return mutex; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7367 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7368 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7369 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7370 * Closes a semaphore created by dw_mutex_new(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7371 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7372 * mutex: The handle to the mutex returned by dw_mutex_new(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7373 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7374 void API dw_mutex_close(HMTX mutex) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7375 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7376 if(mutex) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7377 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7378 pthread_mutex_destroy(mutex); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7379 free(mutex); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7380 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7381 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7382 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7383 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7384 * Tries to gain access to the semaphore, if it can't it blocks. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7385 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7386 * mutex: The handle to the mutex returned by dw_mutex_new(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7387 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7388 void API dw_mutex_lock(HMTX mutex) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7389 { |
2338
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7390 /* We need to handle locks from the main thread differently... |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7391 * since we can't stop message processing... otherwise we |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7392 * will deadlock... so try to acquire the lock and continue |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7393 * processing messages in between tries. |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7394 */ |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7395 if(_dw_thread == pthread_self()) |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7396 { |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7397 while(pthread_mutex_trylock(mutex) != 0) |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7398 { |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7399 /* Process any pending events */ |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7400 if(g_main_context_pending(NULL)) |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7401 { |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7402 do |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7403 { |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7404 g_main_context_iteration(NULL, FALSE); |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7405 } |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7406 while(g_main_context_pending(NULL)); |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7407 } |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7408 else |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7409 sched_yield(); |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7410 } |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7411 } |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7412 else |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7413 { |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7414 pthread_mutex_lock(mutex); |
b9b10bb1f689
GTK4: Port dw_mutex_lock() fix from Mac since the GTK4 thread safety is
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2337
diff
changeset
|
7415 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7416 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7417 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7418 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7419 * Tries to gain access to the semaphore. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7420 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7421 * mutex: The handle to the mutex returned by dw_mutex_new(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7422 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7423 * DW_ERROR_NONE on success, DW_ERROR_TIMEOUT if it is already locked. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7424 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7425 int API dw_mutex_trylock(HMTX mutex) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7426 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7427 if(pthread_mutex_trylock(mutex) == 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7428 return DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7429 return DW_ERROR_TIMEOUT; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7430 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7431 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7432 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7433 * Reliquishes the access to the semaphore. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7434 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7435 * mutex: The handle to the mutex returned by dw_mutex_new(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7436 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7437 void API dw_mutex_unlock(HMTX mutex) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7438 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7439 pthread_mutex_unlock(mutex); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7440 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7441 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7442 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7443 * Returns the handle to an unnamed event semaphore. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7444 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7445 HEV API dw_event_new(void) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7446 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7447 HEV eve = (HEV)malloc(sizeof(struct _dw_unix_event)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7448 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7449 if(!eve) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7450 return NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7451 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7452 /* We need to be careful here, mutexes on Linux are |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7453 * FAST by default but are error checking on other |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7454 * systems such as FreeBSD and OS/2, perhaps others. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7455 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7456 pthread_mutex_init (&(eve->mutex), NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7457 pthread_mutex_lock (&(eve->mutex)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7458 pthread_cond_init (&(eve->event), NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7459 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7460 pthread_mutex_unlock (&(eve->mutex)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7461 eve->alive = 1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7462 eve->posted = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7463 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7464 return eve; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7465 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7466 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7467 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7468 * Resets a semaphore created by dw_event_new(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7469 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7470 * eve: The handle to the event returned by dw_event_new(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7471 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7472 int API dw_event_reset (HEV eve) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7473 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7474 if(!eve) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7475 return DW_ERROR_NON_INIT; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7476 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7477 pthread_mutex_lock (&(eve->mutex)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7478 pthread_cond_broadcast (&(eve->event)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7479 pthread_cond_init (&(eve->event), NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7480 eve->posted = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7481 pthread_mutex_unlock (&(eve->mutex)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7482 return DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7483 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7484 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7485 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7486 * Posts a semaphore created by dw_event_new(). Causing all threads |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7487 * waiting on this event in dw_event_wait to continue. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7488 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7489 * eve: The handle to the event returned by dw_event_new(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7490 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7491 int API dw_event_post (HEV eve) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7492 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7493 if(!eve) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7494 return DW_ERROR_NON_INIT; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7495 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7496 pthread_mutex_lock (&(eve->mutex)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7497 pthread_cond_broadcast (&(eve->event)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7498 eve->posted = 1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7499 pthread_mutex_unlock (&(eve->mutex)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7500 return DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7501 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7502 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7503 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7504 * Waits on a semaphore created by dw_event_new(), until the |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7505 * event gets posted or until the timeout expires. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7506 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7507 * eve: The handle to the event returned by dw_event_new(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7508 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7509 int API dw_event_wait(HEV eve, unsigned long timeout) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7510 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7511 int rc; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7512 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7513 if(!eve) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7514 return DW_ERROR_NON_INIT; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7515 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7516 pthread_mutex_lock (&(eve->mutex)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7517 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7518 if(eve->posted) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7519 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7520 pthread_mutex_unlock (&(eve->mutex)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7521 return DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7522 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7523 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7524 if(timeout != -1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7525 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7526 struct timeval now; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7527 struct timespec timeo; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7528 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7529 gettimeofday(&now, 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7530 timeo.tv_sec = now.tv_sec + (timeout / 1000); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7531 timeo.tv_nsec = now.tv_usec * 1000; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7532 rc = pthread_cond_timedwait(&(eve->event), &(eve->mutex), &timeo); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7533 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7534 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7535 rc = pthread_cond_wait(&(eve->event), &(eve->mutex)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7536 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7537 pthread_mutex_unlock (&(eve->mutex)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7538 if(!rc) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7539 return DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7540 if(rc == ETIMEDOUT) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7541 return DW_ERROR_TIMEOUT; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7542 return DW_ERROR_GENERAL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7543 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7544 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7545 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7546 * Closes a semaphore created by dw_event_new(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7547 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7548 * eve: The handle to the event returned by dw_event_new(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7549 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7550 int API dw_event_close(HEV *eve) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7551 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7552 if(!eve || !(*eve)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7553 return DW_ERROR_NON_INIT; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7554 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7555 pthread_mutex_lock (&((*eve)->mutex)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7556 pthread_cond_destroy (&((*eve)->event)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7557 pthread_mutex_unlock (&((*eve)->mutex)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7558 pthread_mutex_destroy (&((*eve)->mutex)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7559 free(*eve); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7560 *eve = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7561 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7562 return DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7563 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7564 |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
7565 struct _dw_seminfo { |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7566 int fd; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7567 int waiting; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7568 }; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7569 |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
7570 static void _dw_handle_sem(int *tmpsock) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7571 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7572 fd_set rd; |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
7573 struct _dw_seminfo *array = (struct _dw_seminfo *)malloc(sizeof(struct _dw_seminfo)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7574 int listenfd = tmpsock[0]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7575 int bytesread, connectcount = 1, maxfd, z, posted = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7576 char command; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7577 sigset_t mask; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7578 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7579 sigfillset(&mask); /* Mask all allowed signals */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7580 pthread_sigmask(SIG_BLOCK, &mask, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7581 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7582 /* problems */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7583 if(tmpsock[1] == -1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7584 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7585 free(array); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7586 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7587 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7588 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7589 array[0].fd = tmpsock[1]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7590 array[0].waiting = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7591 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7592 /* Free the memory allocated in dw_named_event_new. */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7593 free(tmpsock); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7594 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7595 while(1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7596 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7597 FD_ZERO(&rd); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7598 FD_SET(listenfd, &rd); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7599 int DW_UNUSED(result); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7600 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7601 maxfd = listenfd; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7602 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7603 /* Added any connections to the named event semaphore */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7604 for(z=0;z<connectcount;z++) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7605 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7606 if(array[z].fd > maxfd) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7607 maxfd = array[z].fd; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7608 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7609 FD_SET(array[z].fd, &rd); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7610 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7611 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7612 if(select(maxfd+1, &rd, NULL, NULL, NULL) == -1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7613 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7614 free(array); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7615 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7616 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7617 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7618 if(FD_ISSET(listenfd, &rd)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7619 { |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
7620 struct _dw_seminfo *newarray; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7621 int newfd = accept(listenfd, 0, 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7622 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7623 if(newfd > -1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7624 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7625 /* Add new connections to the set */ |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
7626 newarray = (struct _dw_seminfo *)malloc(sizeof(struct _dw_seminfo)*(connectcount+1)); |
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
7627 memcpy(newarray, array, sizeof(struct _dw_seminfo)*(connectcount)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7628 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7629 newarray[connectcount].fd = newfd; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7630 newarray[connectcount].waiting = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7631 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7632 connectcount++; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7633 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7634 /* Replace old array with new one */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7635 free(array); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7636 array = newarray; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7637 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7638 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7639 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7640 /* Handle any events posted to the semaphore */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7641 for(z=0;z<connectcount;z++) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7642 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7643 if(FD_ISSET(array[z].fd, &rd)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7644 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7645 if((bytesread = read(array[z].fd, &command, 1)) < 1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7646 { |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
7647 struct _dw_seminfo *newarray; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7648 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7649 /* Remove this connection from the set */ |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
7650 newarray = (struct _dw_seminfo *)malloc(sizeof(struct _dw_seminfo)*(connectcount-1)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7651 if(!z) |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
7652 memcpy(newarray, &array[1], sizeof(struct _dw_seminfo)*(connectcount-1)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7653 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7654 { |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
7655 memcpy(newarray, array, sizeof(struct _dw_seminfo)*z); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7656 if(z!=(connectcount-1)) |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
7657 memcpy(&newarray[z], &array[z+1], sizeof(struct _dw_seminfo)*(z-connectcount-1)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7658 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7659 connectcount--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7660 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7661 /* Replace old array with new one */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7662 free(array); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7663 array = newarray; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7664 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7665 else if(bytesread == 1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7666 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7667 switch(command) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7668 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7669 case 0: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7670 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7671 /* Reset */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7672 posted = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7673 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7674 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7675 case 1: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7676 /* Post */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7677 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7678 int s; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7679 char tmp = (char)0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7680 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7681 posted = 1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7682 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7683 for(s=0;s<connectcount;s++) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7684 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7685 /* The semaphore has been posted so |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7686 * we tell all the waiting threads to |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7687 * continue. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7688 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7689 if(array[s].waiting) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7690 result = write(array[s].fd, &tmp, 1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7691 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7692 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7693 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7694 case 2: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7695 /* Wait */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7696 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7697 char tmp = (char)0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7698 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7699 array[z].waiting = 1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7700 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7701 /* If we are posted exit immeditately */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7702 if(posted) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7703 result = write(array[z].fd, &tmp, 1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7704 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7705 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7706 case 3: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7707 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7708 /* Done Waiting */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7709 array[z].waiting = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7710 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7711 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7712 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7713 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7714 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7715 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7716 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7717 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7718 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7719 /* Using domain sockets on unix for IPC */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7720 /* Create a named event semaphore which can be |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7721 * opened from other processes. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7722 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7723 * eve: Pointer to an event handle to receive handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7724 * name: Name given to semaphore which can be opened |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7725 * by other processes. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7726 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7727 HEV API dw_named_event_new(const char *name) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7728 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7729 struct sockaddr_un un; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7730 int ev, *tmpsock = (int *)malloc(sizeof(int)*2); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7731 DWTID dwthread; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7732 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7733 if(!tmpsock) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7734 return NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7735 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7736 tmpsock[0] = socket(AF_UNIX, SOCK_STREAM, 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7737 ev = socket(AF_UNIX, SOCK_STREAM, 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7738 memset(&un, 0, sizeof(un)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7739 un.sun_family=AF_UNIX; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7740 mkdir("/tmp/.dw", S_IWGRP|S_IWOTH); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7741 strcpy(un.sun_path, "/tmp/.dw/"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7742 strcat(un.sun_path, name); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7743 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7744 /* just to be safe, this should be changed |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7745 * to support multiple instances. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7746 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7747 remove(un.sun_path); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7748 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7749 bind(tmpsock[0], (struct sockaddr *)&un, sizeof(un)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7750 listen(tmpsock[0], 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7751 connect(ev, (struct sockaddr *)&un, sizeof(un)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7752 tmpsock[1] = accept(tmpsock[0], 0, 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7753 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7754 if(tmpsock[0] < 0 || tmpsock[1] < 0 || ev < 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7755 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7756 if(tmpsock[0] > -1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7757 close(tmpsock[0]); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7758 if(tmpsock[1] > -1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7759 close(tmpsock[1]); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7760 if(ev > -1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7761 close(ev); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7762 free(tmpsock); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7763 return NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7764 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7765 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7766 /* Create a thread to handle this event semaphore */ |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
7767 pthread_create(&dwthread, NULL, (void *)_dw_handle_sem, (void *)tmpsock); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7768 return GINT_TO_POINTER(ev); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7769 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7770 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7771 /* Open an already existing named event semaphore. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7772 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7773 * eve: Pointer to an event handle to receive handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7774 * name: Name given to semaphore which can be opened |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7775 * by other processes. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7776 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7777 HEV API dw_named_event_get(const char *name) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7778 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7779 struct sockaddr_un un; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7780 int ev = socket(AF_UNIX, SOCK_STREAM, 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7781 if(ev < 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7782 return NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7783 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7784 un.sun_family=AF_UNIX; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7785 mkdir("/tmp/.dw", S_IWGRP|S_IWOTH); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7786 strcpy(un.sun_path, "/tmp/.dw/"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7787 strcat(un.sun_path, name); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7788 connect(ev, (struct sockaddr *)&un, sizeof(un)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7789 return GINT_TO_POINTER(ev); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7790 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7791 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7792 /* Resets the event semaphore so threads who call wait |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7793 * on this semaphore will block. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7794 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7795 * eve: Handle to the semaphore obtained by |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7796 * an open or create call. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7797 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7798 int API dw_named_event_reset(HEV eve) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7799 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7800 /* signal reset */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7801 char tmp = (char)0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7802 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7803 if(GPOINTER_TO_INT(eve) < 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7804 return DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7805 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7806 if(write(GPOINTER_TO_INT(eve), &tmp, 1) == 1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7807 return DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7808 return DW_ERROR_GENERAL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7809 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7810 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7811 /* Sets the posted state of an event semaphore, any threads |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7812 * waiting on the semaphore will no longer block. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7813 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7814 * eve: Handle to the semaphore obtained by |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7815 * an open or create call. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7816 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7817 int API dw_named_event_post(HEV eve) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7818 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7819 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7820 /* signal post */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7821 char tmp = (char)1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7822 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7823 if(GPOINTER_TO_INT(eve) < 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7824 return DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7825 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7826 if(write(GPOINTER_TO_INT(eve), &tmp, 1) == 1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7827 return DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7828 return DW_ERROR_GENERAL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7829 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7830 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7831 /* Waits on the specified semaphore until it becomes |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7832 * posted, or returns immediately if it already is posted. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7833 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7834 * eve: Handle to the semaphore obtained by |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7835 * an open or create call. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7836 * timeout: Number of milliseconds before timing out |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7837 * or -1 if indefinite. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7838 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7839 int API dw_named_event_wait(HEV eve, unsigned long timeout) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7840 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7841 fd_set rd; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7842 struct timeval tv, *useme = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7843 int retval = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7844 char tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7845 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7846 if(GPOINTER_TO_INT(eve) < 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7847 return DW_ERROR_NON_INIT; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7848 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7849 /* Set the timout or infinite */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7850 if(timeout != -1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7851 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7852 tv.tv_sec = timeout / 1000; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7853 tv.tv_usec = timeout % 1000; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7854 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7855 useme = &tv; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7856 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7857 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7858 FD_ZERO(&rd); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7859 FD_SET(GPOINTER_TO_INT(eve), &rd); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7860 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7861 /* Signal wait */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7862 tmp = (char)2; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7863 retval = write(GPOINTER_TO_INT(eve), &tmp, 1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7864 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7865 if(retval == 1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7866 retval = select(GPOINTER_TO_INT(eve)+1, &rd, NULL, NULL, useme); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7867 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7868 /* Signal done waiting. */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7869 tmp = (char)3; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7870 if(retval == 1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7871 retval = write(GPOINTER_TO_INT(eve), &tmp, 1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7872 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7873 if(retval == 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7874 return DW_ERROR_TIMEOUT; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7875 else if(retval == -1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7876 return DW_ERROR_INTERRUPT; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7877 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7878 /* Clear the entry from the pipe so |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7879 * we don't loop endlessly. :) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7880 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7881 if(read(GPOINTER_TO_INT(eve), &tmp, 1) == 1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7882 return DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7883 return DW_ERROR_GENERAL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7884 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7885 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7886 /* Release this semaphore, if there are no more open |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7887 * handles on this semaphore the semaphore will be destroyed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7888 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7889 * eve: Handle to the semaphore obtained by |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7890 * an open or create call. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7891 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7892 int API dw_named_event_close(HEV eve) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7893 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7894 /* Finally close the domain socket, |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
7895 * cleanup will continue in _dw_handle_sem. |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7896 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7897 close(GPOINTER_TO_INT(eve)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7898 return DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7899 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7900 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7901 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7902 * Generally an internal function called from a newly created |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7903 * thread to setup the Dynamic Windows environment for the thread. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7904 * However it is exported so language bindings can call it when |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7905 * they create threads that require access to Dynamic Windows. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7906 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7907 void API _dw_init_thread(void) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7908 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7909 GdkRGBA *foreground = malloc(sizeof(GdkRGBA)); |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
7910 HEV event = dw_event_new(); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7911 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7912 foreground->alpha = foreground->red = foreground->green = foreground->blue = 0.0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7913 pthread_setspecific(_dw_fg_color_key, foreground); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7914 pthread_setspecific(_dw_bg_color_key, NULL); |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
7915 pthread_setspecific(_dw_event_key, event); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7916 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7917 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7918 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7919 * Generally an internal function called from a terminating |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7920 * thread to cleanup the Dynamic Windows environment for the thread. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7921 * However it is exported so language bindings can call it when |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7922 * they exit threads that require access to Dynamic Windows. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7923 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7924 void API _dw_deinit_thread(void) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7925 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7926 GdkRGBA *foreground, *background; |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
7927 HEV event; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7928 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7929 if((foreground = pthread_getspecific(_dw_fg_color_key))) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7930 free(foreground); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7931 if((background = pthread_getspecific(_dw_bg_color_key))) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7932 free(background); |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
7933 if((event = pthread_getspecific(_dw_event_key))) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
7934 dw_event_close(&event); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7935 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7936 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7937 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7938 * Setup thread independent color sets. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7939 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7940 void _dwthreadstart(void *data) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7941 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7942 void (*threadfunc)(void *) = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7943 void **tmp = (void **)data; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7944 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7945 threadfunc = (void (*)(void *))tmp[0]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7946 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7947 /* Initialize colors */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7948 _dw_init_thread(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7949 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7950 threadfunc(tmp[1]); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7951 free(tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7952 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7953 /* Free colors */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7954 _dw_deinit_thread(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7955 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7956 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7957 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7958 * Allocates a shared memory region with a name. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7959 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7960 * handle: A pointer to receive a SHM identifier. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7961 * dest: A pointer to a pointer to receive the memory address. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7962 * size: Size in bytes of the shared memory region to allocate. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7963 * name: A string pointer to a unique memory name. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7964 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
7965 HSHM API dw_named_memory_new(void **dest, int size, const char *name) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7966 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7967 char namebuf[1025]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7968 struct _dw_unix_shm *handle = malloc(sizeof(struct _dw_unix_shm)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7969 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7970 mkdir("/tmp/.dw", S_IWGRP|S_IWOTH); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7971 snprintf(namebuf, 1024, "/tmp/.dw/%s", name); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7972 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7973 if((handle->fd = open(namebuf, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR)) < 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7974 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7975 free(handle); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7976 return NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7977 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7978 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7979 if(ftruncate(handle->fd, size)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7980 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7981 close(handle->fd); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7982 free(handle); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7983 return NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7984 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7985 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7986 /* attach the shared memory segment to our process's address space. */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7987 *dest = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, handle->fd, 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7988 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7989 if(*dest == MAP_FAILED) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7990 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7991 close(handle->fd); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7992 *dest = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7993 free(handle); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7994 return NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7995 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7996 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7997 handle->size = size; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7998 handle->sid = getsid(0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7999 handle->path = strdup(namebuf); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8000 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8001 return handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8002 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8003 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8004 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8005 * Aquires shared memory region with a name. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8006 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8007 * dest: A pointer to a pointer to receive the memory address. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8008 * size: Size in bytes of the shared memory region to requested. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8009 * name: A string pointer to a unique memory name. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8010 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8011 HSHM API dw_named_memory_get(void **dest, int size, const char *name) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8012 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8013 char namebuf[1025]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8014 struct _dw_unix_shm *handle = malloc(sizeof(struct _dw_unix_shm)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8015 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8016 mkdir("/tmp/.dw", S_IWGRP|S_IWOTH); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8017 snprintf(namebuf, 1024, "/tmp/.dw/%s", name); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8018 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8019 if((handle->fd = open(namebuf, O_RDWR)) < 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8020 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8021 free(handle); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8022 return NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8023 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8024 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8025 /* attach the shared memory segment to our process's address space. */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8026 *dest = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, handle->fd, 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8027 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8028 if(*dest == MAP_FAILED) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8029 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8030 close(handle->fd); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8031 *dest = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8032 free(handle); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8033 return NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8034 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8035 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8036 handle->size = size; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8037 handle->sid = -1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8038 handle->path = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8039 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8040 return handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8041 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8042 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8043 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8044 * Frees a shared memory region previously allocated. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8045 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8046 * handle: Handle obtained from DB_named_memory_allocate. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8047 * ptr: The memory address aquired with DB_named_memory_allocate. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8048 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8049 int API dw_named_memory_free(HSHM handle, void *ptr) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8050 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8051 struct _dw_unix_shm *h = handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8052 int rc = munmap(ptr, h->size); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8053 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8054 close(h->fd); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8055 if(h->path) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8056 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8057 /* Only remove the actual file if we are the |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8058 * creator of the file. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8059 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8060 if(h->sid != -1 && h->sid == getsid(0)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8061 remove(h->path); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8062 free(h->path); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8063 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8064 return rc; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8065 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8066 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8067 * Creates a new thread with a starting point of func. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8068 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8069 * func: Function which will be run in the new thread. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8070 * data: Parameter(s) passed to the function. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8071 * stack: Stack size of new thread (OS/2 and Windows only). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8072 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8073 DWTID API dw_thread_new(void *func, void *data, int stack) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8074 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8075 DWTID gtkthread; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8076 void **tmp = malloc(sizeof(void *) * 2); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8077 int rc; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8078 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8079 tmp[0] = func; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8080 tmp[1] = data; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8081 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8082 rc = pthread_create(>kthread, NULL, (void *)_dwthreadstart, (void *)tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8083 if ( rc == 0 ) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8084 return gtkthread; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8085 return (DWTID)DW_ERROR_UNKNOWN; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8086 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8087 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8088 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8089 * Ends execution of current thread immediately. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8090 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8091 void API dw_thread_end(void) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8092 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8093 pthread_exit(NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8094 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8095 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8096 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8097 * Returns the current thread's ID. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8098 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8099 DWTID API dw_thread_id(void) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8100 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8101 return (DWTID)pthread_self(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8102 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8103 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8104 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8105 * Cleanly terminates a DW session, should be signal handler safe. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8106 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8107 void API dw_shutdown(void) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8108 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
8109 g_main_loop_unref(_DWMainLoop); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8110 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8111 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8112 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8113 * Cleanly terminates a DW session, should be signal handler safe. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8114 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8115 * exitcode: Exit code reported to the operating system. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8116 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8117 void API dw_exit(int exitcode) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8118 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
8119 dw_shutdown(); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8120 exit(exitcode); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8121 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8122 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8123 /* Internal function to get the recommended size of scrolled items */ |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
8124 void _dw_get_scrolled_size(GtkWidget *item, gint *thiswidth, gint *thisheight) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8125 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8126 GtkWidget *widget = g_object_get_data(G_OBJECT(item), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8127 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8128 *thisheight = *thiswidth = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8129 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8130 if(widget) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8131 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8132 if(g_object_get_data(G_OBJECT(widget), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_TREE)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8133 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8134 /* Set to half for tree */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8135 *thiswidth = (int)((_DW_SCROLLED_MAX_WIDTH + _DW_SCROLLED_MIN_WIDTH)/2); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8136 *thisheight = (int)((_DW_SCROLLED_MAX_HEIGHT + _DW_SCROLLED_MIN_HEIGHT)/2); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8137 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8138 else if(GTK_IS_TEXT_VIEW(widget)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8139 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8140 unsigned long bytes; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8141 int height, width; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8142 char *buf, *ptr; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8143 int wrap = (gtk_text_view_get_wrap_mode(GTK_TEXT_VIEW(widget)) == GTK_WRAP_WORD); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8144 static char testtext[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8145 int hscrolled = FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8146 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8147 *thiswidth = *thisheight = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8148 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8149 dw_mle_get_size(item, &bytes, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8150 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8151 ptr = buf = alloca(bytes + 2); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8152 dw_mle_export(item, buf, 0, (int)bytes); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8153 buf[bytes] = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8154 strcat(buf, "\r"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8155 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8156 /* MLE */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8157 while((ptr = strstr(buf, "\r"))) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8158 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8159 ptr[0] = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8160 width = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8161 if(strlen(buf)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8162 dw_font_text_extents_get(item, NULL, buf, &width, &height); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8163 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8164 dw_font_text_extents_get(item, NULL, testtext, NULL, &height); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8165 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8166 if(wrap && width > _DW_SCROLLED_MAX_WIDTH) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8167 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8168 *thiswidth = _DW_SCROLLED_MAX_WIDTH; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8169 *thisheight += height * (width / _DW_SCROLLED_MAX_WIDTH); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8170 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8171 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8172 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8173 if(width > *thiswidth) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8174 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8175 if(width > _DW_SCROLLED_MAX_WIDTH) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8176 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8177 *thiswidth = _DW_SCROLLED_MAX_WIDTH; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8178 hscrolled = TRUE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8179 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8180 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8181 *thiswidth = width; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8182 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8183 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8184 *thisheight += height; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8185 if(ptr[1] == '\n') |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8186 buf = &ptr[2]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8187 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8188 buf = &ptr[1]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8189 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8190 if(hscrolled) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8191 *thisheight += 10; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8192 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8193 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8194 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8195 gtk_widget_measure(GTK_WIDGET(widget), GTK_ORIENTATION_HORIZONTAL, -1, thiswidth, NULL, NULL, NULL); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8196 gtk_widget_measure(GTK_WIDGET(widget), GTK_ORIENTATION_VERTICAL, -1, thisheight, NULL, NULL, NULL); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8197 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8198 *thisheight += 20; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8199 *thiswidth += 20; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8200 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8201 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8202 if(*thiswidth < _DW_SCROLLED_MIN_WIDTH) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8203 *thiswidth = _DW_SCROLLED_MIN_WIDTH; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8204 if(*thiswidth > _DW_SCROLLED_MAX_WIDTH) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8205 *thiswidth = _DW_SCROLLED_MAX_WIDTH; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8206 if(*thisheight < _DW_SCROLLED_MIN_HEIGHT) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8207 *thisheight = _DW_SCROLLED_MIN_HEIGHT; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8208 if(*thisheight > _DW_SCROLLED_MAX_HEIGHT) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8209 *thisheight = _DW_SCROLLED_MAX_HEIGHT; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8210 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8211 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8212 /* Internal box packing function called by the other 3 functions */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8213 void _dw_box_pack(HWND box, HWND item, int index, int width, int height, int hsize, int vsize, int pad, char *funcname) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8214 { |
2366
b3efaae95735
GTK4: Apparenlty on GTK4 GtkImage is used for icons, switch to GtkPicture.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2365
diff
changeset
|
8215 GtkWidget *tmp, *tmpitem; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8216 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8217 if(!box) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8218 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8219 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8220 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8221 * If you try and pack an item into itself VERY bad things can happen; like at least an |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8222 * infinite loop on GTK! Lets be safe! |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8223 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8224 if(box == item) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8225 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8226 dw_messagebox(funcname, DW_MB_OK|DW_MB_ERROR, "Danger! Danger! Will Robinson; box and item are the same!"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8227 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8228 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8229 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8230 /* If this is a special box, like: Window, Groupbox, Scrollbox... |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8231 * get the internal box handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8232 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8233 if((tmp = g_object_get_data(G_OBJECT(box), "_dw_boxhandle"))) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8234 box = tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8235 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8236 /* Can't pack nothing with GTK, so create an empty label */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8237 if(!item) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8238 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8239 item = gtk_label_new(""); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8240 g_object_set_data(G_OBJECT(item), "_dw_padding", GINT_TO_POINTER(1)); |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8241 gtk_widget_show(item); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8242 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8243 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8244 /* Check if the item to be packed is a special box */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8245 tmpitem = (GtkWidget *)g_object_get_data(G_OBJECT(item), "_dw_boxhandle"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8246 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8247 /* Make sure our target box is valid */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8248 if(GTK_IS_GRID(box)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8249 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8250 int boxcount = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(box), "_dw_boxcount")); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8251 int boxtype = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(box), "_dw_boxtype")); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8252 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8253 /* If the item being packed is a box, then we use it's padding |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8254 * instead of the padding specified on the pack line, this is |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8255 * due to a bug in the OS/2 and Win32 renderer and a limitation |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8256 * of the GtkTable class. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8257 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8258 if(GTK_IS_GRID(item) || (tmpitem && GTK_IS_GRID(tmpitem))) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8259 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8260 /* NOTE: I left in the ability to pack boxes with a size, |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8261 * this eliminates that by forcing the size to 0. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8262 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8263 height = width = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8264 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8265 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8266 /* Do some sanity bounds checking */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8267 if(index < 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8268 index = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8269 if(index > boxcount) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8270 index = boxcount; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8271 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8272 g_object_set_data(G_OBJECT(item), "_dw_table", box); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8273 /* Set the expand attribute on the widgets now instead of the container */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8274 gtk_widget_set_vexpand(item, vsize); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8275 gtk_widget_set_hexpand(item, hsize); |
2367
0f340646a2ca
GTK4: GtkPictures should be centered, not filled... don't clobber the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2366
diff
changeset
|
8276 /* Don't clobber the center alignment on pictures */ |
0f340646a2ca
GTK4: GtkPictures should be centered, not filled... don't clobber the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2366
diff
changeset
|
8277 if(!GTK_IS_PICTURE(item)) |
0f340646a2ca
GTK4: GtkPictures should be centered, not filled... don't clobber the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2366
diff
changeset
|
8278 { |
0f340646a2ca
GTK4: GtkPictures should be centered, not filled... don't clobber the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2366
diff
changeset
|
8279 gtk_widget_set_valign(item, vsize ? GTK_ALIGN_FILL : GTK_ALIGN_START); |
0f340646a2ca
GTK4: GtkPictures should be centered, not filled... don't clobber the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2366
diff
changeset
|
8280 gtk_widget_set_halign(item, hsize ? GTK_ALIGN_FILL : GTK_ALIGN_START); |
0f340646a2ca
GTK4: GtkPictures should be centered, not filled... don't clobber the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2366
diff
changeset
|
8281 } |
2276
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
8282 /* Set pad for each margin direction on the widget */ |
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
8283 _dw_widget_set_pad(item, pad); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8284 /* Add to the grid using insert... |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8285 * rows for vertical boxes and columns for horizontal. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8286 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8287 if(boxtype == DW_VERT) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8288 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8289 gtk_grid_insert_row(GTK_GRID(box), index); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8290 gtk_grid_attach(GTK_GRID(box), item, 0, index, 1, 1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8291 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8292 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8293 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8294 gtk_grid_insert_column(GTK_GRID(box), index); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8295 gtk_grid_attach(GTK_GRID(box), item, index, 0, 1, 1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8296 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8297 g_object_set_data(G_OBJECT(box), "_dw_boxcount", GINT_TO_POINTER(boxcount + 1)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8298 /* Special case for scrolled windows */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8299 if(GTK_IS_SCROLLED_WINDOW(item)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8300 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8301 gint scrolledwidth = 0, scrolledheight = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8302 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8303 /* Pre-run the calculation code for MLE/Container/Tree if needed */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8304 if((width < 1 && !hsize) || (height < 1 && !vsize)) |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
8305 _dw_get_scrolled_size(item, &scrolledwidth, &scrolledheight); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8306 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8307 if(width > 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8308 gtk_scrolled_window_set_min_content_width(GTK_SCROLLED_WINDOW(item), width); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8309 else if(!hsize) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8310 gtk_scrolled_window_set_min_content_width(GTK_SCROLLED_WINDOW(item), scrolledwidth); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8311 if(height > 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8312 gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW(item), height); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8313 else if(!vsize) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8314 gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW(item), scrolledheight); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8315 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8316 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8317 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8318 /* Set the requested size of the widget */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8319 if(width == -1 && (GTK_IS_COMBO_BOX(item) || GTK_IS_ENTRY(item))) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8320 gtk_widget_set_size_request(item, 150, height); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8321 else if(width == -1 && GTK_IS_SPIN_BUTTON(item)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8322 gtk_widget_set_size_request(item, 50, height); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8323 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8324 gtk_widget_set_size_request(item, width, height); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8325 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8326 if(GTK_IS_TOGGLE_BUTTON(item)) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8327 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8328 GtkToggleButton *groupstart = (GtkToggleButton *)g_object_get_data(G_OBJECT(box), "_dw_group"); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8329 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8330 if(groupstart) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8331 gtk_toggle_button_set_group(GTK_TOGGLE_BUTTON(item), groupstart); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8332 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8333 g_object_set_data(G_OBJECT(box), "_dw_group", (gpointer)item); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8334 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8335 /* If we previously incremented the reference count... drop it now that it is packed */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8336 if(g_object_get_data(G_OBJECT(item), "_dw_refed")) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8337 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8338 g_object_unref(G_OBJECT(item)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8339 g_object_set_data(G_OBJECT(item), "_dw_refed", NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8340 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8341 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8342 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8343 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8344 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8345 * Remove windows (widgets) from the box they are packed into. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8346 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8347 * handle: Window handle of the packed item to be removed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8348 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8349 * DW_ERROR_NONE on success and DW_ERROR_GENERAL on failure. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8350 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8351 DW_FUNCTION_DEFINITION(dw_box_unpack, int, HWND handle) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8352 DW_FUNCTION_ADD_PARAM1(handle) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8353 DW_FUNCTION_RETURN(dw_box_unpack, int) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8354 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8355 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8356 int retcode = DW_ERROR_GENERAL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8357 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8358 if(GTK_IS_WIDGET(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8359 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8360 GtkWidget *box, *handle2 = handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8361 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8362 /* Check if we are removing a widget from a box */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8363 if((box = gtk_widget_get_parent(handle2)) && GTK_IS_GRID(box)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8364 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8365 /* Get the number of items in the box... */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8366 int boxcount = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(box), "_dw_boxcount")); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8367 int boxtype = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(box), "_dw_boxtype")); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8368 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8369 if(boxcount > 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8370 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8371 /* Decrease the count by 1 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8372 boxcount--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8373 g_object_set_data(G_OBJECT(box), "_dw_boxcount", GINT_TO_POINTER(boxcount)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8374 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8375 /* If we haven't incremented the reference count... raise it before removal */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8376 if(!g_object_get_data(G_OBJECT(handle2), "_dw_refed")) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8377 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8378 g_object_ref(G_OBJECT(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8379 g_object_set_data(G_OBJECT(handle2), "_dw_refed", GINT_TO_POINTER(1)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8380 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8381 /* Remove the widget from the box */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8382 /* Figure out where in the grid this widget is and remove that row/column */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8383 if(boxtype == DW_VERT) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8384 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8385 int z; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8386 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8387 for(z=0;z<boxcount;z++) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8388 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8389 if(gtk_grid_get_child_at(GTK_GRID(box), 0, z) == handle2) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8390 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8391 gtk_grid_remove_row(GTK_GRID(box), z); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8392 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8393 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8394 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8395 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8396 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8397 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8398 int z; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8399 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8400 for(z=0;z<boxcount;z++) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8401 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8402 if(gtk_grid_get_child_at(GTK_GRID(box), z, 0) == handle2) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8403 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8404 gtk_grid_remove_column(GTK_GRID(box), z); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8405 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8406 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8407 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8408 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8409 retcode = DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8410 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8411 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8412 DW_FUNCTION_RETURN_THIS(retcode); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8413 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8414 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8415 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8416 * Remove windows (widgets) from a box at an arbitrary location. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8417 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8418 * box: Window handle of the box to be removed from. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8419 * index: 0 based index of packed items. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8420 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8421 * Handle to the removed item on success, 0 on failure or padding. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8422 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8423 DW_FUNCTION_DEFINITION(dw_box_unpack_at_index, HWND, HWND box, int index) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8424 DW_FUNCTION_ADD_PARAM2(box, index) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8425 DW_FUNCTION_RETURN(dw_box_unpack_at_index, HWND) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8426 DW_FUNCTION_RESTORE_PARAM2(box, HWND, index, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8427 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8428 HWND retval = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8429 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8430 /* Check if we are removing a widget from a box */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8431 if(GTK_IS_GRID(box)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8432 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8433 /* Get the number of items in the box... */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8434 int boxcount = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(box), "_dw_boxcount")); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8435 int boxtype = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(box), "_dw_boxtype")); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8436 GtkWidget *item = (boxtype == DW_VERT) ? gtk_grid_get_child_at(GTK_GRID(box), 0, index) : gtk_grid_get_child_at(GTK_GRID(box), index, 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8437 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8438 if(boxcount > 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8439 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8440 /* Decrease the count by 1 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8441 boxcount--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8442 g_object_set_data(G_OBJECT(box), "_dw_boxcount", GINT_TO_POINTER(boxcount)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8443 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8444 /* If we haven't incremented the reference count... raise it before removal */ |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
8445 if(item && g_object_get_data(G_OBJECT(item), "_dw_padding") && GTK_IS_WIDGET(item)) |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
8446 g_object_unref(G_OBJECT(item)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8447 else if(item) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8448 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8449 if(!g_object_get_data(G_OBJECT(item), "_dw_refed")) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8450 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8451 g_object_ref(G_OBJECT(item)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8452 g_object_set_data(G_OBJECT(item), "_dw_refed", GINT_TO_POINTER(1)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8453 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8454 /* Remove the widget from the box */ |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8455 gtk_grid_remove(GTK_GRID(box), item); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8456 if(boxtype == DW_VERT) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8457 gtk_grid_remove_row(GTK_GRID(box), index); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8458 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8459 gtk_grid_remove_column(GTK_GRID(box), index); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8460 retval = item; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8461 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8462 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8463 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8464 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8465 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8466 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8467 * Pack windows (widgets) into a box at an arbitrary location. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8468 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8469 * box: Window handle of the box to be packed into. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8470 * item: Window handle of the item to pack. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8471 * index: 0 based index of packed items. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8472 * width: Width in pixels of the item or -1 to be self determined. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8473 * height: Height in pixels of the item or -1 to be self determined. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8474 * hsize: TRUE if the window (widget) should expand horizontally to fill space given. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8475 * vsize: TRUE if the window (widget) should expand vertically to fill space given. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8476 * pad: Number of pixels of padding around the item. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8477 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8478 DW_FUNCTION_DEFINITION(dw_box_pack_at_index, void, HWND box, HWND item, int index, int width, int height, int hsize, int vsize, int pad) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8479 DW_FUNCTION_ADD_PARAM8(box, item, index, width, height, hsize, vsize, pad) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8480 DW_FUNCTION_NO_RETURN(dw_box_pack_at_index) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8481 DW_FUNCTION_RESTORE_PARAM8(box, HWND, item, HWND, index, int, width, int, height, int, hsize, int, vsize, int, pad, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8482 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8483 _dw_box_pack(box, item, index, width, height, hsize, vsize, pad, "dw_box_pack_at_index()"); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8484 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8485 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8486 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8487 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8488 * Pack windows (widgets) into a box from the start (or top). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8489 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8490 * box: Window handle of the box to be packed into. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8491 * item: Window handle of the item to pack. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8492 * width: Width in pixels of the item or -1 to be self determined. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8493 * height: Height in pixels of the item or -1 to be self determined. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8494 * hsize: TRUE if the window (widget) should expand horizontally to fill space given. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8495 * vsize: TRUE if the window (widget) should expand vertically to fill space given. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8496 * pad: Number of pixels of padding around the item. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8497 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8498 DW_FUNCTION_DEFINITION(dw_box_pack_start, void, HWND box, HWND item, int width, int height, int hsize, int vsize, int pad) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8499 DW_FUNCTION_ADD_PARAM7(box, item, width, height, hsize, vsize, pad) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8500 DW_FUNCTION_NO_RETURN(dw_box_pack_start) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8501 DW_FUNCTION_RESTORE_PARAM7(box, HWND, item, HWND, width, int, height, int, hsize, int, vsize, int, pad, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8502 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8503 /* 65536 is the table limit on GTK... |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8504 * seems like a high enough value we will never hit it here either. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8505 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8506 _dw_box_pack(box, item, 65536, width, height, hsize, vsize, pad, "dw_box_pack_start()"); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8507 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8508 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8509 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8510 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8511 * Pack windows (widgets) into a box from the end (or bottom). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8512 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8513 * box: Window handle of the box to be packed into. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8514 * item: Window handle of the item to pack. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8515 * width: Width in pixels of the item or -1 to be self determined. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8516 * height: Height in pixels of the item or -1 to be self determined. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8517 * hsize: TRUE if the window (widget) should expand horizontally to fill space given. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8518 * vsize: TRUE if the window (widget) should expand vertically to fill space given. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8519 * pad: Number of pixels of padding around the item. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8520 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8521 DW_FUNCTION_DEFINITION(dw_box_pack_end, void, HWND box, HWND item, int width, int height, int hsize, int vsize, int pad) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8522 DW_FUNCTION_ADD_PARAM7(box, item, width, height, hsize, vsize, pad) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8523 DW_FUNCTION_NO_RETURN(dw_box_pack_end) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8524 DW_FUNCTION_RESTORE_PARAM7(box, HWND, item, HWND, width, int, height, int, hsize, int, vsize, int, pad, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8525 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8526 _dw_box_pack(box, item, 0, width, height, hsize, vsize, pad, "dw_box_pack_end()"); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8527 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8528 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8529 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8530 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8531 * Sets the size of a given window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8532 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8533 * handle: Window (widget) handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8534 * width: New width in pixels. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8535 * height: New height in pixels. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8536 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8537 DW_FUNCTION_DEFINITION(dw_window_set_size, void, HWND handle, ULONG width, ULONG height) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8538 DW_FUNCTION_ADD_PARAM3(handle, width, height) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8539 DW_FUNCTION_NO_RETURN(dw_window_set_size) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8540 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, width, ULONG, height, ULONG) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8541 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8542 if(handle) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8543 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8544 if(GTK_IS_WINDOW(handle)) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8545 gtk_window_set_default_size(GTK_WINDOW(handle), width, height); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8546 else if(GTK_IS_WIDGET(handle)) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8547 gtk_widget_set_size_request(GTK_WIDGET(handle), width, height); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8548 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
8549 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8550 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8551 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8552 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8553 * Gets the size the system thinks the widget should be. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8554 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8555 * handle: Window handle of the item to be back. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8556 * width: Width in pixels of the item or NULL if not needed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8557 * height: Height in pixels of the item or NULL if not needed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8558 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8559 DW_FUNCTION_DEFINITION(dw_window_get_preferred_size, void, HWND handle, int *width, int *height) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8560 DW_FUNCTION_ADD_PARAM3(handle, width, height) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8561 DW_FUNCTION_NO_RETURN(dw_window_get_preferred_size) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8562 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, width, int *, height, int *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8563 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8564 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8565 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8566 gint scrolledwidth, scrolledheight; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8567 |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
8568 _dw_get_scrolled_size(handle, &scrolledwidth, &scrolledheight); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8569 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8570 if(width) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8571 *width = scrolledwidth; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8572 if(height) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8573 *height = scrolledheight; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8574 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8575 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8576 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8577 if(width) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8578 gtk_widget_measure(GTK_WIDGET(handle), GTK_ORIENTATION_HORIZONTAL, -1, width, NULL, NULL, NULL); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8579 if(height) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8580 gtk_widget_measure(GTK_WIDGET(handle), GTK_ORIENTATION_VERTICAL, -1, height, NULL, NULL, NULL); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8581 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8582 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8583 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8584 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8585 /* Internal version to simplify the code with multiple versions of GTK */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8586 int _dw_get_screen_width(void) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8587 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8588 GdkDisplay *display = gdk_display_get_default(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8589 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8590 if(display) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8591 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8592 GListModel *monitors = gdk_display_get_monitors(display); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8593 GdkMonitor *monitor = GDK_MONITOR(g_list_model_get_object(monitors, 0)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8594 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8595 if(monitor) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8596 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8597 GdkRectangle rc = { 0, 0, 0 ,0 }; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8598 gdk_monitor_get_geometry(monitor, &rc); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8599 return rc.width; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8600 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8601 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8602 return 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8603 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8604 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8605 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8606 * Returns the width of the screen. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8607 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8608 DW_FUNCTION_DEFINITION(dw_screen_width, int) |
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8609 DW_FUNCTION_ADD_PARAM |
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8610 DW_FUNCTION_RETURN(dw_screen_width, int) |
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8611 { |
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8612 int retval = _dw_get_screen_width(); |
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8613 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8614 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8615 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8616 /* Internal version to simplify the code with multiple versions of GTK */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8617 int _dw_get_screen_height(void) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8618 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8619 GdkDisplay *display = gdk_display_get_default(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8620 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8621 if(display) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8622 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8623 GListModel *monitors = gdk_display_get_monitors(display); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8624 GdkMonitor *monitor = GDK_MONITOR(g_list_model_get_object(monitors, 0)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8625 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8626 if(monitor) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8627 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8628 GdkRectangle rc = { 0, 0, 0 ,0 }; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8629 gdk_monitor_get_geometry(monitor, &rc); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8630 return rc.height; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8631 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8632 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8633 return 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8634 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8635 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8636 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8637 * Returns the height of the screen. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8638 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8639 DW_FUNCTION_DEFINITION(dw_screen_height, int) |
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8640 DW_FUNCTION_ADD_PARAM |
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8641 DW_FUNCTION_RETURN(dw_screen_height, int) |
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8642 { |
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8643 int retval = _dw_get_screen_height(); |
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8644 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8645 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8646 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8647 /* This should return the current color depth */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8648 unsigned long API dw_color_depth_get(void) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8649 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8650 /* TODO: Make this work on GTK4... with no GdkVisual */ |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8651 return 32; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8652 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8653 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8654 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8655 * Sets the gravity of a given window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8656 * Gravity controls which corner of the screen and window the position is relative to. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8657 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8658 * handle: Window (widget) handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8659 * horz: DW_GRAV_LEFT (default), DW_GRAV_RIGHT or DW_GRAV_CENTER. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8660 * vert: DW_GRAV_TOP (default), DW_GRAV_BOTTOM or DW_GRAV_CENTER. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8661 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8662 void API dw_window_set_gravity(HWND handle, int horz, int vert) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8663 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8664 dw_window_set_data(handle, "_dw_grav_horz", DW_INT_TO_POINTER(horz)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8665 dw_window_set_data(handle, "_dw_grav_vert", DW_INT_TO_POINTER(vert)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8666 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8667 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8668 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8669 * Sets the position of a given window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8670 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8671 * handle: Window (widget) handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8672 * x: X location from the bottom left. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8673 * y: Y location from the bottom left. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8674 */ |
2320
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8675 #ifndef GDK_WINDOWING_X11 |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8676 void API dw_window_set_pos(HWND handle, long x, long y) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8677 { |
2320
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8678 } |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8679 #else |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8680 DW_FUNCTION_DEFINITION(dw_window_set_pos, void, HWND handle, long x, long y) |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8681 DW_FUNCTION_ADD_PARAM3(handle, x, y) |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8682 DW_FUNCTION_NO_RETURN(dw_window_set_pos) |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8683 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, x, long, y, long) |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8684 { |
2324
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
8685 GdkDisplay *display = gdk_display_get_default(); |
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
8686 |
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
8687 if(handle && GTK_IS_WINDOW(handle) && display && GDK_IS_X11_DISPLAY(display)) |
2320
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8688 { |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8689 GdkSurface *surface = gtk_native_get_surface(GTK_NATIVE(handle)); |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8690 |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8691 if(surface) |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8692 { |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8693 XMoveWindow(GDK_SURFACE_XDISPLAY(surface), |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8694 GDK_SURFACE_XID(surface), |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8695 x, y); |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8696 } |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8697 } |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8698 DW_FUNCTION_RETURN_NOTHING; |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8699 } |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8700 #endif |
2322
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
8701 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8702 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8703 * Sets the position and size of a given window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8704 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8705 * handle: Window (widget) handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8706 * x: X location from the bottom left. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8707 * y: Y location from the bottom left. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8708 * width: Width of the widget. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8709 * height: Height of the widget. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8710 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
8711 void API dw_window_set_pos_size(HWND handle, long x, long y, unsigned long width, unsigned long height) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8712 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8713 dw_window_set_size(handle, width, height); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8714 dw_window_set_pos(handle, x, y); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8715 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8716 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8717 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8718 * Gets the position and size of a given window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8719 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8720 * handle: Window (widget) handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8721 * x: X location from the bottom left. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8722 * y: Y location from the bottom left. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8723 * width: Width of the widget. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8724 * height: Height of the widget. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8725 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8726 DW_FUNCTION_DEFINITION(dw_window_get_pos_size, void, HWND handle, long *x, long *y, ULONG *width, ULONG *height) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8727 DW_FUNCTION_ADD_PARAM5(handle, x, y, width, height) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8728 DW_FUNCTION_NO_RETURN(dw_window_get_pos_size) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8729 DW_FUNCTION_RESTORE_PARAM5(handle, HWND, x, long *, y, long *, width, ULONG *, height, ULONG *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8730 { |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8731 if(handle && GTK_IS_WIDGET(handle)) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8732 { |
2321
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
8733 GtkRequisition size; |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
8734 |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
8735 /* If the widget hasn't been shown, it returns 0 so use this as backup */ |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
8736 gtk_widget_get_preferred_size(GTK_WIDGET(handle), NULL, &size); |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
8737 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8738 if(width) |
2321
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
8739 { |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8740 *width = (ULONG)gtk_widget_get_width(GTK_WIDGET(handle)); |
2321
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
8741 if(!*width) |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
8742 *width = (ULONG)size.width; |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
8743 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8744 if(height) |
2321
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
8745 { |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8746 *height = (ULONG)gtk_widget_get_height(GTK_WIDGET(handle)); |
2321
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
8747 if(!*height) |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
8748 *height = (ULONG)size.height; |
52ca7647f665
GTK4: Implement pointer grabbing using Xlib and center message boxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2320
diff
changeset
|
8749 } |
2320
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8750 |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8751 #ifdef GDK_WINDOWING_X11 |
2336
dd1b2cc95c91
GTK4: Don't unref the PangoContext returned from gtk_widget_get_pango_context().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2335
diff
changeset
|
8752 if(x || y) |
dd1b2cc95c91
GTK4: Don't unref the PangoContext returned from gtk_widget_get_pango_context().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2335
diff
changeset
|
8753 { |
2324
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
8754 GdkDisplay *display = gdk_display_get_default(); |
2336
dd1b2cc95c91
GTK4: Don't unref the PangoContext returned from gtk_widget_get_pango_context().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2335
diff
changeset
|
8755 GdkSurface *surface; |
2324
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
8756 |
2336
dd1b2cc95c91
GTK4: Don't unref the PangoContext returned from gtk_widget_get_pango_context().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2335
diff
changeset
|
8757 if(display && GDK_IS_X11_DISPLAY(display) && (surface = gtk_native_get_surface(GTK_NATIVE(handle)))) |
2320
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8758 { |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8759 XWindowAttributes xwa; |
2322
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
8760 int ix = 0, iy = 0; |
2324
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
8761 Window child, xrootwin = gdk_x11_display_get_xrootwindow(display); |
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
8762 |
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
8763 XTranslateCoordinates(GDK_SURFACE_XDISPLAY(surface), GDK_SURFACE_XID(surface), |
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
8764 xrootwin, 0, 0, &ix, &iy, &child); |
2320
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8765 XGetWindowAttributes(GDK_SURFACE_XDISPLAY(surface), |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8766 GDK_SURFACE_XID(surface), &xwa); |
2324
610c66b17fbc
GTK4: Put Xlib calls in GDK_IS_X11_DISPLAY() code checks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2323
diff
changeset
|
8767 |
2320
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8768 if(x) |
2322
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
8769 *x = (long)(ix - xwa.x); |
2320
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8770 if(y) |
2322
ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2321
diff
changeset
|
8771 *y = (long)(ix - xwa.y); |
2320
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8772 } |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8773 } |
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8774 #else |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8775 if(x) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8776 *x = 0; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8777 if(y) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8778 *y = 0; |
2320
829228de003f
GTK4: Use package gtk4-x11 instead of gtk4 so we can call Xlib directly to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2319
diff
changeset
|
8779 #endif |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8780 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8781 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8782 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8783 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8784 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8785 * Sets the style of a given window (widget). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8786 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8787 * handle: Window (widget) handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8788 * width: New width in pixels. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8789 * height: New height in pixels. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8790 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8791 DW_FUNCTION_DEFINITION(dw_window_set_style, void, HWND handle, ULONG style, ULONG mask) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8792 DW_FUNCTION_ADD_PARAM3(handle, style, mask) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8793 DW_FUNCTION_NO_RETURN(dw_window_set_style) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8794 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, style, ULONG, mask, ULONG) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8795 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8796 GtkWidget *handle2 = handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8797 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8798 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8799 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8800 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8801 if(tmp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8802 handle2 = tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8803 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8804 else if(GTK_IS_FRAME(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8805 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8806 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_label"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8807 if(tmp && GTK_IS_LABEL(tmp)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8808 handle2 = tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8809 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8810 else if(GTK_IS_BUTTON(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8811 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8812 if(mask & DW_BS_NOBORDER) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8813 { |
2318
5951752fa7af
GTK4: Implement borderless button style for buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2317
diff
changeset
|
8814 GtkStyleContext *context = gtk_widget_get_style_context(GTK_WIDGET(handle)); |
5951752fa7af
GTK4: Implement borderless button style for buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2317
diff
changeset
|
8815 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8816 if(style & DW_BS_NOBORDER) |
2318
5951752fa7af
GTK4: Implement borderless button style for buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2317
diff
changeset
|
8817 gtk_style_context_add_class(context, "flat"); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8818 else |
2318
5951752fa7af
GTK4: Implement borderless button style for buttons.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2317
diff
changeset
|
8819 gtk_style_context_remove_class(context, "flat"); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8820 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8821 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8822 if(GTK_IS_LABEL(handle2)) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8823 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8824 gfloat x=DW_LEFT, y=DW_CENTER; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8825 /* horizontal... */ |
2319
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
8826 if(style & DW_DT_CENTER) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8827 x = DW_CENTER; |
2319
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
8828 if(style & DW_DT_RIGHT) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8829 x = DW_RIGHT; |
2319
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
8830 if(style & DW_DT_LEFT) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8831 x = DW_LEFT; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8832 /* vertical... */ |
2319
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
8833 if(style & DW_DT_VCENTER) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8834 y = DW_CENTER; |
2319
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
8835 if(style & DW_DT_TOP) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8836 y = DW_TOP; |
2319
36522ed00ef8
GTK4: Some general code cleanup and an attempt to get dw_window_set_icon()
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2318
diff
changeset
|
8837 if(style & DW_DT_BOTTOM) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8838 y = DW_BOTTOM; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8839 gtk_label_set_xalign(GTK_LABEL(handle2), x); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8840 gtk_label_set_yalign(GTK_LABEL(handle2), y); |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8841 if(style & DW_DT_WORDBREAK) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8842 gtk_label_set_wrap(GTK_LABEL(handle), TRUE); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8843 } |
2317
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8844 if(G_IS_MENU_ITEM(handle2)) |
2282
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
8845 { |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
8846 GSimpleAction *action = g_object_get_data(G_OBJECT(handle2), "_dw_action"); |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
8847 |
2317
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8848 if(action) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8849 { |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8850 if(mask & (DW_MIS_ENABLED | DW_MIS_DISABLED)) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8851 { |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8852 if((style & DW_MIS_ENABLED) || (style & DW_MIS_DISABLED)) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8853 { |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8854 if(style & DW_MIS_ENABLED) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8855 g_simple_action_set_enabled(action, TRUE); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8856 else |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8857 g_simple_action_set_enabled(action, FALSE); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8858 } |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8859 } |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8860 if(mask & (DW_MIS_CHECKED | DW_MIS_UNCHECKED)) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8861 { |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8862 GVariant *action_state = g_action_get_state(G_ACTION(action)); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8863 gboolean check = false; |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8864 |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8865 if(style & DW_MIS_CHECKED) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8866 check = true; |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8867 |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8868 if(!action_state || (g_variant_get_boolean(action_state) != check)) |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8869 { |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8870 GVariant *new_state = g_variant_new_boolean(check); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8871 g_simple_action_set_state(action, new_state); |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8872 } |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8873 } |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8874 } |
a2020f907a6c
GTK4: Implement checkable menu items.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2316
diff
changeset
|
8875 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8876 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8877 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8878 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8879 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8880 * Adds a new page to specified notebook. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8881 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8882 * handle: Window (widget) handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8883 * flags: Any additional page creation flags. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8884 * front: If TRUE page is added at the beginning. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8885 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8886 DW_FUNCTION_DEFINITION(dw_notebook_page_new, ULONG, HWND handle, DW_UNUSED(ULONG flags), int front) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8887 DW_FUNCTION_ADD_PARAM3(handle, flags, front) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8888 DW_FUNCTION_RETURN(dw_notebook_page_new, ULONG) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8889 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, DW_UNUSED(flags), ULONG, front, int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8890 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8891 GtkWidget **pagearray; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8892 ULONG retval = 256; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8893 int z; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8894 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8895 pagearray = (GtkWidget **)g_object_get_data(G_OBJECT(handle), "_dw_pagearray"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8896 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8897 if(pagearray) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8898 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8899 for(z=0;z<256;z++) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8900 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8901 if(!pagearray[z]) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8902 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8903 char text[101] = {0}; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8904 int num = z; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8905 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8906 if(front) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8907 num |= 1 << 16; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8908 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8909 snprintf(text, 100, "_dw_page%d", z); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8910 /* Save the real id and the creation flags */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8911 g_object_set_data(G_OBJECT(handle), text, GINT_TO_POINTER(num)); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8912 retval = (ULONG)z; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8913 z = 256; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8914 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8915 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8916 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8917 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8918 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8919 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8920 /* Return the physical page id from the logical page id */ |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
8921 int _dw_get_physical_page(HWND handle, unsigned long pageid) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8922 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8923 int z; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8924 GtkWidget *thispage, **pagearray = g_object_get_data(G_OBJECT(handle), "_dw_pagearray"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8925 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8926 if(pagearray) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8927 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8928 for(z=0;z<256;z++) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8929 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8930 if((thispage = gtk_notebook_get_nth_page(GTK_NOTEBOOK(handle), z))) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8931 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8932 if(thispage == pagearray[pageid]) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8933 return z; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8934 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8935 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8936 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8937 return 256; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8938 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8939 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8940 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8941 * Remove a page from a notebook. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8942 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8943 * handle: Handle to the notebook widget. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8944 * pageid: ID of the page to be destroyed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8945 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8946 DW_FUNCTION_DEFINITION(dw_notebook_page_destroy, void, HWND handle, unsigned int pageid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8947 DW_FUNCTION_ADD_PARAM2(handle, pageid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8948 DW_FUNCTION_NO_RETURN(dw_notebook_page_destroy) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8949 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, pageid, unsigned int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8950 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8951 GtkWidget **pagearray; |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
8952 int realpage = _dw_get_physical_page(handle, pageid); |
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
8953 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8954 if(realpage > -1 && realpage < 256) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8955 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8956 gtk_notebook_remove_page(GTK_NOTEBOOK(handle), realpage); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8957 if((pagearray = g_object_get_data(G_OBJECT(handle), "_dw_pagearray"))) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8958 pagearray[pageid] = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8959 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8960 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8961 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8962 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8963 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8964 * Queries the currently visible page ID. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8965 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8966 * handle: Handle to the notebook widget. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8967 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8968 DW_FUNCTION_DEFINITION(dw_notebook_page_get, ULONG, HWND handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8969 DW_FUNCTION_ADD_PARAM1(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8970 DW_FUNCTION_RETURN(dw_notebook_page_get, ULONG) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8971 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8972 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8973 ULONG retval; |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
8974 int phys = gtk_notebook_get_current_page(GTK_NOTEBOOK(handle)); |
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
8975 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
8976 retval = _dw_get_logical_page(handle, phys); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8977 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8978 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8979 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8980 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8981 * Sets the currently visibale page ID. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8982 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8983 * handle: Handle to the notebook widget. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8984 * pageid: ID of the page to be made visible. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8985 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8986 DW_FUNCTION_DEFINITION(dw_notebook_page_set, void, HWND handle, unsigned int pageid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8987 DW_FUNCTION_ADD_PARAM2(handle, pageid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8988 DW_FUNCTION_NO_RETURN(dw_notebook_page_set) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8989 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, pageid, unsigned int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8990 { |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
8991 int realpage = _dw_get_physical_page(handle, pageid); |
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
8992 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8993 if(realpage > -1 && realpage < 256) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8994 gtk_notebook_set_current_page(GTK_NOTEBOOK(handle), pageid); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
8995 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8996 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8997 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8998 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8999 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9000 * Sets the text on the specified notebook tab. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9001 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9002 * handle: Notebook handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9003 * pageid: Page ID of the tab to set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9004 * text: Pointer to the text to set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9005 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9006 DW_FUNCTION_DEFINITION(dw_notebook_page_set_text, void, HWND handle, ULONG pageid, const char *text) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9007 DW_FUNCTION_ADD_PARAM3(handle, pageid, text) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9008 DW_FUNCTION_NO_RETURN(dw_notebook_page_set_text) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9009 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, pageid, ULONG, text, const char *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9010 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9011 GtkWidget *child; |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
9012 int realpage = _dw_get_physical_page(handle, pageid); |
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
9013 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9014 if(realpage < 0 || realpage > 255) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9015 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9016 char ptext[101] = {0}; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9017 int num; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9018 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9019 snprintf(ptext, 100, "_dw_page%d", (int)pageid); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9020 num = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(handle), ptext)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9021 realpage = 0xFF & num; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9022 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9023 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9024 if(realpage > -1 && realpage < 256) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9025 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9026 child = gtk_notebook_get_nth_page(GTK_NOTEBOOK(handle), realpage); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9027 if(child) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9028 gtk_notebook_set_tab_label_text(GTK_NOTEBOOK(handle), child, text); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9029 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9030 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9031 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9032 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9033 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9034 * Sets the text on the specified notebook tab status area. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9035 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9036 * handle: Notebook handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9037 * pageid: Page ID of the tab to set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9038 * text: Pointer to the text to set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9039 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
9040 void API dw_notebook_page_set_status_text(HWND handle, unsigned long pageid, const char *text) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9041 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9042 /* TODO (if possible) */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9043 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9044 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9045 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9046 * Packs the specified box into the notebook page. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9047 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9048 * handle: Handle to the notebook to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9049 * pageid: Page ID in the notebook which is being packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9050 * page: Box handle to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9051 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9052 DW_FUNCTION_DEFINITION(dw_notebook_pack, void, HWND handle, ULONG pageid, HWND page) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9053 DW_FUNCTION_ADD_PARAM3(handle, pageid, page) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9054 DW_FUNCTION_NO_RETURN(dw_notebook_pack) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9055 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, pageid, ULONG, page, HWND) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9056 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9057 GtkWidget *label, *child, *oldlabel, **pagearray; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9058 const gchar *text = NULL; |
2276
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
9059 int num, z, realpage = -1; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9060 char ptext[101] = {0}; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9061 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9062 snprintf(ptext, 100, "_dw_page%d", (int)pageid); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9063 num = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(handle), ptext)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9064 g_object_set_data(G_OBJECT(handle), ptext, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9065 pagearray = (GtkWidget **)g_object_get_data(G_OBJECT(handle), "_dw_pagearray"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9066 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9067 if(pagearray) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9068 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9069 /* The page already exists... so get it's current page */ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9070 if(pagearray[pageid]) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9071 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9072 for(z=0;z<256;z++) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9073 { |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9074 child = gtk_notebook_get_nth_page(GTK_NOTEBOOK(handle), z); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9075 if(child == pagearray[pageid]) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9076 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9077 oldlabel = gtk_notebook_get_tab_label(GTK_NOTEBOOK(handle), child); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9078 if(oldlabel) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9079 text = gtk_label_get_text(GTK_LABEL(oldlabel)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9080 gtk_notebook_remove_page(GTK_NOTEBOOK(handle), z); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9081 realpage = z; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9082 break; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9083 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9084 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9085 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9086 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9087 pagearray[pageid] = page; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9088 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9089 label = gtk_label_new(text ? text : ""); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9090 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9091 if(realpage != -1) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9092 gtk_notebook_insert_page(GTK_NOTEBOOK(handle), page, label, realpage); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9093 else if(num & ~(0xFF)) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9094 gtk_notebook_insert_page(GTK_NOTEBOOK(handle), page, label, 0); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9095 else |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9096 gtk_notebook_insert_page(GTK_NOTEBOOK(handle), page, label, 256); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9097 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9098 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9099 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9100 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9101 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9102 * Appends the specified text to the listbox's (or combobox) entry list. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9103 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9104 * handle: Handle to the listbox to be appended to. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9105 * text: Text to append into listbox. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9106 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
9107 void API dw_listbox_append(HWND handle, const char *text) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9108 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9109 dw_listbox_insert(handle, text, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9110 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9111 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9112 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9113 * Inserts the specified text int the listbox's (or combobox) entry list at the |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9114 * position indicated. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9115 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9116 * handle: Handle to the listbox to be appended to. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9117 * text: Text to insert into listbox. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9118 * pos: 0-based index into listbox. -1 will append |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9119 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9120 DW_FUNCTION_DEFINITION(dw_listbox_insert, void, HWND handle, const char *text, int pos) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9121 DW_FUNCTION_ADD_PARAM3(handle, text, pos) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9122 DW_FUNCTION_NO_RETURN(dw_listbox_insert) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9123 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, text, const char *, pos, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9124 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9125 GtkWidget *handle2 = handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9126 GtkListStore *store = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9127 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9128 /* Get the inner handle for scrolled controls */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9129 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9130 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9131 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9132 if(tmp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9133 handle2 = tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9134 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9135 if(handle2) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9136 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9137 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9138 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9139 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9140 if(GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9141 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9142 else if(GTK_IS_COMBO_BOX(handle2)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9143 store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9144 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9145 if(store) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9146 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9147 if(pos < 0) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9148 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9149 /* Insert an entry at the end */ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9150 gtk_list_store_append(store, &iter); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9151 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9152 else |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9153 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9154 /* Insert at position */ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9155 gtk_list_store_insert(store, &iter, pos); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9156 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9157 gtk_list_store_set (store, &iter, 0, text, -1); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9158 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9159 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9160 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9161 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9162 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9163 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9164 * Appends the specified text items to the listbox's (or combobox) entry list. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9165 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9166 * handle: Handle to the listbox to be appended to. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9167 * text: Text strings to append into listbox. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9168 * count: Number of text strings to append |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9169 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9170 DW_FUNCTION_DEFINITION(dw_listbox_list_append, void, HWND handle, char **text, int count) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9171 DW_FUNCTION_ADD_PARAM3(handle, text, count) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9172 DW_FUNCTION_NO_RETURN(dw_listbox_list_append) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9173 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, text, char **, count, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9174 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9175 GtkWidget *handle2 = handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9176 GtkListStore *store = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9177 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9178 /* Get the inner handle for scrolled controls */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9179 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9180 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9181 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9182 if(tmp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9183 handle2 = tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9184 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9185 if(handle2) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9186 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9187 int z; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9188 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9189 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9190 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9191 if(GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9192 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9193 else if(GTK_IS_COMBO_BOX(handle2)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9194 store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9195 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9196 if(store) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9197 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9198 /* Insert entries at the end */ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9199 for(z=0;z<count;z++) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9200 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9201 gtk_list_store_append(store, &iter); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9202 gtk_list_store_set (store, &iter, 0, text[z], -1); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9203 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9204 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9205 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9206 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9207 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9208 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9209 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9210 * Clears the listbox's (or combobox) list of all entries. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9211 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9212 * handle: Handle to the listbox to be cleared. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9213 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9214 DW_FUNCTION_DEFINITION(dw_listbox_clear, void, HWND handle) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9215 DW_FUNCTION_ADD_PARAM1(handle) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9216 DW_FUNCTION_NO_RETURN(dw_listbox_clear) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9217 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9218 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9219 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9220 GtkWidget *handle2 = handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9221 GtkListStore *store = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9222 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9223 /* Get the inner handle for scrolled controls */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9224 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9225 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9226 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9227 if(tmp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9228 handle2 = tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9229 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9230 if(handle2) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9231 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9232 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9233 if(GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9234 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9235 else if(GTK_IS_COMBO_BOX(handle2)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9236 store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9237 |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9238 if(store) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9239 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9240 /* Clear the list */ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9241 gtk_list_store_clear(store); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9242 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9243 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9244 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9245 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9246 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9247 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9248 * Returns the listbox's item count. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9249 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9250 * handle: Handle to the listbox to be counted |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9251 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9252 DW_FUNCTION_DEFINITION(dw_listbox_count, int, HWND handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9253 DW_FUNCTION_ADD_PARAM1(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9254 DW_FUNCTION_RETURN(dw_listbox_count, int) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9255 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9256 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9257 GtkWidget *handle2 = handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9258 GtkListStore *store = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9259 int retval = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9260 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9261 /* Get the inner handle for scrolled controls */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9262 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9263 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9264 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9265 if(tmp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9266 handle2 = tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9267 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9268 if(handle2) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9269 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9270 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9271 if(GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9272 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9273 else if(GTK_IS_COMBO_BOX(handle2)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9274 store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9275 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9276 if(store) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9277 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9278 /* Get the number of children at the top level */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9279 retval = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9280 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9281 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9282 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9283 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9284 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9285 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9286 * Sets the topmost item in the viewport. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9287 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9288 * handle: Handle to the listbox to be cleared. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9289 * top: Index to the top item. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9290 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9291 DW_FUNCTION_DEFINITION(dw_listbox_set_top, void, HWND handle, int top) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9292 DW_FUNCTION_ADD_PARAM2(handle, top) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9293 DW_FUNCTION_NO_RETURN(dw_listbox_set_top) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9294 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, top, int) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9295 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9296 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9297 GtkWidget *handle2 = handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9298 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9299 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9300 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9301 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9302 if(tmp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9303 handle2 = tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9304 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9305 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9306 if(handle2 && GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9307 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9308 GtkAdjustment *adjust = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(handle)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9309 GtkListStore *store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9310 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9311 if(store && adjust) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9312 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9313 /* Get the number of children at the top level */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9314 gint rowcount = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9315 gdouble pagesize = gtk_adjustment_get_page_size(adjust); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9316 gdouble upper = gtk_adjustment_get_upper(adjust) - pagesize; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9317 gdouble lower = gtk_adjustment_get_lower(adjust); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9318 gdouble change; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9319 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9320 /* Safety check */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9321 if(rowcount > 1) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9322 { |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9323 /* Verify the range */ |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9324 rowcount--; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9325 if(top > rowcount) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9326 top = rowcount; |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9327 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9328 change = ((gdouble)top/(gdouble)rowcount) * (upper - lower); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9329 |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9330 gtk_adjustment_set_value(adjust, change + lower); |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9331 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9332 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9333 } |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9334 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9335 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9336 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9337 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9338 * Copies the given index item's text into buffer. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9339 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9340 * handle: Handle to the listbox to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9341 * index: Index into the list to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9342 * buffer: Buffer where text will be copied. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9343 * length: Length of the buffer (including NULL). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9344 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9345 DW_FUNCTION_DEFINITION(dw_listbox_get_text, void, HWND handle, unsigned int index, char *buffer, unsigned int length) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9346 DW_FUNCTION_ADD_PARAM4(handle, index, buffer, length) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9347 DW_FUNCTION_NO_RETURN(dw_listbox_get_text) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9348 DW_FUNCTION_RESTORE_PARAM4(handle, HWND, index, unsigned int, buffer, char *, length, unsigned int) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9349 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9350 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9351 GtkWidget *handle2 = handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9352 GtkListStore *store = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9353 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9354 /* Get the inner handle for scrolled controls */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9355 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9356 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9357 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9358 if(tmp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9359 handle2 = tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9360 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9361 if(handle2) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9362 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9363 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9364 if(GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9365 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9366 else if(GTK_IS_COMBO_BOX(handle2)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9367 store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9368 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9369 if(store && index < gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), NULL)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9370 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9371 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9372 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9373 /* Get the nth child at the top level */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9374 if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, index)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9375 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9376 /* Get the text */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9377 gchar *text; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9378 gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, _DW_DATA_TYPE_STRING, &text, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9379 if(text) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9380 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9381 strncpy(buffer, text, length); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9382 g_free(text); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9383 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9384 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9385 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9386 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9387 buffer[0] = '\0'; |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9388 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9389 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9390 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9391 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9392 * Sets the text of a given listbox entry. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9393 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9394 * handle: Handle to the listbox to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9395 * index: Index into the list to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9396 * buffer: Buffer where text will be copied. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9397 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9398 DW_FUNCTION_DEFINITION(dw_listbox_set_text, void, HWND handle, unsigned int index, const char *buffer) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9399 DW_FUNCTION_ADD_PARAM3(handle, index, buffer) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9400 DW_FUNCTION_NO_RETURN(dw_listbox_set_text) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9401 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, index, unsigned int, buffer, char *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9402 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9403 GtkWidget *handle2 = handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9404 GtkListStore *store = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9405 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9406 /* Get the inner handle for scrolled controls */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9407 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9408 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9409 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9410 if(tmp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9411 handle2 = tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9412 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9413 if(handle2) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9414 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9415 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9416 if(GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9417 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9418 else if(GTK_IS_COMBO_BOX(handle2)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9419 store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9420 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9421 if(store && index < gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), NULL)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9422 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9423 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9424 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9425 /* Get the nth child at the top level */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9426 if (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, index)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9427 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9428 /* Update the text */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9429 gtk_list_store_set(store, &iter, buffer); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9430 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9431 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9432 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9433 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9434 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9435 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9436 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9437 * Returns the index to the current selected item or -1 when done. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9438 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9439 * handle: Handle to the listbox to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9440 * where: Either the previous return or -1 to restart. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9441 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9442 DW_FUNCTION_DEFINITION(dw_listbox_selected_multi, int, HWND handle, int where) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9443 DW_FUNCTION_ADD_PARAM2(handle, where) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9444 DW_FUNCTION_RETURN(dw_listbox_selected_multi, int) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9445 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, where, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9446 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9447 GtkWidget *handle2; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9448 GtkListStore *store = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9449 int retval = DW_LIT_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9450 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9451 handle2 = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9452 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9453 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9454 if(handle2 && GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9455 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9456 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9457 if(store) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9458 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9459 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9460 GList *list = gtk_tree_selection_get_selected_rows(sel, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9461 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9462 if(list) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9463 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9464 int counter = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9465 GtkTreePath *path = g_list_nth_data(list, 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9466 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9467 while(path) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9468 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9469 gint *indices = gtk_tree_path_get_indices(path); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9470 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9471 if(indices && indices[0] > where) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9472 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9473 retval = indices[0]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9474 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9475 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9476 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9477 counter++; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9478 path = g_list_nth_data(list, counter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9479 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9480 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9481 g_list_foreach(list, (GFunc) gtk_tree_path_free, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9482 g_list_free(list); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9483 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9484 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9485 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9486 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9487 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9488 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9489 * Returns the index to the item in the list currently selected. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9490 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9491 * handle: Handle to the listbox to be queried. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9492 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9493 DW_FUNCTION_DEFINITION(dw_listbox_selected, int, HWND handle) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9494 DW_FUNCTION_ADD_PARAM1(handle) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9495 DW_FUNCTION_RETURN(dw_listbox_selected, int) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9496 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9497 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9498 GtkWidget *handle2 = handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9499 GtkListStore *store = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9500 unsigned int retval = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9501 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9502 /* Get the inner handle for scrolled controls */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9503 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9504 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9505 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9506 if(tmp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9507 handle2 = tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9508 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9509 if(handle2) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9510 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9511 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9512 if(GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9513 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9514 else if(GTK_IS_COMBO_BOX(handle2)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9515 store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9516 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9517 if(store) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9518 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9519 if(GTK_IS_TREE_VIEW(handle2)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9520 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9521 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9522 GList *list = gtk_tree_selection_get_selected_rows(sel, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9523 if(list) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9524 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9525 GtkTreePath *path = g_list_nth_data(list, 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9526 gint *indices = gtk_tree_path_get_indices(path); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9527 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9528 if(indices) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9529 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9530 retval = indices[0]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9531 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9532 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9533 g_list_foreach(list, (GFunc) gtk_tree_path_free, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9534 g_list_free(list); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9535 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9536 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9537 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9538 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9539 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9540 GtkTreePath *path; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9541 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9542 if(gtk_combo_box_get_active_iter(GTK_COMBO_BOX(handle2), &iter)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9543 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9544 path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9545 if(path) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9546 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9547 gint *indices = gtk_tree_path_get_indices(path); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9548 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9549 if(indices) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9550 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9551 retval = indices[0]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9552 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9553 gtk_tree_path_free(path); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9554 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9555 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9556 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9557 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9558 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9559 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9560 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9561 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9562 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9563 * Sets the selection state of a given index. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9564 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9565 * handle: Handle to the listbox to be set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9566 * index: Item index. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9567 * state: TRUE if selected FALSE if unselected. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9568 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9569 DW_FUNCTION_DEFINITION(dw_listbox_select, void, HWND handle, int index, int state) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9570 DW_FUNCTION_ADD_PARAM3(handle, index, state) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9571 DW_FUNCTION_NO_RETURN(dw_listbox_select) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9572 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, index, int, state, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9573 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9574 GtkWidget *handle2 = handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9575 GtkListStore *store = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9576 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9577 /* Get the inner handle for scrolled controls */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9578 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9579 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9580 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9581 if(tmp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9582 handle2 = tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9583 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9584 if(handle2) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9585 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9586 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9587 if(GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9588 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9589 else if(GTK_IS_COMBO_BOX(handle2)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9590 store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9591 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9592 if(store && index < gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), NULL)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9593 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9594 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9595 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9596 /* Get the nth child at the top level */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9597 if (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, index)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9598 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9599 if(GTK_IS_COMBO_BOX(handle2)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9600 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9601 gtk_combo_box_set_active_iter(GTK_COMBO_BOX(handle2), &iter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9602 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9603 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9604 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9605 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9606 if(state) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9607 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9608 /* Select the item */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9609 gtk_tree_selection_select_iter(sel, &iter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9610 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9611 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9612 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9613 /* Deselect the item */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9614 gtk_tree_selection_unselect_iter(sel, &iter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9615 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9616 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9617 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9618 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9619 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9620 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9621 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9622 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9623 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9624 * Deletes the item with given index from the list. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9625 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9626 * handle: Handle to the listbox to be set. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9627 * index: Item index. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9628 */ |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9629 DW_FUNCTION_DEFINITION(dw_listbox_delete, void, HWND handle, int index) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9630 DW_FUNCTION_ADD_PARAM2(handle, index) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9631 DW_FUNCTION_NO_RETURN(dw_listbox_delete) |
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9632 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, index, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9633 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9634 GtkWidget *handle2 = handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9635 GtkListStore *store = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9636 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9637 /* Get the inner handle for scrolled controls */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9638 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9639 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9640 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9641 if(tmp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9642 handle2 = tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9643 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9644 if(handle2) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9645 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9646 /* Make sure it is the correct tree type */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9647 if(GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9648 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9649 else if(GTK_IS_COMBO_BOX(handle2)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9650 store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(handle2)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9651 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9652 if(store) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9653 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9654 GtkTreeIter iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9655 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9656 /* Get the nth child at the top level */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9657 if (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, index)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9658 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9659 gtk_list_store_remove(store, &iter); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9660 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9661 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9662 } |
2304
ae6f678cb1a9
GTK4: Implement thread safety system based on the new MacOS thread code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2303
diff
changeset
|
9663 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9664 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9665 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9666 /* Function to do delayed positioning */ |
2301
69b06073a87d
GTK4: The "realize" signal is not quite the same as "size-allocate" so if
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2300
diff
changeset
|
9667 gboolean _dw_splitbar_set_percent(gpointer data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9668 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9669 GtkWidget *widget = data; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9670 float *percent = (float *)g_object_get_data(G_OBJECT(widget), "_dw_percent"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9671 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9672 if(percent) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9673 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9674 GtkAllocation alloc; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9675 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9676 gtk_widget_get_allocation(widget, &alloc); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9677 |
2301
69b06073a87d
GTK4: The "realize" signal is not quite the same as "size-allocate" so if
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2300
diff
changeset
|
9678 if(alloc.width > 10 && alloc.height > 10) |
69b06073a87d
GTK4: The "realize" signal is not quite the same as "size-allocate" so if
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2300
diff
changeset
|
9679 { |
69b06073a87d
GTK4: The "realize" signal is not quite the same as "size-allocate" so if
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2300
diff
changeset
|
9680 if(gtk_orientable_get_orientation(GTK_ORIENTABLE(widget)) == GTK_ORIENTATION_HORIZONTAL) |
69b06073a87d
GTK4: The "realize" signal is not quite the same as "size-allocate" so if
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2300
diff
changeset
|
9681 gtk_paned_set_position(GTK_PANED(widget), (int)(alloc.width * (*percent / 100.0))); |
69b06073a87d
GTK4: The "realize" signal is not quite the same as "size-allocate" so if
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2300
diff
changeset
|
9682 else |
69b06073a87d
GTK4: The "realize" signal is not quite the same as "size-allocate" so if
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2300
diff
changeset
|
9683 gtk_paned_set_position(GTK_PANED(widget), (int)(alloc.height * (*percent / 100.0))); |
69b06073a87d
GTK4: The "realize" signal is not quite the same as "size-allocate" so if
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2300
diff
changeset
|
9684 g_object_set_data(G_OBJECT(widget), "_dw_percent", NULL); |
69b06073a87d
GTK4: The "realize" signal is not quite the same as "size-allocate" so if
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2300
diff
changeset
|
9685 free(percent); |
69b06073a87d
GTK4: The "realize" signal is not quite the same as "size-allocate" so if
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2300
diff
changeset
|
9686 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9687 else |
2301
69b06073a87d
GTK4: The "realize" signal is not quite the same as "size-allocate" so if
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2300
diff
changeset
|
9688 return TRUE; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9689 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9690 return FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9691 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9692 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9693 /* Reposition the bar according to the percentage */ |
2301
69b06073a87d
GTK4: The "realize" signal is not quite the same as "size-allocate" so if
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2300
diff
changeset
|
9694 static gint _dw_splitbar_realize(GtkWidget *widget, gpointer data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9695 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9696 float *percent = (float *)g_object_get_data(G_OBJECT(widget), "_dw_percent"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9697 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9698 /* Prevent infinite recursion ;) */ |
2295
2a208d5400c5
GTK4: "size-allocate" signal is gone, so switch to using "realize".
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2292
diff
changeset
|
9699 if(!percent) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9700 return FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9701 |
2301
69b06073a87d
GTK4: The "realize" signal is not quite the same as "size-allocate" so if
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2300
diff
changeset
|
9702 g_idle_add(_dw_splitbar_set_percent, widget); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9703 return FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9704 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9705 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9706 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9707 * Creates a splitbar window (widget) with given parameters. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9708 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9709 * type: Value can be DW_VERT or DW_HORZ. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9710 * topleft: Handle to the window to be top or left. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9711 * bottomright: Handle to the window to be bottom or right. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9712 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9713 * A handle to a splitbar window or NULL on failure. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9714 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9715 DW_FUNCTION_DEFINITION(dw_splitbar_new, HWND, int type, HWND topleft, HWND bottomright, unsigned long cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9716 DW_FUNCTION_ADD_PARAM4(type, topleft, bottomright, cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9717 DW_FUNCTION_RETURN(dw_splitbar_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9718 DW_FUNCTION_RESTORE_PARAM4(type, int, topleft, HWND, bottomright, HWND, cid, unsigned long) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9719 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9720 GtkWidget *tmp = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9721 float *percent = malloc(sizeof(float)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9722 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9723 tmp = gtk_paned_new(type == DW_HORZ ? GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL); |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9724 gtk_paned_set_start_child(GTK_PANED(tmp), topleft); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9725 gtk_paned_set_resize_start_child(GTK_PANED(tmp), TRUE); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9726 gtk_paned_set_shrink_start_child(GTK_PANED(tmp), FALSE); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9727 gtk_paned_set_end_child(GTK_PANED(tmp), bottomright); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9728 gtk_paned_set_resize_end_child(GTK_PANED(tmp), TRUE); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9729 gtk_paned_set_shrink_end_child(GTK_PANED(tmp), FALSE); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9730 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9731 *percent = 50.0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9732 g_object_set_data(G_OBJECT(tmp), "_dw_percent", (gpointer)percent); |
2301
69b06073a87d
GTK4: The "realize" signal is not quite the same as "size-allocate" so if
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2300
diff
changeset
|
9733 g_signal_connect(G_OBJECT(tmp), "realize", G_CALLBACK(_dw_splitbar_realize), NULL); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9734 gtk_widget_show(tmp); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9735 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9736 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9737 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9738 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9739 * Sets the position of a splitbar (pecentage). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9740 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9741 * handle: The handle to the splitbar returned by dw_splitbar_new(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9742 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9743 DW_FUNCTION_DEFINITION(dw_splitbar_set, void, HWND handle, float percent) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9744 DW_FUNCTION_ADD_PARAM2(handle, percent) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9745 DW_FUNCTION_NO_RETURN(dw_splitbar_set) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9746 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, percent, float) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9747 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9748 float *mypercent = (float *)dw_window_get_data(handle, "_dw_percent"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9749 int size = 0, position; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9750 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9751 if(gtk_orientable_get_orientation(GTK_ORIENTABLE(handle)) == GTK_ORIENTATION_HORIZONTAL) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9752 size = gtk_widget_get_allocated_width(handle); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9753 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9754 size = gtk_widget_get_allocated_height(handle); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9755 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9756 if(mypercent) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9757 *mypercent = percent; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9758 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9759 if(size > 10) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9760 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9761 position = (int)((float)size * (percent / 100.0)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9762 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9763 gtk_paned_set_position(GTK_PANED(handle), position); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9764 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9765 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9766 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9767 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9768 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9769 * Gets the position of a splitbar (pecentage). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9770 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9771 * handle: The handle to the splitbar returned by dw_splitbar_new(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9772 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9773 DW_FUNCTION_DEFINITION(dw_splitbar_get, float, HWND handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9774 DW_FUNCTION_ADD_PARAM1(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9775 DW_FUNCTION_RETURN(dw_splitbar_get, float) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9776 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9777 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9778 float *percent = (float *)dw_window_get_data(handle, "_dw_percent"); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9779 float retval = 0.0; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9780 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9781 if(percent) |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9782 retval = *percent; |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9783 DW_FUNCTION_RETURN_THIS(retval); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9784 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9785 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9786 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9787 * Creates a calendar window (widget) with given parameters. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9788 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9789 * id: Unique identifier for calendar widget |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9790 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9791 * A handle to a calendar window or NULL on failure. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9792 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9793 DW_FUNCTION_DEFINITION(dw_calendar_new, HWND, ULONG cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9794 DW_FUNCTION_ADD_PARAM1(cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9795 DW_FUNCTION_RETURN(dw_calendar_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9796 DW_FUNCTION_RESTORE_PARAM1(cid, ULONG) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9797 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9798 GtkWidget *tmp = gtk_calendar_new(); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9799 GTimeZone *tz = g_time_zone_new_local(); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9800 GDateTime *now = g_date_time_new_now(tz); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9801 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9802 gtk_widget_show(tmp); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9803 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(cid)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9804 /* select today */ |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9805 gtk_calendar_set_show_day_names(GTK_CALENDAR(tmp), TRUE); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9806 gtk_calendar_set_show_heading(GTK_CALENDAR(tmp), TRUE); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9807 gtk_calendar_select_day(GTK_CALENDAR(tmp), now); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9808 g_date_time_unref(now); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9809 g_time_zone_unref(tz); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9810 DW_FUNCTION_RETURN_THIS(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9811 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9812 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9813 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9814 * Sets the current date of a calendar |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9815 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9816 * handle: The handle to the calendar returned by dw_calendar_new(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9817 * year... |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9818 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9819 DW_FUNCTION_DEFINITION(dw_calendar_set_date, void, HWND handle, unsigned int year, unsigned int month, unsigned int day) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9820 DW_FUNCTION_ADD_PARAM4(handle, year, month, day) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9821 DW_FUNCTION_NO_RETURN(dw_calendar_set_date) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9822 DW_FUNCTION_RESTORE_PARAM4(handle, HWND, year, unsigned int, month, unsigned int, day, unsigned int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9823 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9824 if(GTK_IS_CALENDAR(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9825 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9826 GTimeZone *tz = g_time_zone_new_local(); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9827 GDateTime *datetime = g_date_time_new(tz, year, month, day, 0, 0, 0); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9828 gtk_calendar_select_day(GTK_CALENDAR(handle), datetime); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9829 g_date_time_unref(datetime); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9830 g_time_zone_unref(tz); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9831 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9832 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9833 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9834 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9835 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9836 * Gets the position of a splitbar (pecentage). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9837 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9838 * handle: The handle to the splitbar returned by dw_splitbar_new(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9839 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9840 DW_FUNCTION_DEFINITION(dw_calendar_get_date, void, HWND handle, unsigned int *year, unsigned int *month, unsigned int *day) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9841 DW_FUNCTION_ADD_PARAM4(handle, year, month, day) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9842 DW_FUNCTION_NO_RETURN(dw_calendar_get_date) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9843 DW_FUNCTION_RESTORE_PARAM4(handle, HWND, year, unsigned int *, month, unsigned int *, day, unsigned int *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9844 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9845 if(GTK_IS_CALENDAR(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9846 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9847 GDateTime *datetime = gtk_calendar_get_date(GTK_CALENDAR(handle)); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9848 if(year) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9849 *year = g_date_time_get_year(datetime); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9850 if(month) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9851 *month = g_date_time_get_month(datetime); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9852 if(day) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9853 *day = g_date_time_get_day_of_month(datetime); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9854 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9855 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9856 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9857 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9858 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9859 * Sets the current focus item for a window/dialog. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9860 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9861 * handle: Handle to the dialog item to be focused. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9862 * Remarks: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9863 * This is for use after showing the window/dialog. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9864 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9865 DW_FUNCTION_DEFINITION(dw_window_set_focus, void, HWND handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9866 DW_FUNCTION_ADD_PARAM1(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9867 DW_FUNCTION_NO_RETURN(dw_window_set_focus) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9868 DW_FUNCTION_RESTORE_PARAM1(handle, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9869 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9870 if(handle) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9871 gtk_widget_grab_focus(handle); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9872 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9873 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9874 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9875 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9876 * Sets the default focus item for a window/dialog. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9877 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9878 * window: Toplevel window or dialog. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9879 * defaultitem: Handle to the dialog item to be default. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9880 * Remarks: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9881 * This is for use before showing the window/dialog. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9882 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
9883 void API dw_window_default(HWND window, HWND defaultitem) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9884 { |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9885 if(window) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9886 g_object_set_data(G_OBJECT(window), "_dw_defaultitem", (gpointer)defaultitem); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9887 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9888 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9889 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9890 * Sets window to click the default dialog item when an ENTER is pressed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9891 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9892 * window: Window (widget) to look for the ENTER press. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9893 * next: Window (widget) to move to next (or click) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9894 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9895 DW_FUNCTION_DEFINITION(dw_window_click_default, void, HWND window, HWND next) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9896 DW_FUNCTION_ADD_PARAM2(window, next) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9897 DW_FUNCTION_NO_RETURN(dw_window_click_default) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9898 DW_FUNCTION_RESTORE_PARAM2(window, HWND, next, HWND) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9899 { |
2267
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
9900 if(window && next && GTK_IS_WIDGET(window) && GTK_IS_WIDGET(next)) |
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
9901 { |
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
9902 GtkEventController *controller = gtk_event_controller_key_new(); |
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
9903 gtk_widget_add_controller(GTK_WIDGET(window), controller); |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
9904 g_signal_connect(G_OBJECT(controller), "key-pressed", G_CALLBACK(_dw_default_key_press_event), next); |
2267
7ac85e938b71
GTK4: Don't try to link webkit on GTK4... it doesn't support it yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2266
diff
changeset
|
9905 } |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
9906 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9907 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9908 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9909 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9910 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9911 * Creates a new system notification if possible. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9912 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9913 * title: The short title of the notification. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9914 * imagepath: Path to an image to display or NULL if none. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9915 * description: A longer description of the notification, |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9916 * or NULL if none is necessary. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9917 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9918 * A handle to the notification which can be used to attach a "clicked" event if desired, |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9919 * or NULL if it fails or notifications are not supported by the system. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9920 * Remarks: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9921 * This will create a system notification that will show in the notifaction panel |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9922 * on supported systems, which may be clicked to perform another task. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9923 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
9924 HWND API dw_notification_new(const char *title, const char *imagepath, const char *description, ...) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9925 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9926 GNotification *notification = g_notification_new(title); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9927 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9928 if(notification) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9929 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9930 if(description) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9931 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9932 va_list args; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9933 char outbuf[1025] = {0}; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9934 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9935 va_start(args, description); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9936 vsnprintf(outbuf, 1024, description, args); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9937 va_end(args); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9938 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9939 g_notification_set_body(notification, outbuf); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9940 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9941 if(imagepath) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9942 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9943 GFile *file = g_file_new_for_path(imagepath); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9944 GBytes *bytes = g_file_load_bytes(file, NULL, NULL, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9945 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9946 if(bytes) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9947 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9948 GIcon *icon = g_bytes_icon_new(bytes); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9949 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9950 if(icon) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9951 g_notification_set_icon(notification, G_ICON(icon)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9952 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9953 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9954 g_notification_set_default_action_and_target(notification, "app.notification", "t", |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9955 (guint64)DW_POINTER_TO_ULONGLONG(notification)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9956 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9957 return (HWND)notification; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9958 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9959 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9960 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9961 * Sends a notification created by dw_notification_new() after attaching signal handler. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9962 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9963 * notification: The handle to the notification returned by dw_notification_new(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9964 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9965 * DW_ERROR_NONE on success, DW_ERROR_UNKNOWN on error or not supported. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9966 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
9967 int API dw_notification_send(HWND notification) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9968 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9969 if(notification) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9970 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9971 char id[101] = {0}; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9972 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9973 /* Generate a unique ID based on the notification handle, |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9974 * so we can use it to remove the notification in dw_window_destroy(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9975 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9976 snprintf(id, 100, "dw-notification-%llu", DW_POINTER_TO_ULONGLONG(notification)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9977 g_application_send_notification(_DWApp, id, (GNotification *)notification); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9978 return DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9979 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9980 return DW_ERROR_UNKNOWN; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9981 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9982 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9983 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9984 * Returns some information about the current operating environment. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9985 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9986 * env: Pointer to a DWEnv struct. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9987 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
9988 void API dw_environment_query(DWEnv *env) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9989 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9990 struct utsname name; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9991 char tempbuf[_DW_ENV_STRING_SIZE] = { 0 }, *dot; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9992 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9993 uname(&name); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9994 memset(env, '\0', sizeof(DWEnv)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9995 strncpy(env->osName, name.sysname, sizeof(env->osName)-1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9996 strncpy(tempbuf, name.release, sizeof(tempbuf)-1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9997 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9998 strncpy(env->buildDate, __DATE__, sizeof(env->buildDate)-1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9999 strncpy(env->buildTime, __TIME__, sizeof(env->buildTime)-1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10000 #ifdef USE_WEBKIT |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10001 strncpy(env->htmlEngine, "WEBKIT2", sizeof(env->htmlEngine)-1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10002 #else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10003 strncpy(env->htmlEngine, "N/A", sizeof(env->htmlEngine)-1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10004 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10005 env->DWMajorVersion = DW_MAJOR_VERSION; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10006 env->DWMinorVersion = DW_MINOR_VERSION; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10007 #ifdef VER_REV |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10008 env->DWSubVersion = VER_REV; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10009 #else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10010 env->DWSubVersion = DW_SUB_VERSION; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10011 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10012 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10013 if((dot = strchr(tempbuf, '.')) != NULL) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10014 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10015 *dot = '\0'; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10016 env->MajorVersion = atoi(tempbuf); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10017 env->MinorVersion = atoi(&dot[1]); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10018 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10019 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10020 env->MajorVersion = atoi(tempbuf); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10021 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10022 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10023 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10024 * Opens a file dialog and queries user selection. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10025 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10026 * title: Title bar text for dialog. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10027 * defpath: The default path of the open dialog. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10028 * ext: Default file extention. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10029 * flags: DW_FILE_OPEN or DW_FILE_SAVE or DW_DIRECTORY_OPEN |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10030 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10031 * NULL on error. A malloced buffer containing |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10032 * the file path on success. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10033 * |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10034 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10035 DW_FUNCTION_DEFINITION(dw_file_browse, char *, const char *title, const char *defpath, const char *ext, int flags) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10036 DW_FUNCTION_ADD_PARAM4(title, defpath, ext, flags) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10037 DW_FUNCTION_RETURN(dw_file_browse, char *) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10038 DW_FUNCTION_RESTORE_PARAM4(title, const char *, defpath, const char *, ext, const char *, flags, int) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10039 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10040 GtkWidget *filew; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10041 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10042 GtkFileChooserAction action; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10043 GtkFileFilter *filter1 = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10044 GtkFileFilter *filter2 = NULL; |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10045 gchar *button = NULL; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10046 char *filename = NULL; |
2346
7b04d1b9f2eb
GTK4: Fix warning message from dW_file_browse() and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2341
diff
changeset
|
10047 char buf[1001] = {0}; |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
10048 DWDialog *tmp = dw_dialog_new(NULL); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10049 |
2346
7b04d1b9f2eb
GTK4: Fix warning message from dW_file_browse() and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2341
diff
changeset
|
10050 switch(flags) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10051 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10052 case DW_DIRECTORY_OPEN: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10053 action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10054 button = _("_Open"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10055 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10056 case DW_FILE_OPEN: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10057 action = GTK_FILE_CHOOSER_ACTION_OPEN; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10058 button = _("_Open"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10059 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10060 case DW_FILE_SAVE: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10061 action = GTK_FILE_CHOOSER_ACTION_SAVE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10062 button = _("_Save"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10063 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10064 default: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10065 dw_messagebox( "Coding error", DW_MB_OK|DW_MB_ERROR, "dw_file_browse() flags argument invalid."); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10066 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10067 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10068 |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10069 if(button) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10070 { |
2346
7b04d1b9f2eb
GTK4: Fix warning message from dW_file_browse() and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2341
diff
changeset
|
10071 filew = gtk_file_chooser_dialog_new(title, |
7b04d1b9f2eb
GTK4: Fix warning message from dW_file_browse() and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2341
diff
changeset
|
10072 NULL, |
7b04d1b9f2eb
GTK4: Fix warning message from dW_file_browse() and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2341
diff
changeset
|
10073 action, |
7b04d1b9f2eb
GTK4: Fix warning message from dW_file_browse() and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2341
diff
changeset
|
10074 _("_Cancel"), GTK_RESPONSE_CANCEL, |
7b04d1b9f2eb
GTK4: Fix warning message from dW_file_browse() and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2341
diff
changeset
|
10075 button, GTK_RESPONSE_ACCEPT, |
7b04d1b9f2eb
GTK4: Fix warning message from dW_file_browse() and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2341
diff
changeset
|
10076 NULL); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10077 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10078 if(ext) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10079 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10080 filter1 = gtk_file_filter_new(); |
2346
7b04d1b9f2eb
GTK4: Fix warning message from dW_file_browse() and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2341
diff
changeset
|
10081 snprintf(buf, 1000, "*.%s", ext); |
7b04d1b9f2eb
GTK4: Fix warning message from dW_file_browse() and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2341
diff
changeset
|
10082 gtk_file_filter_add_pattern( filter1, (gchar *)buf); |
2347
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10083 snprintf(buf, 1000, "\"%s\" files", ext); |
2346
7b04d1b9f2eb
GTK4: Fix warning message from dW_file_browse() and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2341
diff
changeset
|
10084 gtk_file_filter_set_name(filter1, (gchar *)buf); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10085 filter2 = gtk_file_filter_new(); |
2346
7b04d1b9f2eb
GTK4: Fix warning message from dW_file_browse() and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2341
diff
changeset
|
10086 gtk_file_filter_add_pattern(filter2, (gchar *)"*"); |
7b04d1b9f2eb
GTK4: Fix warning message from dW_file_browse() and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2341
diff
changeset
|
10087 gtk_file_filter_set_name(filter2, (gchar *)"All Files"); |
2347
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10088 gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(filew), filter1); |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10089 gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(filew), filter2); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10090 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10091 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10092 if(defpath) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10093 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10094 GFile *path = g_file_new_for_path(defpath); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10095 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10096 /* See if the path exists */ |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10097 if(path) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10098 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10099 /* If the path is a directory... set the current folder */ |
2346
7b04d1b9f2eb
GTK4: Fix warning message from dW_file_browse() and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2341
diff
changeset
|
10100 if(g_file_query_file_type(path, G_FILE_QUERY_INFO_NONE, NULL) == G_FILE_TYPE_DIRECTORY) |
7b04d1b9f2eb
GTK4: Fix warning message from dW_file_browse() and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2341
diff
changeset
|
10101 gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(filew), path, NULL); |
7b04d1b9f2eb
GTK4: Fix warning message from dW_file_browse() and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2341
diff
changeset
|
10102 else |
7b04d1b9f2eb
GTK4: Fix warning message from dW_file_browse() and code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2341
diff
changeset
|
10103 gtk_file_chooser_set_file(GTK_FILE_CHOOSER(filew), path, NULL); |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10104 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10105 g_object_unref(G_OBJECT(path)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10106 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10107 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10108 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10109 gtk_widget_show(GTK_WIDGET(filew)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10110 g_signal_connect(G_OBJECT(filew), "response", G_CALLBACK(_dw_dialog_response), (gpointer)tmp); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10111 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10112 if(DW_POINTER_TO_INT(dw_dialog_wait(tmp)) == GTK_RESPONSE_ACCEPT) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10113 { |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10114 GFile *file = gtk_file_chooser_get_file(GTK_FILE_CHOOSER(filew)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10115 filename = g_file_get_path(file); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10116 g_object_unref(G_OBJECT(file)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10117 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10118 |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10119 if(GTK_IS_WINDOW(filew)) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10120 gtk_window_destroy(GTK_WINDOW(filew)); |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10121 } |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10122 DW_FUNCTION_RETURN_THIS(filename); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10123 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10124 |
2347
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10125 static void _dw_exec_launched(GAppLaunchContext *context, GAppInfo *info, GVariant *platform_data, gpointer data) |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10126 { |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10127 g_variant_lookup(platform_data, "pid", "i", data); |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10128 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10129 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10130 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10131 * Execute and external program in a seperate session. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10132 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10133 * program: Program name with optional path. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10134 * type: Either DW_EXEC_CON or DW_EXEC_GUI. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10135 * params: An array of pointers to string arguements. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10136 * Returns: |
2347
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10137 * DW_ERROR_UNKNOWN on error. |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10138 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
10139 int API dw_exec(const char *program, int type, char **params) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10140 { |
2347
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10141 GAppInfo *appinfo = NULL; |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10142 char *commandline; |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10143 int retval = DW_ERROR_UNKNOWN; |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10144 |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10145 /* Generate a command line from the parameters */ |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10146 if(params && *params) |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10147 { |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10148 int z = 0, len = 0; |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10149 |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10150 while(params[z]) |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10151 { |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10152 len+=strlen(params[z]) + 1; |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10153 z++; |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10154 } |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10155 z=1; |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10156 commandline = calloc(1, len); |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10157 strcpy(commandline, params[0]); |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10158 while(params[z]) |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10159 { |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10160 strcat(commandline, " "); |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10161 strcat(commandline, params[z]); |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10162 z++; |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10163 } |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10164 } |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10165 else |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10166 commandline = strdup(program); |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10167 |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10168 /* Attempt to use app preferences to launch the application, using the selected Terminal if necessary */ |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10169 if((appinfo = g_app_info_create_from_commandline(commandline, NULL, |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10170 type == DW_EXEC_CON ? G_APP_INFO_CREATE_NEEDS_TERMINAL : G_APP_INFO_CREATE_NONE, NULL))) |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10171 { |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10172 GAppLaunchContext *context = g_app_launch_context_new(); |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10173 |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10174 g_signal_connect(G_OBJECT(context), "launched", G_CALLBACK(_dw_exec_launched), (gpointer)&retval); |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10175 |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10176 g_app_info_launch(appinfo, NULL, context, NULL); |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10177 |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10178 g_object_unref(appinfo); |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10179 g_object_unref(context); |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10180 } |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10181 free(commandline); |
e5d4c86a0c93
GTK4: Rewrite dw_exec() using GLib. Will port to GTK2 and 3 as well.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2346
diff
changeset
|
10182 return retval; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10183 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10184 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10185 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10186 * Loads a web browser pointed at the given URL. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10187 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10188 * url: Uniform resource locator. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10189 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
10190 int API dw_browse(const char *url) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10191 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10192 /* If possible load the URL/URI using gvfs... */ |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
10193 gtk_show_uri(NULL, url, GDK_CURRENT_TIME); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
10194 return DW_ERROR_NONE; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10195 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10196 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10197 #ifdef USE_WEBKIT |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10198 /* Helper function to get the web view handle */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10199 WebKitWebView *_dw_html_web_view(GtkWidget *widget) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10200 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10201 if(widget) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10202 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10203 WebKitWebView *web_view = (WebKitWebView *)widget; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10204 if(WEBKIT_IS_WEB_VIEW(web_view)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10205 return web_view; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10206 #ifndef USE_WEBKIT2 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10207 web_view = (WebKitWebView *)g_object_get_data(G_OBJECT(widget), "_dw_web_view"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10208 if(WEBKIT_IS_WEB_VIEW(web_view)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10209 return web_view; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10210 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10211 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10212 return NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10213 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10214 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10215 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10216 * Causes the embedded HTML widget to take action. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10217 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10218 * handle: Handle to the window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10219 * action: One of the DW_HTML_* constants. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10220 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
10221 void API dw_html_action(HWND handle, int action) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10222 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10223 #ifdef USE_WEBKIT |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10224 WebKitWebView *web_view; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10225 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10226 if((web_view = _dw_html_web_view(handle))) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10227 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10228 switch(action) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10229 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10230 case DW_HTML_GOBACK: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10231 webkit_web_view_go_back(web_view); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10232 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10233 case DW_HTML_GOFORWARD: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10234 webkit_web_view_go_forward(web_view); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10235 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10236 case DW_HTML_GOHOME: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10237 webkit_web_view_load_uri(web_view, DW_HOME_URL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10238 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10239 case DW_HTML_RELOAD: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10240 webkit_web_view_reload(web_view); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10241 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10242 case DW_HTML_STOP: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10243 webkit_web_view_stop_loading(web_view); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10244 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10245 case DW_HTML_PRINT: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10246 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10247 WebKitPrintOperation *operation = webkit_print_operation_new(web_view); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10248 webkit_print_operation_run_dialog(operation, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10249 g_object_unref(operation); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10250 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10251 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10252 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10253 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10254 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10255 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10256 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10257 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10258 * Render raw HTML code in the embedded HTML widget.. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10259 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10260 * handle: Handle to the window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10261 * string: String buffer containt HTML code to |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10262 * be rendered. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10263 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10264 * 0 on success. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10265 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
10266 int API dw_html_raw(HWND handle, const char *string) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10267 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10268 #ifdef USE_WEBKIT |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10269 WebKitWebView *web_view; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10270 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10271 if((web_view = _dw_html_web_view(handle))) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10272 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10273 webkit_web_view_load_html(web_view, string, "file:///"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10274 gtk_widget_show(GTK_WIDGET(handle)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10275 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10276 return DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10277 #else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10278 return DW_ERROR_UNKNOWN; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10279 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10280 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10281 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10282 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10283 * Render file or web page in the embedded HTML widget.. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10284 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10285 * handle: Handle to the window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10286 * url: Universal Resource Locator of the web or |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10287 * file object to be rendered. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10288 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10289 * 0 on success. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10290 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
10291 int API dw_html_url(HWND handle, const char *url) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10292 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10293 #ifdef USE_WEBKIT |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10294 WebKitWebView *web_view; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10295 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10296 if((web_view = _dw_html_web_view(handle))) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10297 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10298 webkit_web_view_load_uri(web_view, url); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10299 gtk_widget_show(GTK_WIDGET(handle)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10300 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10301 return DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10302 #else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10303 return DW_ERROR_UNKNOWN; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10304 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10305 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10306 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10307 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10308 * Executes the javascript contained in "script" in the HTML window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10309 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10310 * handle: Handle to the HTML window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10311 * script: Javascript code to execute. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10312 * scriptdata: Data passed to the signal handler. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10313 * Notes: A DW_SIGNAL_HTML_RESULT event will be raised with scriptdata. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10314 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10315 * DW_ERROR_NONE (0) on success. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10316 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
10317 int API dw_html_javascript_run(HWND handle, const char *script, void *scriptdata) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10318 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10319 #ifdef USE_WEBKIT |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10320 WebKitWebView *web_view; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10321 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10322 if((web_view = _dw_html_web_view(handle))) |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
10323 webkit_web_view_run_javascript(web_view, script, NULL, _dw_html_result_event, scriptdata); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10324 return DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10325 #else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10326 return DW_ERROR_UNKNOWN; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10327 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10328 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10329 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10330 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10331 * Create a new HTML window (widget) to be packed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10332 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10333 * id: An ID to be used with dw_window_from_id() or 0L. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10334 */ |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10335 DW_FUNCTION_DEFINITION(dw_html_new, HWND, DW_UNUSED(ULONG cid)) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10336 DW_FUNCTION_ADD_PARAM1(cid) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10337 DW_FUNCTION_RETURN(dw_html_new, HWND) |
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10338 DW_FUNCTION_RESTORE_PARAM1(DW_UNUSED(cid), ULONG) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10339 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10340 GtkWidget *widget = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10341 #ifdef USE_WEBKIT |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10342 WebKitWebView *web_view; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10343 WebKitSettings *settings; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10344 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10345 web_view = (WebKitWebView *)webkit_web_view_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10346 settings = webkit_web_view_get_settings(web_view); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10347 /* Make sure java script is enabled */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10348 webkit_settings_set_enable_javascript(settings, TRUE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10349 webkit_web_view_set_settings(web_view, settings); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10350 widget = (GtkWidget *)web_view; |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10351 g_object_set_data(G_OBJECT(widget), "_dw_id", GINT_TO_POINTER(cid)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10352 gtk_widget_show(widget); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10353 #else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10354 dw_debug( "HTML widget not available; you do not have access to webkit.\n" ); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10355 #endif |
2305
047ad6a5cc1d
GTK4: Add more functions to the thread safety system... might need to do
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2304
diff
changeset
|
10356 DW_FUNCTION_RETURN_THIS(widget); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10357 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10358 |
2274
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10359 static void _dw_clipboard_callback(GObject *object, GAsyncResult *res, gpointer data) |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10360 { |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10361 DWDialog *tmp = (DWDialog *)data; |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10362 |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10363 if(tmp && tmp->data) |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10364 { |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10365 char *text = gdk_clipboard_read_text_finish(GDK_CLIPBOARD(tmp->data), res, NULL); |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10366 |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10367 dw_dialog_dismiss(tmp, text ? strdup(text) : text); |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10368 } |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10369 } |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10370 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10371 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10372 * Gets the contents of the default clipboard as text. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10373 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10374 * None. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10375 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10376 * Pointer to an allocated string of text or NULL if clipboard empty or contents could not |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10377 * be converted to text. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10378 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
10379 char * API dw_clipboard_get_text(void) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10380 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
10381 GdkDisplay *display = gdk_display_get_default(); |
2274
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10382 GdkClipboard *clipboard; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10383 char *ret = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10384 |
2274
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10385 if((clipboard = gdk_display_get_clipboard(display))) |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10386 { |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10387 DWDialog *tmp = dw_dialog_new(DW_POINTER(clipboard)); |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10388 |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10389 gdk_clipboard_read_text_async(clipboard, NULL, _dw_clipboard_callback, (gpointer)tmp); |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10390 |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10391 ret = (char *)dw_dialog_wait(tmp); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10392 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10393 return ret; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10394 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10395 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10396 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10397 * Sets the contents of the default clipboard to the supplied text. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10398 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10399 * Text. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10400 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
10401 void API dw_clipboard_set_text(const char *str, int len) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10402 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
10403 GdkDisplay *display = gdk_display_get_default(); |
2274
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10404 GdkClipboard *clipboard; |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10405 |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10406 if((clipboard = gdk_display_get_clipboard(display))) |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
10407 gdk_clipboard_set_text(clipboard, str); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10408 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10409 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10410 /* Internal function to create the drawable pixmap and call the function */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10411 static void _dw_draw_page(GtkPrintOperation *operation, GtkPrintContext *context, int page_nr) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10412 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10413 cairo_t *cr = gtk_print_context_get_cairo_context(context); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10414 void *drawdata = g_object_get_data(G_OBJECT(operation), "_dw_drawdata"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10415 int (*drawfunc)(HPRINT, HPIXMAP, int, void *) = g_object_get_data(G_OBJECT(operation), "_dw_drawfunc"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10416 int result = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10417 HPIXMAP pixmap; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10418 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10419 if(cr && drawfunc && (pixmap = calloc(1,sizeof(struct _hpixmap)))) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10420 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10421 pixmap->image = cairo_get_group_target(cr); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10422 pixmap->handle = (HWND)operation; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10423 pixmap->width = gtk_print_context_get_width(context); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10424 pixmap->height = gtk_print_context_get_height(context); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10425 result = drawfunc((HPRINT)operation, pixmap, page_nr, drawdata); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10426 if(result) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10427 gtk_print_operation_draw_page_finish(operation); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10428 free(pixmap); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10429 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10430 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10431 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10432 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10433 * Creates a new print object. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10434 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10435 * jobname: Name of the print job to show in the queue. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10436 * flags: Flags to initially configure the print object. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10437 * pages: Number of pages to print. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10438 * drawfunc: The pointer to the function to be used as the callback. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10439 * drawdata: User data to be passed to the handler function. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10440 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10441 * A handle to the print object or NULL on failure. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10442 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10443 HPRINT API dw_print_new(const char *jobname, unsigned long flags, unsigned int pages, void *drawfunc, void *drawdata) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10444 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10445 GtkPrintOperation *op; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10446 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10447 if(!drawfunc) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10448 return NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10449 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10450 if((op = gtk_print_operation_new())) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10451 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10452 gtk_print_operation_set_n_pages(op, pages); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10453 gtk_print_operation_set_job_name(op, jobname ? jobname : "Dynamic Windows Print Job"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10454 g_object_set_data(G_OBJECT(op), "_dw_drawfunc", drawfunc); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10455 g_object_set_data(G_OBJECT(op), "_dw_drawdata", drawdata); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10456 g_signal_connect(op, "draw_page", G_CALLBACK(_dw_draw_page), NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10457 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10458 return (HPRINT)op; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10459 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10460 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10461 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10462 * Runs the print job, causing the draw page callbacks to fire. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10463 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10464 * print: Handle to the print object returned by dw_print_new(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10465 * flags: Flags to run the print job. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10466 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10467 * DW_ERROR_UNKNOWN on error or DW_ERROR_NONE on success. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10468 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10469 int API dw_print_run(HPRINT print, unsigned long flags) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10470 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10471 GtkPrintOperationResult res; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10472 GtkPrintOperation *op = (GtkPrintOperation *)print; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10473 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10474 res = gtk_print_operation_run(op, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, NULL, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10475 return (res == GTK_PRINT_OPERATION_RESULT_ERROR ? DW_ERROR_UNKNOWN : DW_ERROR_NONE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10476 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10477 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10478 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10479 * Cancels the print job, typically called from a draw page callback. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10480 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10481 * print: Handle to the print object returned by dw_print_new(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10482 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10483 void API dw_print_cancel(HPRINT print) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10484 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10485 GtkPrintOperation *op = (GtkPrintOperation *)print; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10486 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10487 gtk_print_operation_cancel(op); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10488 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10489 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10490 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10491 * Returns a pointer to a static buffer which contains the |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10492 * current user directory. Or the root directory (C:\ on |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10493 * OS/2 and Windows). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10494 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
10495 char * API dw_user_dir(void) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10496 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10497 static char _user_dir[1024] = ""; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10498 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10499 if(!_user_dir[0]) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10500 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10501 char *home = getenv("HOME"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10502 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10503 if(home) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10504 strcpy(_user_dir, home); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10505 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10506 strcpy(_user_dir, "/"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10507 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10508 return _user_dir; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10509 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10510 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10511 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10512 * Returns a pointer to a static buffer which containes the |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10513 * private application data directory. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10514 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10515 char * API dw_app_dir(void) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10516 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10517 return _dw_share_path; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10518 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10519 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10520 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10521 * Sets the application ID used by this Dynamic Windows application instance. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10522 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10523 * appid: A string typically in the form: com.company.division.application |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10524 * appname: The application name used on Windows or NULL. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10525 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10526 * DW_ERROR_NONE after successfully setting the application ID. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10527 * DW_ERROR_UNKNOWN if unsupported on this system. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10528 * DW_ERROR_GENERAL if the application ID is not allowed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10529 * Remarks: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10530 * This must be called before dw_init(). If dw_init() is called first |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10531 * it will create a unique ID in the form: org.dbsoft.dwindows.application |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10532 * or if the application name cannot be detected: org.dbsoft.dwindows.pid.# |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10533 * The appname is only required on Windows. If NULL is passed the detected |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10534 * application name will be used, but a prettier name may be desired. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10535 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
10536 int API dw_app_id_set(const char *appid, const char *appname) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10537 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10538 if(g_application_id_is_valid(appid)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10539 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10540 strncpy(_dw_app_id, appid, _DW_APP_ID_SIZE); |
2333
d0f884083c63
GTK: Use appname in dw_app_id_set() to set g_set_application_name().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2332
diff
changeset
|
10541 if(appname) |
d0f884083c63
GTK: Use appname in dw_app_id_set() to set g_set_application_name().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2332
diff
changeset
|
10542 g_set_application_name(appname); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10543 return DW_ERROR_NONE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10544 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10545 return DW_ERROR_GENERAL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10546 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10547 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10548 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10549 * Call a function from the window (widget)'s context. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10550 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10551 * handle: Window handle of the widget. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10552 * function: Function pointer to be called. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10553 * data: Pointer to the data to be passed to the function. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10554 */ |
2334
29220ecf8db8
GTK4: dw_window_function() actually calls on the main thread now.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2333
diff
changeset
|
10555 DW_FUNCTION_DEFINITION(dw_window_function, void, DW_UNUSED(HWND handle), void *function, void *data) |
29220ecf8db8
GTK4: dw_window_function() actually calls on the main thread now.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2333
diff
changeset
|
10556 DW_FUNCTION_ADD_PARAM3(handle, function, data) |
29220ecf8db8
GTK4: dw_window_function() actually calls on the main thread now.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2333
diff
changeset
|
10557 DW_FUNCTION_NO_RETURN(dw_window_function) |
29220ecf8db8
GTK4: dw_window_function() actually calls on the main thread now.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2333
diff
changeset
|
10558 DW_FUNCTION_RESTORE_PARAM3(DW_UNUSED(handle), HWND, function, void *, data, void *) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10559 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10560 void (* windowfunc)(void *); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10561 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10562 windowfunc = function; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10563 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10564 if(windowfunc) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10565 windowfunc(data); |
2334
29220ecf8db8
GTK4: dw_window_function() actually calls on the main thread now.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2333
diff
changeset
|
10566 DW_FUNCTION_RETURN_NOTHING; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10567 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10568 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10569 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10570 * Add a named user data item to a window handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10571 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10572 * window: Window handle of signal to be called back. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10573 * dataname: A string pointer identifying which signal to be hooked. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10574 * data: User data to be passed to the handler function. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10575 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
10576 void API dw_window_set_data(HWND window, const char *dataname, void *data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10577 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10578 HWND thiswindow = window; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10579 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10580 if(!window) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10581 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10582 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10583 if(GTK_IS_SCROLLED_WINDOW(window)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10584 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10585 thiswindow = (HWND)g_object_get_data(G_OBJECT(window), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10586 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10587 if(thiswindow && G_IS_OBJECT(thiswindow)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10588 g_object_set_data(G_OBJECT(thiswindow), dataname, (gpointer)data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10589 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10590 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10591 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10592 * Gets a named user data item to a window handle. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10593 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10594 * window: Window handle of signal to be called back. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10595 * dataname: A string pointer identifying which signal to be hooked. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10596 * data: User data to be passed to the handler function. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10597 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
10598 void * API dw_window_get_data(HWND window, const char *dataname) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10599 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10600 HWND thiswindow = window; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10601 void *ret = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10602 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10603 if(!window) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10604 return NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10605 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10606 if(GTK_IS_SCROLLED_WINDOW(window)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10607 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10608 thiswindow = (HWND)g_object_get_data(G_OBJECT(window), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10609 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10610 if(G_IS_OBJECT(thiswindow)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10611 ret = (void *)g_object_get_data(G_OBJECT(thiswindow), dataname); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10612 return ret; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10613 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10614 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10615 /* Internal function to get the state of the timer before firing */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10616 gboolean _dw_timer_func(gpointer data) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10617 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10618 void (*sigfunc)(void *data) = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10619 void *sdata; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10620 char tmpbuf[31] = {0}; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10621 int *tag = data; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10622 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10623 if(tag) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10624 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10625 snprintf(tmpbuf, 30, "_dw_timer%d", *tag); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10626 sigfunc = g_object_get_data(G_OBJECT(_DWObject), tmpbuf); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10627 snprintf(tmpbuf, 30, "_dw_timerdata%d", *tag); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10628 sdata = g_object_get_data(G_OBJECT(_DWObject), tmpbuf); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10629 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10630 if(!sigfunc) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10631 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10632 if(tag) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10633 free(tag); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10634 return FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10635 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10636 sigfunc(sdata); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10637 return TRUE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10638 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10639 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10640 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10641 * Add a callback to a timer event. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10642 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10643 * interval: Milliseconds to delay between calls. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10644 * sigfunc: The pointer to the function to be used as the callback. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10645 * data: User data to be passed to the handler function. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10646 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10647 * Timer ID for use with dw_timer_disconnect(), 0 on error. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10648 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10649 int API dw_timer_connect(int interval, void *sigfunc, void *data) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10650 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10651 int *tag; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10652 char tmpbuf[31] = {0}; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10653 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10654 tag = calloc(1, sizeof(int)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10655 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10656 *tag = g_timeout_add(interval, (GSourceFunc)_dw_timer_func, (gpointer)tag); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10657 snprintf(tmpbuf, 30, "_dw_timer%d", *tag); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10658 g_object_set_data(G_OBJECT(_DWObject), tmpbuf, sigfunc); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10659 snprintf(tmpbuf, 30, "_dw_timerdata%d", *tag); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10660 g_object_set_data(G_OBJECT(_DWObject), tmpbuf, data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10661 return *tag; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10662 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10663 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10664 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10665 * Removes timer callback. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10666 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10667 * id: Timer ID returned by dw_timer_connect(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10668 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10669 void API dw_timer_disconnect(int id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10670 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10671 char tmpbuf[31] = {0}; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10672 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10673 snprintf(tmpbuf, 30, "_dw_timer%d", id); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10674 g_object_set_data(G_OBJECT(_DWObject), tmpbuf, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10675 snprintf(tmpbuf, 30, "_dw_timerdata%d", id); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10676 g_object_set_data(G_OBJECT(_DWObject), tmpbuf, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10677 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10678 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10679 /* Get the actual signal window handle not the user window handle |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10680 * Should mimic the code in dw_signal_connect() below. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10681 */ |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
10682 static HWND _dw_find_signal_window(HWND window, const char *signame) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10683 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10684 HWND thiswindow = window; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10685 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10686 if(GTK_IS_SCROLLED_WINDOW(thiswindow)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10687 thiswindow = (HWND)g_object_get_data(G_OBJECT(window), "_dw_user"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10688 else if(GTK_IS_SCALE(thiswindow) || GTK_IS_SCROLLBAR(thiswindow) || GTK_IS_SPIN_BUTTON(thiswindow)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10689 thiswindow = (GtkWidget *)g_object_get_data(G_OBJECT(thiswindow), "_dw_adjustment"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10690 else if(GTK_IS_TREE_VIEW(thiswindow) && strcmp(signame, DW_SIGNAL_ITEM_SELECT) == 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10691 thiswindow = (GtkWidget *)gtk_tree_view_get_selection(GTK_TREE_VIEW(thiswindow)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10692 return thiswindow; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10693 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10694 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10695 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10696 * Add a callback to a window event. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10697 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10698 * window: Window handle of signal to be called back. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10699 * signame: A string pointer identifying which signal to be hooked. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10700 * sigfunc: The pointer to the function to be used as the callback. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10701 * data: User data to be passed to the handler function. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10702 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
10703 void API dw_signal_connect(HWND window, const char *signame, void *sigfunc, void *data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10704 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10705 dw_signal_connect_data(window, signame, sigfunc, NULL, data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10706 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10707 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10708 /* Internal function to free any allocated signal data.. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10709 * and call any required function to free additional memory. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10710 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10711 static void _dw_signal_disconnect(gpointer data, GClosure *closure) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10712 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10713 if(data) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10714 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10715 void **params = (void **)data; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10716 void (*discfunc)(HWND, void *) = params[1]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10717 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10718 if(discfunc) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10719 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
10720 SignalHandler work = _dw_get_signal_handler(data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10721 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10722 if(work.window) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10723 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10724 discfunc(work.window, work.data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10725 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10726 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10727 free(data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10728 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10729 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10730 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10731 #define _DW_INTERNAL_CALLBACK_PARAMS 4 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10732 |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10733 /* Signal setup functions */ |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
10734 GObject *_dw_key_setup(struct _dw_signal_list *signal, GObject *object, void *sigfunc, void *discfunc, void *data) |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10735 { |
2309
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
10736 /* Special case for item enter... we need a mouse callback too */ |
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
10737 if(strcmp(signal->name, DW_SIGNAL_ITEM_ENTER) == 0) |
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
10738 { |
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
10739 GtkGesture *gesture = gtk_gesture_click_new(); |
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
10740 gtk_widget_add_controller(GTK_WIDGET(object), GTK_EVENT_CONTROLLER(gesture)); |
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
10741 int cid, sigid = _dw_set_signal_handler(G_OBJECT(object), (HWND)object, sigfunc, data, (gpointer)_dw_container_enter_mouse, discfunc); |
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
10742 void **newparams = calloc(sizeof(void *), 3); |
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
10743 |
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
10744 newparams[0] = DW_INT_TO_POINTER(sigid); |
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
10745 newparams[2] = DW_POINTER(object); |
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
10746 cid = g_signal_connect_data(G_OBJECT(gesture), "pressed", G_CALLBACK(_dw_container_enter_mouse), newparams, _dw_signal_disconnect, 0); |
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
10747 _dw_set_signal_handler_id(object, sigid, cid); |
e238178186ff
GTK: Add a secondary callback for the mouse enter, but keep the logic in
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2308
diff
changeset
|
10748 } |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10749 if(GTK_IS_WIDGET(object)) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10750 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10751 GtkEventController *controller = gtk_event_controller_key_new(); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10752 gtk_widget_add_controller(GTK_WIDGET(object), controller); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10753 return G_OBJECT(controller); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10754 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10755 return object; |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10756 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10757 |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
10758 GObject *_dw_button_setup(struct _dw_signal_list *signal, GObject *object, void *sigfunc, void *discfunc, void *data) |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10759 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10760 /* Special case for handling notification signals, which aren't really signals */ |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10761 if(G_IS_NOTIFICATION(object) && strcmp(signal->name, DW_SIGNAL_CLICKED) == 0) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10762 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10763 char textbuf[101] = {0}; |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10764 snprintf(textbuf, 100, "dw-notification-%llu-func", DW_POINTER_TO_ULONGLONG(object)); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10765 g_object_set_data(G_OBJECT(_DWApp), textbuf, DW_POINTER(sigfunc)); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10766 snprintf(textbuf, 100, "dw-notification-%llu-data", DW_POINTER_TO_ULONGLONG(object)); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10767 g_object_set_data(G_OBJECT(_DWApp), textbuf, DW_POINTER(data)); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10768 return NULL; |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10769 } |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
10770 /* GTK signal name for check buttons is "toggled" not "clicked" */ |
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
10771 else if(GTK_IS_CHECK_BUTTON(object) && strcmp(signal->name, DW_SIGNAL_CLICKED) == 0) |
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
10772 strcpy(signal->gname, "toggled"); |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
10773 /* For menu items, get the G(Simple)Action and the signal is "activate" */ |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
10774 else if(G_IS_MENU_ITEM(object) && strcmp(signal->name, DW_SIGNAL_CLICKED) == 0) |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
10775 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
10776 GSimpleAction *action = G_SIMPLE_ACTION(g_object_get_data(object, "_dw_action")); |
2289
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
10777 |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
10778 if(action) |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
10779 { |
2291
ce1b9e558584
GTK4: Fix minor logic error causing menu activation callbacks to fail.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2290
diff
changeset
|
10780 int cid, sigid = _dw_set_signal_handler(G_OBJECT(object), (HWND)object, sigfunc, data, (gpointer)_dw_menu_handler, discfunc); |
2290
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
10781 void **newparams = calloc(sizeof(void *), 3); |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
10782 |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
10783 newparams[0] = DW_INT_TO_POINTER(sigid); |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
10784 newparams[1] = discfunc; |
2290
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
10785 newparams[2] = DW_POINTER(object); |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
10786 cid = g_signal_connect_data(G_OBJECT(action), "activate", G_CALLBACK(_dw_menu_handler), newparams, _dw_signal_disconnect, 0); |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
10787 _dw_set_signal_handler_id(object, sigid, cid); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
10788 } |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
10789 return NULL; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
10790 } |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
10791 return object; |
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
10792 } |
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
10793 |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
10794 GObject *_dw_mouse_setup(struct _dw_signal_list *signal, GObject *object, void *sigfunc, void *discfunc, void *data) |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
10795 { |
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
10796 if(GTK_IS_WIDGET(object)) |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10797 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10798 GtkGesture *gesture = gtk_gesture_click_new(); |
2339
6ad84c425bbd
GTK4: Enable all mouse buttons in callbacks, not just button 1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2338
diff
changeset
|
10799 gtk_gesture_single_set_button(GTK_GESTURE_SINGLE(gesture), 0); |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10800 gtk_widget_add_controller(GTK_WIDGET(object), GTK_EVENT_CONTROLLER(gesture)); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10801 return G_OBJECT(gesture); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10802 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10803 return object; |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10804 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10805 |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
10806 GObject *_dw_motion_setup(struct _dw_signal_list *signal, GObject *object, void *sigfunc, void *discfunc, void *data) |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10807 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10808 if(GTK_IS_WIDGET(object)) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10809 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10810 GtkEventController *controller = gtk_event_controller_motion_new(); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10811 gtk_widget_add_controller(GTK_WIDGET(object), controller); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10812 return G_OBJECT(controller); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10813 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10814 return object; |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10815 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10816 |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
10817 GObject *_dw_draw_setup(struct _dw_signal_list *signal, GObject *object, void *sigfunc, void *discfunc, void *data) |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10818 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10819 if(GTK_IS_DRAWING_AREA(object)) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10820 { |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
10821 g_object_set_data(object, "_dw_expose_func", sigfunc); |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10822 gtk_drawing_area_set_draw_func(GTK_DRAWING_AREA(object), signal->func, data, NULL); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10823 return NULL; |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10824 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10825 return object; |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10826 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10827 |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
10828 GObject *_dw_tree_setup(struct _dw_signal_list *signal, GObject *object, void *sigfunc, void *discfunc, void *data) |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10829 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10830 if(GTK_IS_TREE_VIEW(object)) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10831 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10832 if(strcmp(signal->name, DW_SIGNAL_COLUMN_CLICK) == 0) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10833 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10834 /* We don't actually need a signal handler here... just need to assign the handler ID |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10835 * Since the handlers for the columns were already created in _dw_container_setup() |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10836 */ |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
10837 int sigid = _dw_set_signal_handler(object, (HWND)object, sigfunc, data, signal->func, discfunc); |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10838 g_object_set_data(object, "_dw_column_click_id", GINT_TO_POINTER(sigid+1)); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10839 return NULL; |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10840 } |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
10841 else if(strcmp(signal->name, DW_SIGNAL_ITEM_SELECT) == 0) |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
10842 { |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
10843 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(object)); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
10844 return G_OBJECT(sel); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
10845 } |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10846 else |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10847 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10848 GtkGesture *gesture = gtk_gesture_click_new(); |
2287
680212c356e3
GTK4: Refactor tree and fix DW_SIGNAL_ITEM_CONTEXT signals on tree view
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2286
diff
changeset
|
10849 /* Set button to return to 3 for context secondary clicks */ |
680212c356e3
GTK4: Refactor tree and fix DW_SIGNAL_ITEM_CONTEXT signals on tree view
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2286
diff
changeset
|
10850 if(strcmp(signal->name, DW_SIGNAL_ITEM_CONTEXT) == 0) |
680212c356e3
GTK4: Refactor tree and fix DW_SIGNAL_ITEM_CONTEXT signals on tree view
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2286
diff
changeset
|
10851 gtk_gesture_single_set_button(GTK_GESTURE_SINGLE(gesture), 3); |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10852 gtk_widget_add_controller(GTK_WIDGET(object), GTK_EVENT_CONTROLLER(gesture)); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10853 return G_OBJECT(gesture); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10854 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10855 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10856 return object; |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10857 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10858 |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
10859 GObject *_dw_value_setup(struct _dw_signal_list *signal, GObject *object, void *sigfunc, void *discfunc, void *data) |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10860 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10861 if(GTK_IS_SCALE(object) || GTK_IS_SCROLLBAR(object) || GTK_IS_SPIN_BUTTON(object)) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10862 return G_OBJECT(g_object_get_data(object, "_dw_adjustment")); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10863 return object; |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10864 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10865 |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
10866 GObject *_dw_focus_setup(struct _dw_signal_list *signal, GObject *object, void *sigfunc, void *discfunc, void *data) |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10867 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10868 if(GTK_IS_COMBO_BOX(object) && strcmp(signal->name, DW_SIGNAL_SET_FOCUS) == 0) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10869 return G_OBJECT(gtk_combo_box_get_child(GTK_COMBO_BOX(object))); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10870 return object; |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10871 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10872 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
10873 #ifdef USE_WEBKIT |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
10874 GObject *_dw_html_setup(struct _dw_signal_list *signal, GObject *object, void *sigfunc, void *discfunc, void *data) |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10875 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10876 if(WEBKIT_IS_WEB_VIEW(object) && strcmp(signal->name, DW_SIGNAL_HTML_RESULT) == 0) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10877 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10878 /* We don't actually need a signal handler here... just need to assign the handler ID |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10879 * Since the handler is created in dw_html_javasript_run() |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10880 */ |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
10881 int sigid = _dw_set_signal_handler(object, (HWND)object, sigfunc, data, signal->func, discfunc); |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10882 g_object_set_data(object, "_dw_html_result_id", GINT_TO_POINTER(sigid+1)); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10883 return NULL; |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10884 } |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
10885 return object; |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
10886 } |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10887 #endif |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10888 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10889 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10890 * Add a callback to a window event with a closure callback. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10891 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10892 * window: Window handle of signal to be called back. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10893 * signame: A string pointer identifying which signal to be hooked. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10894 * sigfunc: The pointer to the function to be used as the callback. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10895 * discfunc: The pointer to the function called when this handler is removed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10896 * data: User data to be passed to the handler function. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10897 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
10898 void API dw_signal_connect_data(HWND window, const char *signame, void *sigfunc, void *discfunc, void *data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10899 { |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
10900 SignalList signal = _dw_findsignal(signame); |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10901 |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
10902 if(signal.func) |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10903 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10904 GObject *object = (GObject *)window; |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
10905 void **params; |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10906 int sigid; |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10907 gint cid; |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10908 |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10909 /* |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10910 * If the window we are setting the signal on is a scrolled window we need to get |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10911 * the "real" widget type. thiswindow is the "real" widget type |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10912 */ |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10913 if (GTK_IS_SCROLLED_WINDOW(window) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10914 #ifdef USE_WEBKIT |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10915 && !(object = G_OBJECT(_dw_html_web_view(window))) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10916 #endif |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10917 ) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10918 object = (GObject *)g_object_get_data(G_OBJECT(window), "_dw_user"); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10919 |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10920 /* Do object class specific setup */ |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
10921 if(signal.setup) |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
10922 object = signal.setup(&signal, object, sigfunc, discfunc, data); |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10923 |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10924 if(!object) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10925 return; |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
10926 |
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
10927 params = calloc(_DW_INTERNAL_CALLBACK_PARAMS, sizeof(void *)); |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
10928 sigid = _dw_set_signal_handler(object, window, sigfunc, data, signal.func, discfunc); |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10929 params[0] = DW_INT_TO_POINTER(sigid); |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
10930 /* Save the disconnect function pointer */ |
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
10931 params[1] = discfunc; |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10932 params[2] = DW_POINTER(object); |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
10933 cid = g_signal_connect_data(object, signal.gname, G_CALLBACK(signal.func), params, _dw_signal_disconnect, 0); |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
10934 _dw_set_signal_handler_id(object, sigid, cid); |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10935 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10936 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10937 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10938 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10939 * Removes callbacks for a given window with given name. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10940 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10941 * window: Window handle of callback to be removed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10942 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
10943 void API dw_signal_disconnect_by_name(HWND window, const char *signame) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10944 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10945 int z, count; |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
10946 SignalList signal; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10947 void **params = alloca(sizeof(void *) * 3); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10948 |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
10949 params[2] = _dw_find_signal_window(window, signame); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10950 count = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(params[2]), "_dw_sigcounter")); |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
10951 signal = _dw_findsignal(signame); |
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
10952 |
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
10953 if(signal.func) |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10954 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10955 for(z=0;z<count;z++) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10956 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10957 SignalHandler sh; |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10958 |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10959 params[0] = GINT_TO_POINTER(z); |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
10960 sh = _dw_get_signal_handler(params); |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10961 |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
10962 if(sh.intfunc == signal.func) |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
10963 _dw_remove_signal_handler((HWND)params[2], z); |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
10964 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10965 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10966 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10967 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10968 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10969 * Removes all callbacks for a given window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10970 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10971 * window: Window handle of callback to be removed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10972 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
10973 void API dw_signal_disconnect_by_window(HWND window) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10974 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10975 HWND thiswindow; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10976 int z, count; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10977 |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
10978 thiswindow = _dw_find_signal_window(window, NULL); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10979 count = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(thiswindow), "_dw_sigcounter")); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10980 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10981 for(z=0;z<count;z++) |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
10982 _dw_remove_signal_handler(thiswindow, z); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10983 g_object_set_data(G_OBJECT(thiswindow), "_dw_sigcounter", NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10984 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10985 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10986 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10987 * Removes all callbacks for a given window with specified data. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10988 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10989 * window: Window handle of callback to be removed. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10990 * data: Pointer to the data to be compared against. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10991 */ |
2323
4b04943319c5
GTK4: Move a few more functions into thread safety. Add API to functions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2322
diff
changeset
|
10992 void API dw_signal_disconnect_by_data(HWND window, void *data) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10993 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10994 int z, count; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10995 void **params = alloca(sizeof(void *) * 3); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10996 |
2314
eda7642d80df
GTK4: Code cleanup, add _dw prefix to internal functions and structures.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2313
diff
changeset
|
10997 params[2] = _dw_find_signal_window(window, NULL); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10998 count = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(params[2]), "_dw_sigcounter")); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10999 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11000 for(z=0;z<count;z++) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11001 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11002 SignalHandler sh; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11003 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11004 params[0] = GINT_TO_POINTER(z); |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
11005 sh = _dw_get_signal_handler(params); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11006 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11007 if(sh.data == data) |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
11008 _dw_remove_signal_handler((HWND)params[2], z); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11009 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11010 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11011 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11012 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11013 * Converts a UTF-8 encoded string into a wide string. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11014 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11015 * utf8string: UTF-8 encoded source string. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11016 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11017 * Wide string that needs to be freed with dw_free() |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11018 * or NULL on failure. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11019 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11020 wchar_t * API dw_utf8_to_wchar(const char *utf8string) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11021 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11022 wchar_t *retval = NULL, *freeme; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11023 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11024 if(sizeof(wchar_t) == sizeof(gunichar)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11025 freeme = retval = (wchar_t *)g_utf8_to_ucs4(utf8string, -1, NULL, NULL, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11026 else if(sizeof(wchar_t) == sizeof(gunichar2)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11027 freeme = retval = (wchar_t *)g_utf8_to_utf16(utf8string, -1, NULL, NULL, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11028 if(retval) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11029 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11030 retval = wcsdup(retval); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11031 g_free(freeme); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11032 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11033 return retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11034 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11035 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11036 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11037 * Converts a wide string into a UTF-8 encoded string. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11038 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11039 * wstring: Wide source string. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11040 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11041 * UTF-8 encoded string that needs to be freed with dw_free() |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11042 * or NULL on failure. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11043 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11044 char * API dw_wchar_to_utf8(const wchar_t *wstring) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11045 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11046 char *retval = NULL, *freeme; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11047 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11048 if(sizeof(wchar_t) == sizeof(gunichar)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11049 freeme = retval = g_ucs4_to_utf8((gunichar *)wstring, -1, NULL, NULL, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11050 else if(sizeof(wchar_t) == sizeof(gunichar2)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11051 freeme = retval = g_utf16_to_utf8((gunichar2 *)wstring, -1, NULL, NULL, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11052 if(retval) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11053 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11054 retval = strdup(retval); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11055 g_free(freeme); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11056 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11057 return retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11058 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11059 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11060 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11061 * Gets the state of the requested library feature. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11062 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11063 * feature: The requested feature for example DW_FEATURE_DARK_MODE |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11064 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11065 * DW_FEATURE_UNSUPPORTED if the library or OS does not support the feature. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11066 * DW_FEATURE_DISABLED if the feature is supported but disabled. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11067 * DW_FEATURE_ENABLED if the feature is supported and enabled. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11068 * Other value greater than 1, same as enabled but with extra info. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11069 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11070 int API dw_feature_get(DWFEATURE feature) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11071 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11072 switch(feature) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11073 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11074 #ifdef USE_WEBKIT |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11075 case DW_FEATURE_HTML: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11076 case DW_FEATURE_HTML_RESULT: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11077 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11078 case DW_FEATURE_NOTIFICATION: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11079 case DW_FEATURE_UTF8_UNICODE: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11080 case DW_FEATURE_MLE_WORD_WRAP: |
2410
0286ac44d347
Add DW_FEATURE_TREE feature test, since iOS does not suppor tree.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2371
diff
changeset
|
11081 case DW_FEATURE_TREE: |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11082 return DW_FEATURE_ENABLED; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11083 default: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11084 return DW_FEATURE_UNSUPPORTED; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11085 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11086 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11087 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11088 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11089 * Sets the state of the requested library feature. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11090 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11091 * feature: The requested feature for example DW_FEATURE_DARK_MODE |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11092 * state: DW_FEATURE_DISABLED, DW_FEATURE_ENABLED or any value greater than 1. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11093 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11094 * DW_FEATURE_UNSUPPORTED if the library or OS does not support the feature. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11095 * DW_ERROR_NONE if the feature is supported and successfully configured. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11096 * DW_ERROR_GENERAL if the feature is supported but could not be configured. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11097 * Remarks: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11098 * These settings are typically used during dw_init() so issue before |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11099 * setting up the library with dw_init(). |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11100 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11101 int API dw_feature_set(DWFEATURE feature, int state) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11102 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11103 switch(feature) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11104 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11105 /* These features are supported but not configurable */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11106 #ifdef USE_WEBKIT |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11107 case DW_FEATURE_HTML: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11108 case DW_FEATURE_HTML_RESULT: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11109 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11110 case DW_FEATURE_NOTIFICATION: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11111 case DW_FEATURE_UTF8_UNICODE: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11112 case DW_FEATURE_MLE_WORD_WRAP: |
2410
0286ac44d347
Add DW_FEATURE_TREE feature test, since iOS does not suppor tree.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2371
diff
changeset
|
11113 case DW_FEATURE_TREE: |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11114 return DW_ERROR_GENERAL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11115 /* These features are supported and configurable */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11116 default: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11117 return DW_FEATURE_UNSUPPORTED; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11118 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11119 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11120 |
2313
c6ea79c74c03
GTK4: Remove some lingering eventbox code from GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2312
diff
changeset
|
11121 |