Mercurial > dwindows
annotate gtk4/dw.c @ 2301:69b06073a87d
GTK4: The "realize" signal is not quite the same as "size-allocate" so if
the widget allocation is too small keep requesting it be called again until
the size is valid.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Mon, 08 Feb 2021 23:07:52 +0000 |
parents | 6e47d510dbbb |
children | 785775b9002f |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
32 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
33 #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
|
34 #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
|
35 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
36 |
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 <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
|
38 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
39 #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
|
40 # 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
|
41 # 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
|
42 # else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
43 # 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
|
44 # endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
45 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
46 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
47 /* 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
|
48 * 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
|
49 * 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
|
50 * 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
|
51 * 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
|
52 * 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
|
53 * 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
|
54 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
55 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
|
56 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
57 { 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
|
58 { 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
|
59 { 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
|
60 { 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
|
61 { 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
|
62 { 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
|
63 { 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
|
64 { 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
|
65 { 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
|
66 { 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
|
67 { 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
|
68 { 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
|
69 { 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
|
70 { 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
|
71 { 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
|
72 { 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
|
73 }; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
74 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
75 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
76 * 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
|
77 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
78 #define NUM_EXTS 9 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
79 char *image_exts[NUM_EXTS] = |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
80 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
81 ".xpm", |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
82 ".png", |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
83 ".ico", |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
84 ".icns", |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
85 ".gif", |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
86 ".jpg", |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
87 ".jpeg", |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
88 ".tiff", |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
89 ".bmp" |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
90 }; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
91 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
92 #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
|
93 # 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
|
94 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
95 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
96 #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
|
97 # 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
|
98 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
99 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
100 pthread_key_t _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
|
101 pthread_key_t _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
|
102 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
103 GtkWidget *last_window = NULL, *popup = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
104 |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
105 static int _dw_ignore_expand = 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
|
106 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
|
107 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
108 #define DEFAULT_SIZE_WIDTH 12 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
109 #define DEFAULT_SIZE_HEIGHT 6 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
110 #define DEFAULT_TITLEBAR_HEIGHT 22 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
111 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
112 #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
|
113 #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
|
114 #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
|
115 #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
|
116 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
117 /* 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
|
118 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
|
119 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
|
120 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
|
121 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
|
122 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
|
123 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
|
124 static gint _dw_configure_event(GtkWidget *widget, int width, int height, gpointer data); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
125 static gint _dw_container_enter_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
|
126 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
|
127 static gint _dw_expose_event(GtkWidget *widget, cairo_t *cr, int width, int height, gpointer data); |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
128 static gint _dw_set_focus_event(GtkWindow *window, GtkWidget *widget, 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
|
129 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
|
130 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
|
131 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
|
132 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
|
133 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
|
134 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
|
135 #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
|
136 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
|
137 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
|
138 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
139 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
|
140 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
141 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
|
142 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
|
143 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
|
144 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
|
145 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
|
146 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
|
147 |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
148 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
|
149 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
150 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
|
151 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
|
152 char gname[30]; |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
153 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
|
154 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
155 } SignalList; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
156 |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
157 /* Signal setup function prototypes */ |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
158 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
|
159 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
|
160 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
|
161 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
|
162 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
|
163 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
|
164 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
|
165 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
|
166 #ifdef USE_WEBKIT |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
167 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
|
168 #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
|
169 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
170 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
|
171 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
172 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
|
173 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
|
174 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
|
175 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
|
176 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
|
177 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
178 } SignalHandler; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
179 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
180 /* 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
|
181 static SignalList SignalTranslate[] = { |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
182 { _dw_configure_event, DW_SIGNAL_CONFIGURE, "resize", NULL }, |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
183 { _dw_key_press_event, DW_SIGNAL_KEY_PRESS, "key-pressed", _dw_key_setup }, |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
184 { _dw_button_press_event, DW_SIGNAL_BUTTON_PRESS, "pressed", _dw_mouse_setup }, |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
185 { _dw_button_release_event, DW_SIGNAL_BUTTON_RELEASE, "released", _dw_mouse_setup }, |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
186 { _dw_motion_notify_event, DW_SIGNAL_MOTION_NOTIFY, "motion", _dw_motion_setup }, |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
187 { _dw_delete_event, DW_SIGNAL_DELETE, "close-request", NULL }, |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
188 { _dw_expose_event, DW_SIGNAL_EXPOSE, "draw", _dw_draw_setup }, |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
189 { _dw_generic_event, DW_SIGNAL_CLICKED, "clicked", _dw_button_setup }, |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
190 { _dw_container_enter_event, DW_SIGNAL_ITEM_ENTER, "key-pressed", _dw_key_setup }, |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
191 { _dw_tree_context_event, DW_SIGNAL_ITEM_CONTEXT, "pressed", _dw_tree_setup }, |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
192 { _dw_combobox_select_event, DW_SIGNAL_LIST_SELECT, "changed", NULL }, |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
193 { _dw_tree_select_event, DW_SIGNAL_ITEM_SELECT, "changed", _dw_tree_setup }, |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
194 { _dw_set_focus_event, DW_SIGNAL_SET_FOCUS, "activate-focus", _dw_focus_setup }, |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
195 { _dw_value_changed_event, DW_SIGNAL_VALUE_CHANGED, "value-changed", _dw_value_setup }, |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
196 { _dw_switch_page_event, DW_SIGNAL_SWITCH_PAGE, "switch-page", NULL }, |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
197 { _dw_column_click_event, DW_SIGNAL_COLUMN_CLICK, "activate", _dw_tree_setup }, |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
198 { _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
|
199 #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
|
200 { _dw_html_changed_event, DW_SIGNAL_HTML_CHANGED, "load-changed", NULL }, |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
201 { _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
|
202 #endif |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
203 { 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
|
204 }; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
205 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
206 /* 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
|
207 #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
|
208 #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
|
209 #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
|
210 #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
|
211 #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
|
212 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
213 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
|
214 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
215 #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
|
216 /* 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
|
217 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
|
218 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
219 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
|
220 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
|
221 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
222 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
|
223 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
|
224 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
225 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
|
226 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
227 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
|
228 #else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
229 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
|
230 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
231 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
232 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
233 /* 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
|
234 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
|
235 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
236 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
|
237 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
|
238 |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
239 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
|
240 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
241 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
|
242 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
|
243 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
|
244 } |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
245 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
|
246 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
247 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
248 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
|
249 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
250 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
|
251 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
252 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
|
253 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
254 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
|
255 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
|
256 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
|
257 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
|
258 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
259 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
|
260 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
|
261 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
|
262 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
|
263 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
|
264 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
|
265 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
|
266 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
|
267 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
|
268 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
|
269 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
270 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
|
271 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
272 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
273 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
|
274 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
275 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
|
276 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
|
277 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
278 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
|
279 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
|
280 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
|
281 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
|
282 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
|
283 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
|
284 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
|
285 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
|
286 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
|
287 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
|
288 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
|
289 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
|
290 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
291 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
292 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
|
293 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
294 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
|
295 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
|
296 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
297 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
|
298 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
|
299 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
|
300 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
|
301 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
|
302 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
|
303 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
|
304 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
|
305 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
|
306 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
|
307 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
308 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
|
309 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
|
310 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
311 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
|
312 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
313 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
314 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
|
315 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
316 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
|
317 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
318 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
|
319 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
|
320 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
321 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
322 #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
|
323 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
|
324 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
325 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
|
326 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
|
327 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
|
328 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
|
329 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
|
330 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
|
331 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
|
332 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
333 _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
|
334 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
|
335 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
336 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
|
337 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
|
338 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
339 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
|
340 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
341 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
|
342 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
343 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
|
344 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
347 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
348 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
|
349 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
350 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
|
351 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
|
352 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
|
353 _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
|
354 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
355 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
356 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
357 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
|
358 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
|
359 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
360 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
|
361 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
|
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 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
|
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 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
|
366 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
|
367 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
368 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
|
369 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
370 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
|
371 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
372 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
|
373 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
|
374 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
|
375 _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
|
376 } |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
377 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
378 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
|
379 { |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
380 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
|
381 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
|
382 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
|
383 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
384 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
|
385 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
|
386 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
|
387 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
388 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
|
389 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
|
390 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
391 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
|
392 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
|
393 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
394 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
|
395 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
|
396 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
397 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
398 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
|
399 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
400 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
|
401 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
402 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
|
403 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
404 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
405 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
406 |
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_set_focus_event(GtkWindow *window, 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
|
408 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
409 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
|
410 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
|
411 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
412 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
|
413 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
414 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
|
415 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
416 retval = setfocusfunc(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
|
417 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
418 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
|
419 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
420 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
421 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
|
422 { |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
423 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
|
424 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
|
425 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
426 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
|
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 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
|
429 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
|
430 |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
431 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
|
432 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
|
433 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
|
434 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
|
435 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
436 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
|
437 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
438 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
|
439 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
440 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
441 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
|
442 { |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
443 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
|
444 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
|
445 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
446 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
|
447 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
448 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
|
449 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
|
450 |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
451 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
|
452 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
|
453 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
|
454 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
|
455 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
456 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
|
457 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
458 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
|
459 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
460 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
461 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
|
462 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
463 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
|
464 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
|
465 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
466 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
|
467 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
468 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
|
469 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
|
470 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
|
471 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
|
472 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
473 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
|
474 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
|
475 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
|
476 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
|
477 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
|
478 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
|
479 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
480 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
|
481 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
482 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
|
483 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
484 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
485 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
|
486 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
487 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
|
488 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
|
489 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
490 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
|
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 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
|
493 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
494 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
|
495 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
496 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
|
497 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
498 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
499 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
|
500 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
501 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
|
502 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
|
503 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
504 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
|
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 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
|
507 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
|
508 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
|
509 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
510 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
|
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 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
|
513 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
|
514 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
515 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
|
516 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
517 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
518 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
|
519 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
520 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
|
521 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
|
522 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
523 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
|
524 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
525 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
|
526 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
527 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
|
528 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
529 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
|
530 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
531 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
532 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
|
533 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
534 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
|
535 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
|
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 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
|
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 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
|
540 |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
541 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
|
542 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
543 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
|
544 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
545 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
546 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
|
547 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
548 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
|
549 |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
550 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
|
551 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
552 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
|
553 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
|
554 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
555 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
|
556 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
|
557 exp.height = height; |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
558 /* Save the cairo context for use in the drawing functions */ |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
559 g_object_set_data(G_OBJECT(widget), "_dw_cr", (gpointer)cr); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
560 retval = exposefunc((HWND)widget, &exp, data); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
561 g_object_set_data(G_OBJECT(widget), "_dw_cr", 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
|
562 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
563 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
|
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 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
566 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
|
567 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
568 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
|
569 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
|
570 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
571 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
|
572 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
|
573 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
574 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
|
575 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
576 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
|
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 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
|
579 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
580 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
|
581 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
|
582 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
583 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
|
584 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
585 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
|
586 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
587 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
|
588 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
589 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
|
590 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
591 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
|
592 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
593 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
|
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 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
|
596 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
597 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
|
598 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
599 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
|
600 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
601 } |
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 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
606 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
609 #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
|
610 #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
|
611 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
612 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
|
613 { |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
614 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
|
615 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
|
616 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
617 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
|
618 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
619 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
|
620 |
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(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
|
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 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
|
624 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
|
625 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
|
626 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
|
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(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
|
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 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
|
631 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
|
632 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
|
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 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
|
635 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
|
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(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
|
638 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
639 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
|
640 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
641 else |
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 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
|
644 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
645 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
646 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
647 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
648 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
|
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 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
|
651 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
|
652 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
653 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
|
654 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
655 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
|
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 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
|
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 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
|
660 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
661 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
662 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
663 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
|
664 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
665 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
666 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
|
667 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
668 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
669 } |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
670 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
|
671 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
|
672 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
|
673 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
674 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
675 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
|
676 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
677 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
678 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
|
679 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
680 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
|
681 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
|
682 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
683 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
|
684 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
685 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
|
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 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
|
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 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
|
690 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
|
691 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
|
692 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
|
693 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
|
694 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
695 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
|
696 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
697 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
|
698 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
|
699 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
700 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
701 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
|
702 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
|
703 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
704 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
|
705 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
706 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
|
707 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
|
708 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
709 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
|
710 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
711 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
|
712 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
|
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 else |
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 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
|
717 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
718 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
|
719 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
720 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
|
721 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
722 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
|
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 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
|
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 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
|
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 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
|
729 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
730 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
731 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
732 else |
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 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
|
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 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
|
737 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
|
738 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
739 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
|
740 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
741 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
|
742 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
743 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
|
744 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
745 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
|
746 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
|
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 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
|
749 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
750 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
|
751 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
|
752 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
753 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
754 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
755 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
|
756 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
757 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
|
758 { |
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 (*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
|
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 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
|
762 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
763 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
764 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
765 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
|
766 } |
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 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
|
769 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
|
770 } |
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 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
|
773 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
774 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
775 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
|
776 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
777 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
|
778 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
|
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 if(!_dw_ignore_expand && 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
|
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 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
|
783 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
|
784 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
785 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
|
786 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
787 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
788 static gint _dw_container_enter_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
|
789 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
790 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
|
791 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
|
792 |
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
|
793 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
|
794 { |
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
|
795 GtkWidget *widget = work.window; |
2278
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
796 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
|
797 GdkEventType type = gdk_event_get_event_type(event); |
2277
ba81894924cb
GTK4: Changes to handle the now opaque GdkEvent structure.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2276
diff
changeset
|
798 gint button = gdk_button_event_get_button(event); |
ba81894924cb
GTK4: Changes to handle the now opaque GdkEvent structure.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2276
diff
changeset
|
799 |
ba81894924cb
GTK4: Changes to handle the now opaque GdkEvent structure.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2276
diff
changeset
|
800 /* TODO: Make sure this works. |
ba81894924cb
GTK4: Changes to handle the now opaque GdkEvent structure.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2276
diff
changeset
|
801 Handle both key and button events together */ |
ba81894924cb
GTK4: Changes to handle the now opaque GdkEvent structure.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2276
diff
changeset
|
802 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
|
803 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
804 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
|
805 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
|
806 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
|
807 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
808 /* 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
|
809 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
|
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 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
|
812 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
|
813 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
814 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
|
815 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
|
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 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
|
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 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
|
820 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
821 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
|
822 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
823 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
|
824 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
|
825 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
|
826 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
|
827 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
828 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
829 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
|
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 } |
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
834 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
|
835 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
836 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
837 /* 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
|
838 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
|
839 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
840 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
|
841 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
|
842 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
|
843 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
844 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
|
845 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
846 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
|
847 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
848 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
|
849 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
|
850 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
851 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
852 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
|
853 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
854 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
855 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
856 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
|
857 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
858 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
|
859 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
|
860 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
861 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
|
862 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
863 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
|
864 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
|
865 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
866 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
|
867 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
868 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
869 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
|
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 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
|
872 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
|
873 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
874 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
|
875 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
876 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
|
877 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
|
878 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
879 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
|
880 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
881 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
|
882 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
883 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
|
884 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
|
885 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
886 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
|
887 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
888 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
|
889 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
|
890 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
|
891 } |
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
894 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
|
895 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
896 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
897 static int _round_value(gfloat val) |
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 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
|
900 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
901 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
|
902 newval++; |
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 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
|
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 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
907 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
|
908 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
909 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
|
910 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
|
911 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
|
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_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
|
914 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
|
915 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
916 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
|
917 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
|
918 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
|
919 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
920 max = _round_value(gtk_adjustment_get_upper(adjustment)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
921 val = _round_value(gtk_adjustment_get_value(adjustment)); |
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 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
|
924 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
|
925 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
926 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
|
927 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
928 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
|
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 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
|
931 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
932 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
|
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 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
|
935 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
|
936 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
937 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
|
938 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
939 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
940 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
|
941 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
942 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
943 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
|
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 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
|
946 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
947 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
|
948 { |
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
|
949 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
|
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 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
|
952 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
|
953 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
954 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
|
955 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
956 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
957 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
|
958 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
959 |
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
|
960 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
|
961 { |
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
|
962 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
|
963 |
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
|
964 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
|
965 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
|
966 } |
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
|
967 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
968 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
|
969 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
970 char resource_path[201] = {0}; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
971 snprintf(resource_path, 200, "/org/dbsoft/dwindows/resources/%u.png", rid); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
972 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
|
973 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
974 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
975 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
|
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 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
|
978 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
|
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 /* 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
|
981 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
|
982 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
|
983 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
984 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
|
985 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
|
986 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
987 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
|
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(userwidth) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
990 *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
|
991 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
|
992 *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
|
993 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
994 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
|
995 } |
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 /* 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
|
998 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
|
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 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
|
1001 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
|
1002 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
|
1003 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1004 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
|
1005 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
|
1006 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
|
1007 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
|
1008 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
|
1009 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
|
1010 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1011 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
|
1012 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
|
1013 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1014 |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1015 /* Handle menu click callbacks */ |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1016 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
|
1017 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1018 SignalHandler work = _dw_get_signal_handler(data); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1019 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1020 if(work.window) |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1021 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1022 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
|
1023 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1024 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
|
1025 } |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1026 } |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1027 |
2276
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
1028 /* 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
|
1029 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
|
1030 { |
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
1031 /* 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
|
1032 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
|
1033 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
|
1034 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
|
1035 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
|
1036 } |
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
1037 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1038 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
|
1039 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1040 /* 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
|
1041 * 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
|
1042 * 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
|
1043 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1044 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1047 * 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
|
1048 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1049 * 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
|
1050 * 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
|
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 int dw_init(int newthread, int argc, char *argv[]) |
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 /* 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
|
1055 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
|
1056 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1057 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
|
1058 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
|
1059 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
|
1060 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1061 /* 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
|
1062 * 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
|
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 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
|
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 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
|
1067 *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
|
1068 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1069 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1070 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
|
1071 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1072 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
|
1073 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1074 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
|
1075 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
|
1076 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1077 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
|
1078 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
|
1079 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
|
1080 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
|
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 /* 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
|
1083 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1086 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
|
1087 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
|
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 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
|
1090 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
|
1091 _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
|
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 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
|
1094 |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1095 _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
|
1096 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
|
1097 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1098 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
|
1099 pthread_key_create(&_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
|
1100 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1101 _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
|
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 /* 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
|
1104 _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
|
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 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
|
1107 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1108 /* 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
|
1109 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
|
1110 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1111 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1112 /* 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
|
1113 * 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
|
1114 * 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
|
1115 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1116 _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
|
1117 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
|
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 /* 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
|
1120 GSimpleAction *action = g_simple_action_new("notification", G_VARIANT_TYPE_UINT64); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1121 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1122 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
|
1123 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
|
1124 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
|
1125 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
|
1126 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1127 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
|
1128 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1129 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1130 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1131 * 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
|
1132 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1133 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
|
1134 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1135 g_main_loop_run(_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
|
1136 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1137 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1138 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1139 * 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
|
1140 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1141 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
|
1142 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1143 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
|
1144 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1147 * 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
|
1148 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1149 * 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
|
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 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
|
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 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
|
1154 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
|
1155 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1156 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
|
1157 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1158 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
|
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 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
|
1161 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1162 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
|
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 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
|
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 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
|
1167 _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
|
1168 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
|
1169 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
|
1170 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1171 _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
|
1172 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
|
1173 _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
|
1174 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
|
1175 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1176 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1177 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1178 _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
|
1179 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1180 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1181 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1182 * 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
|
1183 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1184 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
|
1185 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1186 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
|
1187 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
|
1188 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1189 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
|
1190 _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
|
1191 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
|
1192 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
|
1193 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1194 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
|
1195 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
|
1196 _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
|
1197 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1198 |
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 * 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
|
1201 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1202 * 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
|
1203 * 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
|
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 void dw_free(void *ptr) |
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 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
|
1208 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1211 * 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
|
1212 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1213 * 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
|
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 DWDialog *dw_dialog_new(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
|
1216 { |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1217 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
|
1218 |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1219 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
|
1220 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1221 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
|
1222 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
|
1223 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
|
1224 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
|
1225 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
|
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 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
|
1228 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1229 |
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 * 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
|
1232 * 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
|
1233 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1234 * 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
|
1235 * 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
|
1236 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1237 int dw_dialog_dismiss(DWDialog *dialog, void *result) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1238 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1239 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
|
1240 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
|
1241 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
|
1242 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1243 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
|
1244 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
|
1245 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
|
1246 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1249 * 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
|
1250 * 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
|
1251 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1252 * 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
|
1253 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1254 void *dw_dialog_wait(DWDialog *dialog) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1255 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1256 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
|
1257 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1258 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
|
1259 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
|
1260 |
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
|
1261 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
|
1262 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1263 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
|
1264 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
|
1265 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1266 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1267 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1268 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
|
1269 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1272 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
|
1273 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
|
1274 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
|
1275 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
|
1276 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
|
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1280 * 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
|
1281 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1282 * 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
|
1283 * ...: 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
|
1284 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1285 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
|
1286 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1287 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
|
1288 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
|
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 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
|
1291 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
|
1292 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
|
1293 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1294 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
|
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 |
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 * Displays a Message Box with given text and title.. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1299 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1300 * title: The title of the message box. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1301 * flags: Defines buttons and icons to display |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1302 * 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
|
1303 * ...: 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
|
1304 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1305 int dw_messagebox(const char *title, int flags, 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
|
1306 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1307 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
|
1308 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
|
1309 GtkWidget *dialog; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1310 int response; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1311 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
|
1312 char outbuf[1025] = {0}; |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
1313 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
|
1314 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1315 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
|
1316 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
|
1317 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
|
1318 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1319 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
|
1320 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
|
1321 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
|
1322 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
|
1323 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
|
1324 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
|
1325 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
|
1326 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
|
1327 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1328 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
|
1329 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
|
1330 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
|
1331 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
|
1332 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1333 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
|
1334 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
|
1335 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
|
1336 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
|
1337 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
|
1338 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
|
1339 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
|
1340 g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(_dw_dialog_response), (gpointer)tmp); |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
1341 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
|
1342 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
|
1343 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
|
1344 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
|
1345 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1346 case GTK_RESPONSE_OK: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1347 return DW_MB_RETURN_OK; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1348 case GTK_RESPONSE_CANCEL: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1349 return DW_MB_RETURN_CANCEL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1350 case GTK_RESPONSE_YES: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1351 return DW_MB_RETURN_YES; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1352 case GTK_RESPONSE_NO: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1353 return DW_MB_RETURN_NO; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1354 default: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1355 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1356 /* 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
|
1357 if(flags & (DW_MB_OKCANCEL | 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
|
1358 return DW_MB_RETURN_CANCEL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1359 else if(flags & DW_MB_YESNO) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1360 return DW_MB_RETURN_NO; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1361 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1362 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1363 return DW_MB_RETURN_OK; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1364 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1365 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1366 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1367 * 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
|
1368 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1369 * 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
|
1370 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1371 int dw_window_minimize(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1372 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1373 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
|
1374 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
|
1375 |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1376 gtk_window_minimize(GTK_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
|
1377 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
|
1378 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1379 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1380 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1381 * 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
|
1382 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1383 * 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
|
1384 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1385 int dw_window_raise(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1386 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1387 /* TODO: See if this is possible in GTK4 */ |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1388 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
|
1389 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1390 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1391 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1392 * 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
|
1393 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1394 * 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
|
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 int dw_window_lower(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1397 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1398 /* TODO: See if this is possible in GTK4 */ |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1399 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
|
1400 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1401 |
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 * 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
|
1404 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1405 * 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
|
1406 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1407 int dw_window_show(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1408 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1409 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
|
1410 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
|
1411 |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1412 if(GTK_IS_WIDGET(handle)) |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1413 gtk_widget_show(handle); |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1414 if(GTK_IS_WINDOW(handle)) |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1415 { |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1416 GtkWidget *defaultitem; |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1417 |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1418 gtk_window_unminimize(GTK_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
|
1419 defaultitem = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_defaultitem"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1420 if (defaultitem) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1421 gtk_widget_grab_focus(defaultitem); |
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 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
|
1424 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1425 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1426 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1427 * 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
|
1428 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1429 * 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
|
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 int dw_window_hide(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1432 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1433 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
|
1434 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
|
1435 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1436 gtk_widget_hide(handle); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1437 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
|
1438 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1439 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1440 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1441 * 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
|
1442 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1443 * 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
|
1444 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1445 int dw_window_destroy(HWND handle) |
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 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
|
1448 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
|
1449 |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1450 if(GTK_IS_WINDOW(handle)) |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1451 gtk_window_destroy(GTK_WINDOW(handle)); |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1452 else if(GTK_IS_WIDGET(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
|
1453 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1454 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
|
1455 GtkWidget *eventbox = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_eventbox"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1456 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1457 /* Handle the invisible event box if it exists */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1458 if(eventbox && GTK_IS_WIDGET(eventbox)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1459 handle2 = eventbox; |
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 /* 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
|
1462 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
|
1463 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1464 /* 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
|
1465 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
|
1466 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
|
1467 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
|
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 /* 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
|
1470 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
|
1471 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1472 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
|
1473 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1474 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
|
1475 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1476 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
|
1477 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1478 } |
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 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1482 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1483 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
|
1484 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1485 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
|
1486 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1487 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
|
1488 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1489 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1490 } |
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 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
|
1494 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1495 /* 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
|
1496 boxcount--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1497 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
|
1498 } |
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 /* Finally destroy the widget, make sure it is still |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1501 * a valid widget if it got removed from the grid. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1502 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1503 if(GTK_IS_WIDGET(handle2)) |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1504 g_object_unref(G_OBJECT(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
|
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 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1509 /* 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
|
1510 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1511 * 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
|
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 void dw_window_redraw(HWND handle) |
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 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1518 * 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
|
1519 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1520 * 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
|
1521 * 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
|
1522 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1523 void dw_window_reparent(HWND handle, HWND newparent) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1524 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1525 if(GTK_IS_WIDGET(handle) && GTK_IS_WIDGET(newparent)) |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1526 gtk_widget_set_parent(GTK_WIDGET(handle), GTK_WIDGET(newparent)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1527 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1528 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1529 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1530 * 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
|
1531 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1532 * 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
|
1533 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1534 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
|
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 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
|
1537 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1538 _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
|
1539 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1540 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
|
1541 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
|
1542 } |
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 /* 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
|
1545 * 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
|
1546 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1547 char *_convert_font(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
|
1548 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1549 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
|
1550 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1551 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
|
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 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
|
1554 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
|
1555 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
|
1556 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1557 /* 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
|
1558 * 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
|
1559 * 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
|
1560 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1561 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
|
1562 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1563 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
|
1564 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
|
1565 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
|
1566 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1567 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
|
1568 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
|
1569 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1570 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
|
1571 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
|
1572 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1573 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1574 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1577 /* 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
|
1578 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
|
1579 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1580 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
|
1581 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
|
1582 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
|
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 /* 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
|
1585 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
|
1586 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1587 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
|
1588 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
|
1589 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
|
1590 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1591 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1592 /* 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
|
1593 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
|
1594 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1595 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
|
1596 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
|
1597 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1598 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
|
1599 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
|
1600 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
|
1601 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
|
1602 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
|
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 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
|
1605 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
|
1606 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1607 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1608 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
|
1609 { |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
1610 #if 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
|
1611 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
|
1612 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
|
1613 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1614 /* 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
|
1615 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
|
1616 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1617 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
|
1618 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
|
1619 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1622 /* 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
|
1623 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
|
1624 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1625 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
|
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 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
|
1628 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
|
1629 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
|
1630 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
|
1631 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1632 g_object_set_data(G_OBJECT(widget), "_dw_font", (gpointer)provider); |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
1633 #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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1636 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1637 * 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
|
1638 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1639 * 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
|
1640 * 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
|
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 int dw_window_set_font(HWND handle, 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
|
1643 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1644 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
|
1645 char *font = _convert_font(fontname); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1646 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
|
1647 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1648 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
|
1649 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1650 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
|
1651 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
|
1652 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
|
1653 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1654 /* 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
|
1655 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
|
1656 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1657 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
|
1658 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
|
1659 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
|
1660 } |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1661 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
|
1662 { |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1663 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
|
1664 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
|
1665 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
|
1666 } |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1667 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
|
1668 { |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1669 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
|
1670 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
|
1671 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
|
1672 } |
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 /* 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
|
1675 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
|
1676 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
|
1677 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
|
1678 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
|
1679 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1680 _dw_override_font(handle2, font); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1681 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1682 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
|
1683 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1684 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1685 /* 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
|
1686 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1687 * 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
|
1688 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1689 * 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
|
1690 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1691 char * API dw_font_choose(const char *currfont) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1692 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1693 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
|
1694 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
|
1695 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
|
1696 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
|
1697 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
|
1698 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1699 /* 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
|
1700 * 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
|
1701 * 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
|
1702 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1703 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
|
1704 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1705 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
|
1706 *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
|
1707 name++; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1708 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
|
1709 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1710 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1711 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
|
1712 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
|
1713 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1714 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
|
1715 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
|
1716 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1717 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1718 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
|
1719 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
|
1720 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
1721 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
|
1722 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1723 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
|
1724 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
|
1725 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1726 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
|
1727 /* 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
|
1728 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
|
1729 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1730 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
|
1731 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1732 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
|
1733 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1734 x--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1735 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1736 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
|
1737 /* 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
|
1738 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
|
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 /* 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
|
1741 * 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
|
1742 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1743 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
|
1744 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
|
1745 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1746 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1747 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
|
1748 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1749 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
1750 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
|
1751 gtk_window_destroy(GTK_WINDOW(fd)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1752 return retfont; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1753 } |
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 * 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
|
1757 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1758 * 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
|
1759 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1760 char *dw_window_get_font(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1761 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1762 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
|
1763 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
|
1764 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
|
1765 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
|
1766 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
|
1767 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1768 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
|
1769 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1770 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
|
1771 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
|
1772 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
|
1773 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1774 /* 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
|
1775 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
|
1776 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1777 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
|
1778 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
|
1779 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
|
1780 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1781 |
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
|
1782 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
|
1783 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
|
1784 { |
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
|
1785 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
|
1786 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
|
1787 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1788 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
|
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 font = pango_font_description_to_string( pfont ); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1791 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
|
1792 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
|
1793 /* 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
|
1794 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
|
1795 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1796 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
|
1797 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1798 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
|
1799 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
|
1800 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1801 x--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1802 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1803 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
|
1804 /* 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
|
1805 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
|
1806 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1807 /* 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
|
1808 * 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
|
1809 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1810 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
|
1811 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
|
1812 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1813 } |
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
|
1814 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
|
1815 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1816 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1817 return retfont; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1818 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1819 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1820 void _free_gdk_colors(HWND handle) |
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 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
|
1823 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1824 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
|
1825 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
|
1826 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1827 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
|
1828 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1829 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
|
1830 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
|
1831 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1832 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1833 /* Free old color pointers and allocate new ones */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1834 static void _save_gdk_colors(HWND handle, GdkRGBA fore, GdkRGBA back) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1835 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1836 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
|
1837 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
|
1838 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1839 _free_gdk_colors(handle); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1840 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1841 *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
|
1842 *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
|
1843 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1844 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
|
1845 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
|
1846 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1847 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1848 static int _set_color(HWND handle, unsigned long fore, unsigned long back) |
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 /* 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
|
1851 * 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
|
1852 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1853 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
|
1854 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1855 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
|
1856 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1857 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
|
1858 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
|
1859 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
|
1860 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
|
1861 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1862 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
|
1863 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
|
1864 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1865 _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
|
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 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
|
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 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
|
1870 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
|
1871 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
|
1872 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
|
1873 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1874 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
|
1875 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
|
1876 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1877 _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
|
1878 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1879 _save_gdk_colors(handle, forecolor, backcolor); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1880 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1881 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
|
1882 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1883 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1884 * 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
|
1885 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1886 * 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
|
1887 * 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
|
1888 * 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
|
1889 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1890 int dw_window_set_color(HWND handle, unsigned long fore, unsigned long back) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1891 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1892 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
|
1893 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1894 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
|
1895 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1896 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
|
1897 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
|
1898 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
|
1899 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1900 else if(GTK_IS_GRID(handle)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1901 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1902 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_eventbox"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1903 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
|
1904 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1905 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
|
1906 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1909 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1910 _set_color(handle2, fore, back); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1911 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1912 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
|
1913 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1914 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1915 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1916 * 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
|
1917 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1918 * 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
|
1919 * 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
|
1920 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1921 int dw_window_set_border(HWND handle, int border) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1922 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1923 /* TODO */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1924 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
|
1925 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1926 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1927 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1928 * Captures the mouse input to this window. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1929 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1930 * handle: Handle to receive mouse input. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1931 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1932 void dw_window_capture(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1933 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1934 /* TODO: See if this is possible in GTK4 */ |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1935 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1936 |
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 * 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
|
1939 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1940 * 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
|
1941 * 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
|
1942 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1943 void dw_window_set_pointer(HWND handle, int pointertype) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1944 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1945 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
|
1946 { |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1947 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
|
1948 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
|
1949 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
|
1950 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
|
1951 } |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1952 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
|
1953 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
|
1954 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
|
1955 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
|
1956 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
|
1957 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
|
1958 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
|
1959 gtk_widget_set_cursor(GTK_WIDGET(handle), 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
|
1960 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1961 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1962 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1963 * 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
|
1964 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1965 void dw_window_release(void) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1966 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1967 /* TODO: See if this is possible in GTK4 */ |
2264
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 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1970 /* 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
|
1971 #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
|
1972 |
2264
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 * 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
|
1975 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1976 * 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
|
1977 * 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
|
1978 * 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
|
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 HWND dw_window_new(HWND hwndOwner, const char *title, unsigned long flStyle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1981 { |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1982 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
|
1983 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
|
1984 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
|
1985 |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1986 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
|
1987 |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1988 /* 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
|
1989 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
|
1990 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
|
1991 /* 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
|
1992 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
|
1993 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
|
1994 |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1995 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
|
1996 |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1997 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
|
1998 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
|
1999 else |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2000 { |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2001 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
|
2002 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
|
2003 |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2004 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
|
2005 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
|
2006 } |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2007 |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2008 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
|
2009 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
|
2010 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
|
2011 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
|
2012 g_object_set_data(G_OBJECT(tmp), "_dw_style", GINT_TO_POINTER(flStyle)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2013 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
|
2014 } |
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 * 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
|
2018 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2019 * 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
|
2020 * 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
|
2021 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2022 HWND dw_box_new(int type, int pad) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2023 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2024 GtkWidget *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
|
2025 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2026 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
|
2027 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
|
2028 _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
|
2029 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
|
2030 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2033 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2034 * 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
|
2035 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2036 * 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
|
2037 * 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
|
2038 */ |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2039 HWND dw_scrollbox_new(int type, int pad) |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2040 { |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2041 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
|
2042 |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2043 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
|
2044 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
|
2045 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2046 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
|
2047 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2048 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
|
2049 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
|
2050 _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
|
2051 |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2052 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
|
2053 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
|
2054 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
|
2055 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
|
2056 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2057 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
|
2058 } |
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 * 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
|
2062 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2063 * 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
|
2064 * 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
|
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 int dw_scrollbox_get_pos(HWND handle, int orient) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2067 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2068 int val = -1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2069 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
|
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 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
|
2072 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
|
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 if ( orient == 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
|
2075 adjustment = gtk_scrolled_window_get_hadjustment( 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
|
2076 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2077 adjustment = 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
|
2078 if (adjustment) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2079 val = _round_value(gtk_adjustment_get_value(adjustment)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2080 return val; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2081 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2082 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2083 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2084 * 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
|
2085 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2086 * 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
|
2087 * 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
|
2088 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2089 int API dw_scrollbox_get_range(HWND handle, int orient) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2090 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2091 int range = -1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2092 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
|
2093 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2094 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
|
2095 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
|
2096 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2097 if ( orient == 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
|
2098 adjustment = gtk_scrolled_window_get_hadjustment( 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
|
2099 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2100 adjustment = 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
|
2101 if (adjustment) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2102 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2103 range = _round_value(gtk_adjustment_get_upper(adjustment)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2104 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2105 return range; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2106 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2107 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2108 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2109 * 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
|
2110 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2111 * 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
|
2112 * 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
|
2113 * 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
|
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 HWND dw_groupbox_new(int type, int pad, 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
|
2116 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2117 GtkWidget *tmp, *frame; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2118 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2119 frame = gtk_frame_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
|
2120 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
|
2121 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2122 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
|
2123 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
|
2124 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
|
2125 _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
|
2126 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
|
2127 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
|
2128 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
|
2129 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
|
2130 dw_window_set_font(frame, _DWDefaultFont); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2131 return frame; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2132 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2133 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2134 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2135 * 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
|
2136 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2137 * 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
|
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 HWND dw_bitmap_new(unsigned long id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2140 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2141 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
|
2142 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2143 tmp = gtk_image_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2144 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
|
2145 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
|
2146 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
|
2147 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2150 * 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
|
2151 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2152 * 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
|
2153 * 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
|
2154 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2155 HWND dw_notebook_new(unsigned long id, int top) |
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 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
|
2158 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2159 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
|
2160 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
|
2161 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
|
2162 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2163 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
|
2164 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
|
2165 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
|
2166 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
|
2167 g_object_set_data(G_OBJECT(tmp), "_dw_pagearray", (gpointer)pagearray); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2168 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
|
2169 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2170 |
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
|
2171 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
|
2172 |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2173 /* 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
|
2174 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
|
2175 { |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2176 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
|
2177 |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2178 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
|
2179 { |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2180 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
|
2181 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
|
2182 |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2183 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
|
2184 |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2185 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
|
2186 { |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2187 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
|
2188 { |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2189 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
|
2190 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
|
2191 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
|
2192 |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2193 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
|
2194 |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2195 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
|
2196 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
|
2197 } |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2198 _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
|
2199 } |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2200 } |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2201 } |
2289
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
2202 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2203 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2204 * 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
|
2205 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2206 * 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
|
2207 * 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
|
2208 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2209 HMENUI dw_menu_new(unsigned long id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2210 { |
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
|
2211 GMenu *tmp = g_menu_new(); |
2288
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2212 /* 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
|
2213 GMenu *section = g_menu_new(); |
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2214 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
|
2215 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
|
2216 |
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
|
2217 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
|
2218 |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2219 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
|
2220 g_object_set_data(G_OBJECT(tmp), "_dw_group", (gpointer)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
|
2221 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
2288
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2222 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
|
2223 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
|
2224 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2227 * 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
|
2228 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2229 * 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
|
2230 * 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
|
2231 * 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
|
2232 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2233 HMENUI dw_menubar_new(HWND location) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2234 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2235 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
|
2236 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
|
2237 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2238 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
|
2239 (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
|
2240 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2241 /* 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
|
2242 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
|
2243 GMenu *menu = g_menu_new(); |
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2244 /* 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
|
2245 GMenu *section = g_menu_new(); |
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2246 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
|
2247 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
|
2248 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
|
2249 |
2288
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2250 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
|
2251 |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2252 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
|
2253 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
|
2254 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2255 /* 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
|
2256 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
|
2257 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
|
2258 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
|
2259 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
|
2260 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2261 /* 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
|
2262 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
|
2263 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
|
2264 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
|
2265 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
|
2266 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
|
2267 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
|
2268 _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
|
2269 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2270 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
|
2271 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2274 * 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
|
2275 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2276 * 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
|
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 void dw_menu_destroy(HMENUI *menu) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2279 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2280 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
|
2281 { |
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
|
2282 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
|
2283 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2284 /* If it is a menu bar, try to delete the reference to 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
|
2285 if(GTK_IS_POPOVER_MENU_BAR(*menu) && |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
2286 (window = GTK_WIDGET(g_object_get_data(G_OBJECT(*menu), "_dw_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
|
2287 g_object_set_data(G_OBJECT(window), "_dw_menubar", NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2288 /* 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
|
2289 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
|
2290 { |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
2291 GtkWidget *box = GTK_WIDGET(g_object_get_data(G_OBJECT(window), "_dw_grid")); |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
2292 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
|
2293 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
|
2294 else |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
2295 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
|
2296 } |
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
|
2297 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
|
2298 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
|
2299 *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
|
2300 } |
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 |
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
|
2303 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
|
2304 { |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2305 int z, cur=0; |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2306 char accel = '\0'; |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2307 |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2308 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
|
2309 { |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2310 if(src[z] == '~') |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2311 { |
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
|
2312 dest[cur] = '_'; |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2313 accel = src[z+1]; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2314 } |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2315 else |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2316 dest[cur] = src[z]; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2317 cur++; |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2318 } |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2319 dest[cur] = 0; |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2320 return accel; |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2321 } |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2322 |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2323 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2324 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2325 * 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
|
2326 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2327 * 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
|
2328 * 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
|
2329 * 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
|
2330 * 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
|
2331 * 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
|
2332 * 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
|
2333 * 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
|
2334 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2335 HWND dw_menu_append_item(HMENUI menu, const char *title, unsigned long id, unsigned long flags, int end, int check, HMENUI submenu) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2336 { |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2337 GSimpleAction *action = NULL; |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2338 GMenuItem *tmphandle = NULL; |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2339 GMenuModel *menumodel; |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2340 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
|
2341 |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2342 if(!menu) |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2343 return 0; |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2344 |
2288
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2345 /* By default we add to the menu's current section */ |
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2346 menumodel = g_object_get_data(G_OBJECT(menu), "_dw_section"); |
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
|
2347 _dw_removetilde(temptitle, title); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2348 |
2288
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2349 /* To add a separator we create a new section and add it */ |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2350 if (strlen(temptitle) == 0) |
2288
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2351 { |
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2352 GMenu *section = g_menu_new(); |
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2353 |
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2354 /* If we are creating a new section, add it to the core menu... not the section */ |
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2355 if(GTK_IS_POPOVER_MENU_BAR(menu)) |
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2356 menumodel = gtk_popover_menu_bar_get_menu_model(GTK_POPOVER_MENU_BAR(menu)); |
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2357 else |
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
|
2358 menumodel = G_MENU_MODEL(menu); |
2288
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2359 |
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2360 tmphandle = g_menu_item_new_section(NULL, G_MENU_MODEL(section)); |
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2361 g_object_set_data(G_OBJECT(menu), "_dw_section", (gpointer)section); |
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2362 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2363 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2364 { |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2365 char tempbuf[101] = {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
|
2366 |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2367 if(submenu) |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2368 { |
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
|
2369 if(G_IS_MENU(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
|
2370 { |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2371 int submenucount = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(menu), "_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
|
2372 GtkWidget *menuparent = GTK_WIDGET(g_object_get_data(G_OBJECT(menu), "_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
|
2373 |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2374 /* If the menu being added to is a menu bar, that is the menuparent for submenus */ |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2375 if(GTK_IS_POPOVER_MENU_BAR(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
|
2376 menuparent = GTK_WIDGET(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
|
2377 |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2378 snprintf(tempbuf, 100, "_dw_submenu%d", 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
|
2379 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
|
2380 tmphandle = g_menu_item_new_submenu(temptitle, G_MENU_MODEL(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
|
2381 g_object_set_data(G_OBJECT(menu), tempbuf, (gpointer)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
|
2382 g_object_set_data(G_OBJECT(menu), "_dw_submenucount", GINT_TO_POINTER(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
|
2383 |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2384 /* If we have a menu parent, use it to create the groups if needed */ |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
2385 if(menuparent && !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
|
2386 _dw_menu_set_group_recursive(menu, 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
|
2387 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2388 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2389 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2390 { |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2391 char numbuf[25] = {0}; |
2289
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
2392 GSimpleActionGroup *group = g_object_get_data(G_OBJECT(menu), "_dw_group"); |
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
2393 int menugroup = DW_POINTER_TO_INT(g_object_get_data(G_OBJECT(menu), "_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
|
2394 char *actionname; |
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
2395 |
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
2396 snprintf(tempbuf, 100, "menu%d.action%lu", menugroup, id); |
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
2397 actionname = strchr(tempbuf, '.'); |
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
2398 action = g_simple_action_new(&actionname[1], NULL); |
26a76f94f8d8
GTK4: Added action groups to the menus, because everything says we need
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2288
diff
changeset
|
2399 g_action_map_add_action(G_ACTION_MAP(group), G_ACTION(action)); |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2400 tmphandle=g_menu_item_new(temptitle, tempbuf); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2401 snprintf(numbuf, 24, "%lu", id); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2402 g_object_set_data(G_OBJECT(menu), numbuf, (gpointer)tmphandle); |
2288
d0bb8f99ac45
GTK4: Implement menu separators.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2287
diff
changeset
|
2403 g_object_set_data(G_OBJECT(tmphandle), "_dw_action", (gpointer)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
|
2404 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2405 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2406 |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2407 if(end) |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2408 g_menu_append_item(G_MENU(menumodel), 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
|
2409 else |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2410 g_menu_prepend_item(G_MENU(menumodel), 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
|
2411 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2412 g_object_set_data(G_OBJECT(tmphandle), "_dw_id", GINT_TO_POINTER(id)); |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2413 |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2414 if(action) |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2415 g_simple_action_set_enabled(action, (flags & DW_MIS_DISABLED) ? FALSE : TRUE); |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2416 return (HWND)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
|
2417 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2418 |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2419 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
|
2420 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2421 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
|
2422 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
|
2423 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2424 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
|
2425 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
|
2426 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2427 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
|
2428 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2429 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
|
2430 GMenuItem *menuitem; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2431 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
|
2432 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2433 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
|
2434 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2435 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
|
2436 { |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2437 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
|
2438 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
|
2439 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2440 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2441 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
|
2442 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2443 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2444 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2445 * 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
|
2446 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2447 * 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
|
2448 * 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
|
2449 * 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
|
2450 * 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
|
2451 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2452 void dw_menu_item_set_check(HMENUI menu, unsigned long id, int check) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2453 { |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2454 #if 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
|
2455 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
|
2456 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
|
2457 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2458 if(!menu) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2459 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2460 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2461 snprintf(numbuf, 24, "%lu", id); |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2462 tmphandle = _dw_find_submenu_id(menu, numbuf); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2463 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2464 if(tmphandle && G_IS_MENU_ITEM(tmphandle)) |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2465 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2466 GSimpleAction *action = g_object_get_data(G_OBJECT(tmphandle), "_dw_action"); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2467 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2468 if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(tmphandle)) != check) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2469 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(tmphandle), check); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2470 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2471 #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
|
2472 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2473 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2474 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2475 * 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
|
2476 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2477 * 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
|
2478 * 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
|
2479 * 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
|
2480 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2481 void dw_menu_item_set_state(HMENUI menu, unsigned long id, unsigned long state) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2482 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2483 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
|
2484 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
|
2485 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2486 if(!menu) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2487 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2488 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2489 snprintf(numbuf, 24, "%lu", id); |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2490 tmphandle = _dw_find_submenu_id(menu, numbuf); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2491 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2492 if(tmphandle && G_IS_MENU_ITEM(tmphandle)) |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2493 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2494 GSimpleAction *action = g_object_get_data(G_OBJECT(tmphandle), "_dw_action"); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2495 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2496 #if 0 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2497 if((state & DW_MIS_CHECKED) || (state & DW_MIS_UNCHECKED)) |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2498 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2499 int check = 0; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2500 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2501 if(state & DW_MIS_CHECKED) |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2502 check = 1; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2503 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2504 if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(tmphandle)) != check) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2505 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(tmphandle), check); |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2506 } |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2507 #endif |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2508 if((state & DW_MIS_ENABLED) || (state & DW_MIS_DISABLED)) |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2509 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2510 if(state & DW_MIS_ENABLED) |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2511 g_simple_action_set_enabled(action, 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
|
2512 else |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2513 g_simple_action_set_enabled(action, FALSE); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2514 } |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2515 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2516 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2517 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2518 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2519 * 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
|
2520 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2521 * 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
|
2522 * 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
|
2523 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2524 * 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
|
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 int API dw_menu_delete_item(HMENUI menu, unsigned long id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2527 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2528 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
|
2529 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
|
2530 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
|
2531 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2532 if(!menu) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2533 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
|
2534 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2535 snprintf(numbuf, 24, "%lu", id); |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2536 tmphandle = _dw_find_submenu_id(menu, numbuf); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2537 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2538 if(tmphandle && G_IS_MENU_ITEM(tmphandle)) |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2539 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2540 /* g_menu_remove(menu, position); */ |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2541 g_object_unref(G_OBJECT(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
|
2542 g_object_set_data(G_OBJECT(menu), numbuf, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2543 ret = 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
|
2544 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2545 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
|
2546 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2547 |
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
|
2548 /* 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
|
2549 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
|
2550 { |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
2551 GtkWidget *self = 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
|
2552 |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
2553 gtk_widget_unparent(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
|
2554 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
|
2555 } |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
2556 |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
2557 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
|
2558 { |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
2559 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
|
2560 |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
2561 /* 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
|
2562 * 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
|
2563 */ |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
2564 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
|
2565 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
|
2566 } |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
2567 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2568 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2569 * 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
|
2570 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2571 * 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
|
2572 * 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
|
2573 * 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
|
2574 * 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
|
2575 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2576 void dw_menu_popup(HMENUI *menu, HWND parent, int x, int y) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2577 { |
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
|
2578 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
|
2579 { |
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
|
2580 GtkWidget *tmp = gtk_popover_menu_new_from_model_full(G_MENU_MODEL(*menu), GTK_POPOVER_MENU_NESTED); |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2581 |
2299
27c20fa1615e
GTK4: Fix a crash while trying to create a popup menu...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2295
diff
changeset
|
2582 gtk_widget_set_parent(tmp, GTK_WIDGET(parent)); |
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
|
2583 _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
|
2584 gtk_popover_set_autohide(GTK_POPOVER(tmp), TRUE); |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
2585 #if 0 |
2299
27c20fa1615e
GTK4: Fix a crash while trying to create a popup menu...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2295
diff
changeset
|
2586 gtk_popover_set_offset(GTK_POPOVER(tmp), x, y); |
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
|
2587 #endif |
6e47d510dbbb
GTK4: Since GTK4 needs to add the popup menu to the parent widget...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2299
diff
changeset
|
2588 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
|
2589 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
|
2590 *menu = NULL; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2591 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2592 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2593 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2594 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2595 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2596 * 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
|
2597 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2598 * 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
|
2599 * 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
|
2600 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2601 void dw_pointer_query_pos(long *x, long *y) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2602 { |
2278
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
2603 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
|
2604 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
|
2605 double dx, dy; |
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
2606 |
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
2607 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
|
2608 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2609 if(x) |
2278
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
2610 *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
|
2611 if(y) |
2278
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
2612 *y = (long)dy; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2613 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2614 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2615 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2616 * 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
|
2617 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2618 * 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
|
2619 * 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
|
2620 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2621 void dw_pointer_set_pos(long x, long y) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2622 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2623 /* TODO: See if this is possible in GTK4 */ |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2624 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2625 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2626 #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
|
2627 #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
|
2628 #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
|
2629 |
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
|
2630 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
|
2631 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2632 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
|
2633 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2634 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
|
2635 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
|
2636 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
|
2637 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2638 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
|
2639 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
|
2640 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
|
2641 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2642 |
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
|
2643 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
|
2644 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2645 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
|
2646 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
|
2647 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
|
2648 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
|
2649 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
|
2650 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2651 |
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 * 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
|
2654 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2655 * 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
|
2656 * 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
|
2657 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2658 HWND dw_container_new(unsigned long id, int multi) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2659 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2660 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
|
2661 |
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
|
2662 if(!(tmp = _dw_tree_create(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
|
2663 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
|
2664 g_object_set_data(G_OBJECT(tmp), "_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
|
2665 g_object_set_data(G_OBJECT(tmp), "_dw_multi_sel", GINT_TO_POINTER(multi)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2666 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
|
2667 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2668 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2669 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2670 * 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
|
2671 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2672 * 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
|
2673 * 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
|
2674 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2675 HWND dw_tree_new(ULONG id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2676 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2677 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
|
2678 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
|
2679 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
|
2680 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
|
2681 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
|
2682 |
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
|
2683 if(!(tmp = _dw_tree_create(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
|
2684 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
|
2685 store = gtk_tree_store_new(4, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_POINTER, G_TYPE_POINTER); |
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
|
2686 tree = _dw_tree_view_setup(tmp, 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
|
2687 g_object_set_data(G_OBJECT(tmp), "_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
|
2688 g_object_set_data(G_OBJECT(tree), "_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
|
2689 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
|
2690 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2691 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
|
2692 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
|
2693 gtk_tree_view_column_add_attribute(col, rend, "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
|
2694 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
|
2695 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
|
2696 gtk_tree_view_column_add_attribute(col, rend, "text", 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2697 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2698 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
|
2699 gtk_tree_view_set_expander_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
|
2700 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), FALSE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2701 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2702 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
|
2703 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
|
2704 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
|
2705 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2706 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
|
2707 dw_window_set_font(tmp, _DWDefaultFont); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2708 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
|
2709 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2710 |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2713 * 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
|
2714 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2715 * 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
|
2716 * 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
|
2717 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2718 HWND dw_text_new(const char *text, unsigned long id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2719 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2720 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
|
2721 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2722 tmp = gtk_label_new(text); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2723 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2724 /* 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
|
2725 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
|
2726 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
|
2727 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
|
2728 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
|
2729 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
|
2730 dw_window_set_font(tmp, _DWDefaultFont); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2731 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
|
2732 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2733 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2734 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2735 * 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
|
2736 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2737 * 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
|
2738 * 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
|
2739 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2740 HWND dw_status_text_new(const char *text, ULONG id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2741 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2742 GtkWidget *tmp, *frame; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2743 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2744 frame = gtk_frame_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
|
2745 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
|
2746 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
|
2747 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
|
2748 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
|
2749 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2750 /* 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
|
2751 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
|
2752 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
|
2753 g_object_set_data(G_OBJECT(frame), "_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
|
2754 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
|
2755 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
|
2756 dw_window_set_font(tmp, _DWDefaultFont); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2757 return frame; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2758 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2759 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2760 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2761 * 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
|
2762 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2763 * 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
|
2764 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2765 HWND dw_mle_new(unsigned long id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2766 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2767 GtkWidget *tmp, *tmpbox; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2768 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2769 tmpbox = gtk_scrolled_window_new(); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2770 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
|
2771 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
|
2772 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
|
2773 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
|
2774 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
|
2775 |
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(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
|
2777 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
|
2778 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
|
2779 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
|
2780 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
|
2781 dw_window_set_font(tmpbox, _DWDefaultFont); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2782 return tmpbox; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2783 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2784 |
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 * 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
|
2787 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2788 * 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
|
2789 * 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
|
2790 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2791 HWND dw_entryfield_new(const char *text, unsigned long id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2792 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2793 GtkWidget *tmp; |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2794 GtkEntryBuffer *buffer = gtk_entry_buffer_new(text, -1); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2795 |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2796 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
|
2797 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2798 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
|
2799 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
|
2800 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2801 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
|
2802 dw_window_set_font(tmp, _DWDefaultFont); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2803 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
|
2804 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2805 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2806 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2807 * 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
|
2808 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2809 * 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
|
2810 * 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
|
2811 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2812 HWND dw_entryfield_password_new(const char *text, ULONG id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2813 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2814 GtkWidget *tmp; |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2815 GtkEntryBuffer *buffer = gtk_entry_buffer_new(text, -1); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2816 |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2817 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
|
2818 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2819 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
|
2820 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2821 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
|
2822 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
|
2823 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2824 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
|
2825 dw_window_set_font(tmp, _DWDefaultFont); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2826 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
|
2827 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2828 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2829 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2830 * 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
|
2831 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2832 * 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
|
2833 * 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
|
2834 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2835 HWND dw_combobox_new(const char *text, unsigned long id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2836 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2837 GtkWidget *tmp; |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2838 GtkEntryBuffer *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
|
2839 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
|
2840 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2841 store = gtk_list_store_new(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
|
2842 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
|
2843 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
|
2844 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
|
2845 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
|
2846 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
|
2847 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
|
2848 g_object_set_data(G_OBJECT(tmp), "_dw_tree_type", GINT_TO_POINTER(_DW_TREE_TYPE_COMBOBOX)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2849 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
|
2850 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
|
2851 dw_window_set_font(tmp, _DWDefaultFont); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2852 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
|
2853 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2854 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2855 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2856 * 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
|
2857 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2858 * 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
|
2859 * 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
|
2860 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2861 HWND dw_button_new(const char *text, unsigned long id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2862 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2863 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
|
2864 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2865 tmp = gtk_button_new_with_label(text); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2866 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
|
2867 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
|
2868 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
|
2869 dw_window_set_font(tmp, _DWDefaultFont); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2870 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
|
2871 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2872 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2873 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2874 * 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
|
2875 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2876 * 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
|
2877 * 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
|
2878 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2879 HWND dw_bitmapbutton_new(const char *text, unsigned long id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2880 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2881 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
|
2882 GtkWidget *bitmap; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2883 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2884 tmp = gtk_button_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2885 bitmap = dw_bitmap_new(id); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2886 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2887 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
|
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 dw_window_set_bitmap(bitmap, id, NULL); |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2890 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
|
2891 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
|
2892 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2893 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
|
2894 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
|
2895 gtk_widget_set_tooltip_text(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
|
2896 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
|
2897 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
|
2898 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2899 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2900 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2901 * 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
|
2902 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2903 * 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
|
2904 * 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
|
2905 * 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
|
2906 * 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
|
2907 * 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
|
2908 * (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
|
2909 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2910 HWND dw_bitmapbutton_new_from_file(const char *text, unsigned long id, 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
|
2911 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2912 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
|
2913 GtkWidget *bitmap; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2914 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2915 /* Create a new button */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2916 tmp = gtk_button_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2917 /* Now on to the image stuff */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2918 bitmap = dw_bitmap_new(id); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2919 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
|
2920 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2921 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
|
2922 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
|
2923 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
|
2924 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2925 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
|
2926 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
|
2927 gtk_widget_set_tooltip_text(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
|
2928 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
|
2929 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
|
2930 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2931 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2932 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2933 * 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
|
2934 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2935 * 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
|
2936 * 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
|
2937 * 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
|
2938 * (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
|
2939 * 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
|
2940 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2941 HWND dw_bitmapbutton_new_from_data(const char *text, unsigned long id, 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
|
2942 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2943 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
|
2944 GtkWidget *bitmap; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2945 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2946 tmp = gtk_button_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2947 bitmap = dw_bitmap_new(id); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2948 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2949 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
|
2950 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2951 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
|
2952 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
|
2953 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
|
2954 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2955 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
|
2956 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
|
2957 gtk_widget_set_tooltip_text(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
|
2958 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
|
2959 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
|
2960 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2961 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2962 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2963 * 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
|
2964 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2965 * 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
|
2966 * 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
|
2967 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2968 HWND dw_spinbutton_new(const char *text, unsigned long id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2969 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2970 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
|
2971 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
|
2972 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2973 adj = (GtkAdjustment *)gtk_adjustment_new((float)atoi(text), -65536.0, 65536.0, 1.0, 5.0, 0.0); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2974 tmp = gtk_spin_button_new(adj, 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
|
2975 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
|
2976 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
|
2977 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
|
2978 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
|
2979 g_object_set_data(G_OBJECT(adj), "_dw_spinbutton", (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
|
2980 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
|
2981 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
|
2982 dw_window_set_font(tmp, _DWDefaultFont); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2983 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
|
2984 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2985 |
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 * 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
|
2988 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2989 * 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
|
2990 * 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
|
2991 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2992 HWND dw_radiobutton_new(const char *text, ULONG id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2993 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2994 GtkWidget *tmp = gtk_toggle_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
|
2995 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
|
2996 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
|
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 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
|
2999 dw_window_set_font(tmp, _DWDefaultFont); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3000 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
|
3001 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3002 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3003 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3004 * 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
|
3005 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3006 * 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
|
3007 * 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
|
3008 * 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
|
3009 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3010 HWND dw_slider_new(int vertical, int increments, ULONG id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3011 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3012 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
|
3013 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
|
3014 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3015 adjustment = (GtkAdjustment *)gtk_adjustment_new(0, 0, (gfloat)increments, 1, 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
|
3016 tmp = gtk_scale_new(vertical ? GTK_ORIENTATION_VERTICAL : GTK_ORIENTATION_HORIZONTAL, adjustment); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3017 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
|
3018 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
|
3019 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
|
3020 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
|
3021 g_object_set_data(G_OBJECT(adjustment), "_dw_slider", (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
|
3022 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
|
3023 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
|
3024 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3025 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3026 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3027 * 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
|
3028 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3029 * 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
|
3030 * 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
|
3031 * 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
|
3032 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3033 HWND dw_scrollbar_new(int vertical, ULONG id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3034 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3035 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
|
3036 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
|
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 adjustment = (GtkAdjustment *)gtk_adjustment_new(0, 0, 0, 1, 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
|
3039 tmp = gtk_scrollbar_new(vertical ? GTK_ORIENTATION_VERTICAL : GTK_ORIENTATION_HORIZONTAL, adjustment); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3040 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
|
3041 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
|
3042 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
|
3043 g_object_set_data(G_OBJECT(adjustment), "_dw_scrollbar", (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
|
3044 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
|
3045 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
|
3046 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3047 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3048 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3049 * 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
|
3050 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3051 * 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
|
3052 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3053 HWND dw_percent_new(unsigned long id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3054 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3055 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
|
3056 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3057 tmp = gtk_progress_bar_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3058 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
|
3059 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
|
3060 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
|
3061 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3062 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3063 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3064 * 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
|
3065 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3066 * 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
|
3067 * 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
|
3068 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3069 HWND dw_checkbox_new(const char *text, unsigned long id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3070 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3071 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
|
3072 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3073 tmp = gtk_check_button_new_with_label(text); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3074 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
|
3075 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
|
3076 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
|
3077 dw_window_set_font(tmp, _DWDefaultFont); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3078 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
|
3079 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3080 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3081 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3082 * 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
|
3083 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3084 * 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
|
3085 * 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
|
3086 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3087 HWND dw_listbox_new(unsigned long id, int multi) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3088 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3089 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
|
3090 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
|
3091 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
|
3092 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
|
3093 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
|
3094 |
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
|
3095 if(!(tmp = _dw_tree_create(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
|
3096 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
|
3097 store = gtk_list_store_new(1, G_TYPE_STRING); |
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
|
3098 tree = _dw_tree_view_setup(tmp, 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
|
3099 g_object_set_data(G_OBJECT(tmp), "_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
|
3100 g_object_set_data(G_OBJECT(tree), "_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
|
3101 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3102 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
|
3103 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
|
3104 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
|
3105 gtk_tree_view_column_add_attribute(col, rend, "text", 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3106 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3107 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
|
3108 gtk_tree_view_set_expander_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
|
3109 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), FALSE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3110 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3111 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
|
3112 if(multi) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3113 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3114 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
|
3115 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3116 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3117 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3118 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
|
3119 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3120 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
|
3121 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
|
3122 dw_window_set_font(tmp, _DWDefaultFont); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3123 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
|
3124 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3125 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3126 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3127 * 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
|
3128 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3129 * 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
|
3130 * 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
|
3131 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3132 void dw_window_set_icon(HWND handle, 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
|
3133 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3134 /* TODO: figure out how to do this for GTK4 */ |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3135 #if GTK3 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3136 GdkPixbuf *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
|
3137 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
3138 icon_pixbuf = _dw_find_pixbuf(icon, 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
|
3139 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3140 if(icon_pixbuf) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3141 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3142 gtk_window_set_icon_name( |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3143 } |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3144 #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
|
3145 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3146 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3147 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3148 * 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
|
3149 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3150 * 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
|
3151 * 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
|
3152 * (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
|
3153 * 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
|
3154 * 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
|
3155 * 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
|
3156 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3157 void dw_window_set_bitmap(HWND handle, unsigned long id, 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
|
3158 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3159 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
|
3160 int found_ext = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3161 int i; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3162 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3163 if(!id && !filename) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3164 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3165 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3166 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
|
3167 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
|
3168 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3169 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3170 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
|
3171 |
2282
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3172 if(!file) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3173 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3174 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3175 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
|
3176 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3177 /* 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
|
3178 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
|
3179 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3180 /* Try with various extentions */ |
2282
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3181 for(i=0; i<NUM_EXTS; 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
|
3182 { |
2282
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3183 strcpy(file, filename); |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3184 strcat(file, image_exts[i]); |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3185 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
|
3186 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3187 found_ext = 1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3188 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3189 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3190 } |
2282
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3191 if(found_ext == 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
|
3192 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3193 } |
2282
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3194 tmp = gdk_pixbuf_new_from_file(file, NULL); |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3195 } |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3196 |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3197 if(tmp) |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3198 { |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3199 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
|
3200 { |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3201 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
|
3202 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
|
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 gtk_image_set_from_pixbuf(GTK_IMAGE(pixmap), tmp); |
2282
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3205 g_object_set_data(G_OBJECT(pixmap), "_dw_pixbuf", 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
|
3206 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3207 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3208 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3209 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3210 gtk_image_set_from_pixbuf(GTK_IMAGE(handle), tmp); |
2282
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3211 g_object_set_data(G_OBJECT(handle), "_dw_pixbuf", 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
|
3212 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3213 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3214 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3215 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3216 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3217 * 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
|
3218 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3219 * 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
|
3220 * 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
|
3221 * (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
|
3222 * 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
|
3223 * 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
|
3224 * 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
|
3225 * 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
|
3226 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3227 void dw_window_set_bitmap_from_data(HWND handle, unsigned long id, 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
|
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 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
|
3230 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3231 if(!id && !data) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3232 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3233 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3234 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
|
3235 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3236 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3237 * 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
|
3238 * 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
|
3239 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3240 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
|
3241 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
|
3242 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3243 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
|
3244 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3245 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
|
3246 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
|
3247 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3248 /* 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
|
3249 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
|
3250 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3251 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3252 tmp = gdk_pixbuf_new_from_file(template, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3253 /* remove our temporary file */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3254 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
|
3255 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3256 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
|
3257 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
|
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 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
|
3260 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3261 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
|
3262 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3263 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
|
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 if(pixmap) |
2282
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3266 { |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3267 gtk_image_set_from_pixbuf(GTK_IMAGE(pixmap), tmp); |
2282
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3268 g_object_set_data(G_OBJECT(pixmap), "_dw_pixbuf", tmp); |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3269 } |
2264
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 else |
2282
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3272 { |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3273 gtk_image_set_from_pixbuf(GTK_IMAGE(handle), tmp); |
2282
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3274 g_object_set_data(G_OBJECT(handle), "_dw_pixbuf", tmp); |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
3275 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3276 } |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3279 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3280 * 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
|
3281 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3282 * 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
|
3283 * 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
|
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 void dw_window_set_text(HWND handle, const char *text) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3286 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3287 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
|
3288 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3289 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
|
3290 if(buffer) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3291 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
|
3292 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3293 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
|
3294 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3295 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
|
3296 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
|
3297 if(buffer) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3298 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
|
3299 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3300 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
|
3301 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
|
3302 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
|
3303 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
|
3304 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
|
3305 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
|
3306 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
|
3307 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3308 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3309 * 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
|
3310 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3311 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
|
3312 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
|
3313 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
|
3314 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
|
3315 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3318 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3319 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3320 * 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
|
3321 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3322 * 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
|
3323 * 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
|
3324 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3325 void API dw_window_set_tooltip(HWND handle, const char *bubbletext) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3326 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3327 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
|
3328 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
|
3329 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3330 gtk_widget_set_has_tooltip(handle, FALSE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3331 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3332 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3333 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3334 * 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
|
3335 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3336 * 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
|
3337 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3338 * 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
|
3339 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3340 char *dw_window_get_text(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3341 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3342 const char *possible = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3343 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3344 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
|
3345 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3346 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
|
3347 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
|
3348 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3349 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
|
3350 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3351 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
|
3352 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
|
3353 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
|
3354 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3355 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
|
3356 possible = gtk_label_get_text(GTK_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
|
3357 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3358 return strdup(possible ? possible : ""); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3359 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3360 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3361 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3362 * 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
|
3363 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3364 * 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
|
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 void dw_window_disable(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3367 { |
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_widget_set_sensitive(handle, FALSE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3369 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3370 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3371 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3372 * 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
|
3373 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3374 * 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
|
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 void dw_window_enable(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3377 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3378 gtk_widget_set_sensitive(handle, TRUE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3379 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3380 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3381 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3382 * 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
|
3383 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3384 * 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
|
3385 * 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
|
3386 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3387 HWND API dw_window_from_id(HWND handle, 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
|
3388 { |
2275
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
3389 if(handle && GTK_WIDGET(handle) && id) |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
3390 { |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
3391 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
|
3392 |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
3393 while(widget) |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
3394 { |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
3395 if(id == GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "_dw_id"))) |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
3396 return widget; |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
3397 widget = gtk_widget_get_next_sibling(GTK_WIDGET(widget)); |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
3398 } |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
3399 } |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
3400 return 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
|
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 * 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
|
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 * 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
|
3407 * 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
|
3408 * 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
|
3409 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3410 unsigned int dw_mle_import(HWND handle, const char *buffer, int startpoint) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3411 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3412 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
|
3413 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3414 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
|
3415 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3416 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
|
3417 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3418 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
|
3419 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3420 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
|
3421 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
|
3422 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3423 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
|
3424 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
|
3425 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
|
3426 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
|
3427 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
|
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 return tmppoint; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3431 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3432 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3433 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3434 * 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
|
3435 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3436 * 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
|
3437 * 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
|
3438 * 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
|
3439 * 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
|
3440 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3441 void dw_mle_export(HWND handle, char *buffer, int startpoint, 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
|
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 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
|
3444 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3445 /* 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
|
3446 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
|
3447 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
|
3448 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
|
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 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
|
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 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
|
3453 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3454 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
|
3455 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
|
3456 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3457 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
|
3458 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
|
3459 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
|
3460 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
|
3461 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
|
3462 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3463 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
|
3464 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
|
3465 } |
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3468 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3471 * 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
|
3472 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3473 * 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
|
3474 * 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
|
3475 * 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
|
3476 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3477 void dw_mle_get_size(HWND handle, unsigned long *bytes, unsigned long *lines) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3478 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3479 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
|
3480 *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
|
3481 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
|
3482 *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
|
3483 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3484 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
|
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 = (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
|
3487 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3488 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
|
3489 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3490 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
|
3491 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3492 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
|
3493 *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
|
3494 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
|
3495 *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
|
3496 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3497 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3498 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3499 |
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 * 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
|
3502 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3503 * 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
|
3504 * 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
|
3505 * 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
|
3506 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3507 void dw_mle_delete(HWND handle, int startpoint, 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
|
3508 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3509 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
|
3510 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3511 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
|
3512 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3513 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
|
3514 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3515 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
|
3516 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
|
3517 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3518 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
|
3519 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
|
3520 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
|
3521 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
|
3522 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3523 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3524 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3525 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3526 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3527 * 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
|
3528 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3529 * 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
|
3530 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3531 void dw_mle_clear(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3532 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3533 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
|
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(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
|
3536 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3537 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
|
3538 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3539 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
|
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 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
|
3542 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3543 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
|
3544 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
|
3545 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3550 * 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
|
3551 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3552 * 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
|
3553 * 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
|
3554 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3555 void dw_mle_set_visible(HWND handle, int line) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3556 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3557 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
|
3558 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3559 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
|
3560 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3561 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
|
3562 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3563 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
|
3564 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
|
3565 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
|
3566 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3567 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
|
3568 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
|
3569 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
|
3570 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
|
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 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
|
3573 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
|
3574 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3575 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3576 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
|
3577 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
|
3578 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3581 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3582 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3583 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3584 * 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
|
3585 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3586 * 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
|
3587 * 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
|
3588 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3589 void dw_mle_set_editable(HWND handle, 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
|
3590 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3591 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
|
3592 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3593 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
|
3594 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3595 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
|
3596 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3599 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3600 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3601 * 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
|
3602 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3603 * 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
|
3604 * 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
|
3605 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3606 void dw_mle_set_word_wrap(HWND handle, 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
|
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 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
|
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 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
|
3611 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3612 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
|
3613 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
|
3614 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3615 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3616 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3617 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3618 * 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
|
3619 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3620 * 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
|
3621 * 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
|
3622 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3623 void dw_mle_set_auto_complete(HWND handle, 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
|
3624 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3625 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3626 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3627 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3628 * 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
|
3629 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3630 * 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
|
3631 * 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
|
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 void dw_mle_set_cursor(HWND handle, int point) |
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 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
|
3636 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3637 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
|
3638 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3639 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
|
3640 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3641 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
|
3642 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
|
3643 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
|
3644 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3645 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
|
3646 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
|
3647 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
|
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 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
|
3650 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
|
3651 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3652 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3653 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
|
3654 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
|
3655 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
|
3656 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
|
3657 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3658 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3659 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3660 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3661 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3662 * 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
|
3663 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3664 * 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
|
3665 * 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
|
3666 * 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
|
3667 * 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
|
3668 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3669 int dw_mle_search(HWND handle, const char *text, int point, 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
|
3670 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3671 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
|
3672 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3673 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
|
3674 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3675 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
|
3676 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3677 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
|
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 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
|
3680 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
|
3681 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3682 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
|
3683 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
|
3684 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
|
3685 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
|
3686 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3687 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3688 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
|
3689 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3690 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3691 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3692 * 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
|
3693 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3694 * 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
|
3695 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3696 void dw_mle_freeze(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3697 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3698 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3699 |
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 * 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
|
3702 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3703 * 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
|
3704 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3705 void dw_mle_thaw(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3706 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3707 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3708 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3709 /* 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
|
3710 * 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
|
3711 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3712 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
|
3713 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3714 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
|
3715 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3716 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
|
3717 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
|
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 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
|
3720 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3721 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3722 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3723 * 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
|
3724 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3725 * 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
|
3726 * 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
|
3727 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3728 void dw_percent_set_pos(HWND handle, unsigned int position) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3729 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3730 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
|
3731 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3732 /* 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
|
3733 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
|
3734 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3735 /* 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
|
3736 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
|
3737 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
|
3738 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
|
3739 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3740 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3741 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3742 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3743 /* 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
|
3744 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
|
3745 /* 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
|
3746 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
|
3747 } |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3750 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3751 * 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
|
3752 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3753 * 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
|
3754 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3755 unsigned int dw_slider_get_pos(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3756 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3757 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
|
3758 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
|
3759 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3760 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
|
3761 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
|
3762 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3763 adjustment = (GtkAdjustment *)g_object_get_data(G_OBJECT(handle), "_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
|
3764 if(adjustment) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3765 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3766 int max = _round_value(gtk_adjustment_get_upper(adjustment)) - 1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3767 int thisval = _round_value(gtk_adjustment_get_value(adjustment)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3768 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3769 if(gtk_orientable_get_orientation(GTK_ORIENTABLE(handle)) == 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
|
3770 val = max - thisval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3771 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3772 val = thisval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3773 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3774 return val; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3775 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3776 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3777 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3778 * 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
|
3779 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3780 * 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
|
3781 * 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
|
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 void dw_slider_set_pos(HWND handle, unsigned int position) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3784 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3785 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
|
3786 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3787 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
|
3788 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3789 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3790 adjustment = (GtkAdjustment *)g_object_get_data(G_OBJECT(handle), "_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
|
3791 if(adjustment) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3792 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3793 int max = _round_value(gtk_adjustment_get_upper(adjustment)) - 1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3794 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3795 if(gtk_orientable_get_orientation(GTK_ORIENTABLE(handle)) == 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
|
3796 gtk_adjustment_set_value(adjustment, (gfloat)(max - position)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3797 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3798 gtk_adjustment_set_value(adjustment, (gfloat)position); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3799 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3800 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3801 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3802 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3803 * 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
|
3804 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3805 * 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
|
3806 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3807 unsigned int dw_scrollbar_get_pos(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3808 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3809 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
|
3810 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
|
3811 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3812 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
|
3813 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
|
3814 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3815 adjustment = (GtkAdjustment *)g_object_get_data(G_OBJECT(handle), "_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
|
3816 if(adjustment) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3817 val = _round_value(gtk_adjustment_get_value(adjustment)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3818 return val; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3819 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3820 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3821 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3822 * 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
|
3823 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3824 * 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
|
3825 * 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
|
3826 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3827 void dw_scrollbar_set_pos(HWND handle, unsigned int position) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3828 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3829 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
|
3830 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3831 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
|
3832 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3833 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3834 adjustment = (GtkAdjustment *)g_object_get_data(G_OBJECT(handle), "_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
|
3835 if(adjustment) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3836 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3837 g_object_set_data(G_OBJECT(adjustment), "_dw_suppress_value_changed_event", 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
|
3838 gtk_adjustment_set_value(adjustment, (gfloat)position); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3839 g_object_set_data(G_OBJECT(adjustment), "_dw_suppress_value_changed_event", 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
|
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 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3844 * 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
|
3845 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3846 * 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
|
3847 * 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
|
3848 * 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
|
3849 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3850 void API dw_scrollbar_set_range(HWND handle, unsigned int range, unsigned int visible) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3851 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3852 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
|
3853 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3854 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
|
3855 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3856 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3857 adjustment = (GtkAdjustment *)g_object_get_data(G_OBJECT(handle), "_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
|
3858 if(adjustment) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3859 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3860 gtk_adjustment_set_upper(adjustment, (gdouble)range); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3861 gtk_adjustment_set_page_increment(adjustment,(gdouble)visible); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3862 gtk_adjustment_set_page_size(adjustment, (gdouble)visible); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3863 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3864 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3865 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3866 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3867 * 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
|
3868 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3869 * 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
|
3870 * 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
|
3871 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3872 void dw_spinbutton_set_pos(HWND handle, long position) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3873 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3874 gtk_spin_button_set_value(GTK_SPIN_BUTTON(handle), (gfloat)position); |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3878 * 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
|
3879 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3880 * 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
|
3881 * 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
|
3882 * 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
|
3883 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3884 void dw_spinbutton_set_limits(HWND handle, long upper, long lower) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3885 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3886 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
|
3887 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
|
3888 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3889 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
|
3890 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
|
3891 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
|
3892 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3893 * 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
|
3894 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3895 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
|
3896 g_object_set_data(G_OBJECT(adj), "_dw_spinbutton", (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
|
3897 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3898 |
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 * 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
|
3901 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3902 * 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
|
3903 * 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
|
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 void dw_entryfield_set_limit(HWND handle, ULONG limit) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3906 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3907 gtk_entry_set_max_length(GTK_ENTRY(handle), limit); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3908 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3909 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3910 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3911 * 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
|
3912 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3913 * 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
|
3914 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3915 long dw_spinbutton_get_pos(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3916 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3917 return (long)gtk_spin_button_get_value_as_int(GTK_SPIN_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
|
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 |
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 * 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
|
3922 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3923 * 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
|
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 int dw_checkbox_get(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3926 { |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
3927 if(GTK_IS_TOGGLE_BUTTON(handle)) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
3928 return gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(handle)); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
3929 return gtk_check_button_get_active(GTK_CHECK_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
|
3930 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3931 |
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 * 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
|
3934 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3935 * 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
|
3936 * 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
|
3937 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3938 void dw_checkbox_set(HWND handle, int value) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3939 { |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
3940 if(GTK_IS_TOGGLE_BUTTON(handle)) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
3941 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(handle), value); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
3942 else |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
3943 gtk_check_button_set_active(GTK_CHECK_BUTTON(handle), 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3946 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3947 * 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
|
3948 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3949 * 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
|
3950 * 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
|
3951 * 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
|
3952 * 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
|
3953 * 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
|
3954 * 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
|
3955 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3956 HTREEITEM dw_tree_insert_after(HWND handle, HTREEITEM item, const char *title, HICN icon, HTREEITEM parent, void *itemdata) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3957 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3958 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
|
3959 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
|
3960 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
|
3961 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
|
3962 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
|
3963 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3964 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
|
3965 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
|
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 if((tree = (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
|
3968 && GTK_IS_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
|
3969 (store = (GtkTreeStore *)gtk_tree_view_get_model(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
|
3970 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3971 iter = (GtkTreeIter *)malloc(sizeof(GtkTreeIter)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3972 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
3973 pixbuf = _dw_find_pixbuf(icon, 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
|
3974 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3975 gtk_tree_store_insert_after(store, iter, (GtkTreeIter *)parent, (GtkTreeIter *)item); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3976 gtk_tree_store_set (store, iter, 0, title, 1, pixbuf, 2, itemdata, 3, iter, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3977 retval = (HTREEITEM)iter; |
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 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
|
3980 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3981 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3982 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3983 * 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
|
3984 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3985 * 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
|
3986 * 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
|
3987 * 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
|
3988 * 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
|
3989 * 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
|
3990 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3991 HTREEITEM dw_tree_insert(HWND handle, const char *title, HICN icon, HTREEITEM parent, void *itemdata) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3992 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3993 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
|
3994 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
|
3995 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
|
3996 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
|
3997 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
|
3998 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3999 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
|
4000 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
|
4001 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4002 if((tree = (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
|
4003 && GTK_IS_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
|
4004 (store = (GtkTreeStore *)gtk_tree_view_get_model(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
|
4005 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4006 iter = (GtkTreeIter *)malloc(sizeof(GtkTreeIter)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4007 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
4008 pixbuf = _dw_find_pixbuf(icon, 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
|
4009 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4010 gtk_tree_store_append (store, iter, (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
|
4011 gtk_tree_store_set (store, iter, 0, title, 1, pixbuf, 2, itemdata, 3, iter, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4012 retval = (HTREEITEM)iter; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4013 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4014 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
|
4015 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4016 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4017 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4018 * 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
|
4019 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4020 * 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
|
4021 * 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
|
4022 * 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
|
4023 * 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
|
4024 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4025 void dw_tree_item_change(HWND handle, HTREEITEM item, const char *title, 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
|
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 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
|
4028 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
|
4029 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
|
4030 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4031 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
|
4032 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4033 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4034 if((tree = (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
|
4035 && GTK_IS_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
|
4036 (store = (GtkTreeStore *)gtk_tree_view_get_model(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
|
4037 { |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
4038 pixbuf = _dw_find_pixbuf(icon, 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
|
4039 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4040 gtk_tree_store_set(store, (GtkTreeIter *)item, 0, title, 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4044 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4045 * 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
|
4046 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4047 * 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
|
4048 * 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
|
4049 * 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
|
4050 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4051 void dw_tree_item_set_data(HWND handle, HTREEITEM item, void *itemdata) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4052 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4053 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
|
4054 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
|
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 if(!handle || !item) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4057 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4058 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4059 if((tree = (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
|
4060 && GTK_IS_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
|
4061 (store = (GtkTreeStore *)gtk_tree_view_get_model(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
|
4062 gtk_tree_store_set(store, (GtkTreeIter *)item, 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
|
4063 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4064 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4065 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4066 * 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
|
4067 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4068 * 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
|
4069 * 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
|
4070 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4071 char * API dw_tree_get_title(HWND handle, HTREEITEM item) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4072 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4073 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
|
4074 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
|
4075 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
|
4076 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4077 if(!handle || !item) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4078 return text; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4079 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4080 tree = (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
|
4081 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4082 if(tree && GTK_IS_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
|
4083 (store = (GtkTreeModel *)gtk_tree_view_get_model(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
|
4084 gtk_tree_model_get(store, (GtkTreeIter *)item, _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
|
4085 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
|
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 char *temp = text; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4088 text = 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
|
4089 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
|
4090 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4091 return text; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4092 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4093 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4094 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4095 * 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
|
4096 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4097 * 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
|
4098 * 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
|
4099 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4100 HTREEITEM API dw_tree_get_parent(HWND handle, HTREEITEM item) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4101 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4102 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
|
4103 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
|
4104 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
|
4105 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4106 if(!handle || !item) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4107 return parent; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4108 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4109 tree = (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
|
4110 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4111 if(tree && GTK_IS_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
|
4112 (store = (GtkTreeModel *)gtk_tree_view_get_model(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
|
4113 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4114 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
|
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 if(gtk_tree_model_iter_parent(store, &iter, (GtkTreeIter *)item)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4117 gtk_tree_model_get(store, &iter, 3, &parent, -1); |
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 return parent; |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4122 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4123 * 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
|
4124 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4125 * 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
|
4126 * 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
|
4127 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4128 void *dw_tree_item_get_data(HWND handle, HTREEITEM item) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4129 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4130 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
|
4131 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
|
4132 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
|
4133 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4134 if(!handle || !item) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4135 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
|
4136 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4137 if((tree = (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
|
4138 && GTK_IS_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
|
4139 (store = (GtkTreeModel *)gtk_tree_view_get_model(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
|
4140 gtk_tree_model_get(store, (GtkTreeIter *)item, 2, &ret, -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4141 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
|
4142 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4145 * 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
|
4146 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4147 * 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
|
4148 * 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
|
4149 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4150 void dw_tree_item_select(HWND handle, HTREEITEM item) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4151 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4152 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
|
4153 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
|
4154 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4155 if(!handle || !item) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4156 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4157 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4158 if((tree = (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
|
4159 && GTK_IS_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
|
4160 (store = (GtkTreeStore *)gtk_tree_view_get_model(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
|
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 GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), (GtkTreeIter *)item); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4163 GtkTreeSelection *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
|
4164 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4165 gtk_tree_view_set_cursor(GTK_TREE_VIEW(tree), path, NULL, FALSE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4166 gtk_tree_selection_select_iter(sel, (GtkTreeIter *)item); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4167 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
|
4168 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4169 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4170 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4171 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
|
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 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
|
4174 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
|
4175 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4176 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
|
4177 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
|
4178 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
|
4179 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
|
4180 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4181 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
|
4182 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4183 do { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4184 _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
|
4185 } 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
|
4186 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4187 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4188 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4189 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4190 * 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
|
4191 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4192 * 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
|
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 void dw_tree_clear(HWND handle) |
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 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
|
4197 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
|
4198 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4199 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
|
4200 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4201 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4202 if((tree = (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
|
4203 && GTK_IS_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
|
4204 (store = (GtkTreeStore *)gtk_tree_view_get_model(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
|
4205 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4206 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
|
4207 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4208 if(gtk_tree_model_get_iter_first(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
|
4209 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4210 do { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4211 _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
|
4212 } 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
|
4213 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4214 gtk_tree_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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4217 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4218 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4219 * 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
|
4220 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4221 * 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
|
4222 * 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
|
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 void dw_tree_item_expand(HWND handle, HTREEITEM item) |
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 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
|
4227 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
|
4228 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4229 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
|
4230 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4231 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4232 if((tree = (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
|
4233 && GTK_IS_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
|
4234 (store = (GtkTreeStore *)gtk_tree_view_get_model(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
|
4235 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4236 GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), (GtkTreeIter *)item); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4237 gtk_tree_view_expand_row(GTK_TREE_VIEW(tree), path, FALSE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4238 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
|
4239 } |
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 |
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 * 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
|
4244 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4245 * 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
|
4246 * 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
|
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 void dw_tree_item_collapse(HWND handle, HTREEITEM item) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4249 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4250 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
|
4251 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
|
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 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
|
4254 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4255 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4256 if((tree = (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
|
4257 && GTK_IS_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
|
4258 (store = (GtkTreeStore *)gtk_tree_view_get_model(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
|
4259 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4260 GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), (GtkTreeIter *)item); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4261 gtk_tree_view_collapse_row(GTK_TREE_VIEW(tree), path); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4262 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
|
4263 } |
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 |
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 * 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
|
4268 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4269 * 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
|
4270 * 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
|
4271 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4272 void dw_tree_item_delete(HWND handle, HTREEITEM item) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4273 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4274 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
|
4275 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
|
4276 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4277 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
|
4278 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4279 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4280 if((tree = (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
|
4281 && GTK_IS_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
|
4282 (store = (GtkTreeStore *)gtk_tree_view_get_model(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
|
4283 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4284 gtk_tree_store_remove(store, (GtkTreeIter *)item); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4285 free(item); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4286 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4287 } |
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 #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
|
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 static int _dw_container_setup(HWND handle, unsigned long *flags, char **titles, int count, int separator, int extra) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4292 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4293 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
|
4294 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
|
4295 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
|
4296 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
|
4297 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
|
4298 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
|
4299 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
|
4300 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
|
4301 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4302 /* 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
|
4303 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
|
4304 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
|
4305 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4306 /* 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
|
4307 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
|
4308 /* 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
|
4309 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
|
4310 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
|
4311 /* 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
|
4312 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
|
4313 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4314 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
|
4315 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4316 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
|
4317 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
|
4318 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4319 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
|
4320 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4321 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
|
4322 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4323 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
|
4324 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4325 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
|
4326 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4327 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
|
4328 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4329 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
|
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 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
|
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 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
|
4334 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4335 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
|
4336 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4337 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
|
4338 } |
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 /* 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
|
4341 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
|
4342 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
|
4343 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
|
4344 /* 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
|
4345 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
|
4346 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4347 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
|
4348 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
|
4349 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
|
4350 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
|
4351 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
|
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(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
|
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 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
|
4356 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
|
4357 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
|
4358 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
|
4359 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
|
4360 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
|
4361 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4362 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
|
4363 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4364 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
|
4365 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
|
4366 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
|
4367 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4368 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
|
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 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
|
4371 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
|
4372 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
|
4373 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
|
4374 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4375 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
|
4376 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4377 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
|
4378 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
|
4379 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
|
4380 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
|
4381 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4382 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
|
4383 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4384 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
|
4385 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
|
4386 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
|
4387 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
|
4388 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4389 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
|
4390 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4391 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
|
4392 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
|
4393 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
|
4394 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
|
4395 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4396 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
|
4397 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
|
4398 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
|
4399 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
|
4400 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
|
4401 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4402 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
|
4403 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
|
4404 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
|
4405 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4406 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
|
4407 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4408 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
|
4409 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
|
4410 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
|
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 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
|
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 /* 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
|
4415 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
|
4416 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
|
4417 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
|
4418 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
|
4419 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
|
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 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
|
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 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4424 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4425 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
|
4426 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4427 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
|
4428 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
|
4429 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
|
4430 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
|
4431 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
|
4432 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4435 * 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
|
4436 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4437 * 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
|
4438 * 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
|
4439 * 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
|
4440 * 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
|
4441 * 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
|
4442 * (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
|
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 int dw_container_setup(HWND handle, unsigned long *flags, char **titles, int count, int separator) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4445 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4446 return _dw_container_setup(handle, flags, titles, count, separator, 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4447 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4448 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4449 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4450 * 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
|
4451 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4452 * 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
|
4453 * 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
|
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 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
|
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 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
|
4458 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4459 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
|
4460 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4461 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4462 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4463 * 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
|
4464 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4465 * 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
|
4466 * 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
|
4467 * 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
|
4468 * 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
|
4469 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4470 int dw_filesystem_setup(HWND handle, unsigned long *flags, char **titles, int count) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4471 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4472 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
|
4473 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
|
4474 char *coltitle = (char *)g_object_get_data(G_OBJECT(handle), "_dw_coltitle"); |
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 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
|
4477 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
|
4478 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4479 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
|
4480 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
|
4481 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4482 _dw_container_setup(handle, newflags, newtitles, count + 1, 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
|
4483 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4484 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
|
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 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
|
4487 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
|
4488 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4489 if ( newtitles) free(newtitles); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4490 if ( newflags ) free(newflags); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4491 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
|
4492 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4493 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4494 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4495 * 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
|
4496 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4497 * 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
|
4498 * 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
|
4499 * 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
|
4500 * 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
|
4501 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4502 HICN dw_icon_load(unsigned long module, unsigned long id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4503 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4504 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
|
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 /* Internal function to keep HICNs from getting too big */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4508 GdkPixbuf *_icon_resize(GdkPixbuf *ret) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4509 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4510 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
|
4511 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4512 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
|
4513 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
|
4514 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4515 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
|
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 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
|
4518 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
|
4519 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
|
4520 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4521 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4522 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
|
4523 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4524 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4525 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4526 * 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
|
4527 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4528 * 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
|
4529 * 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
|
4530 * (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
|
4531 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4532 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
|
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 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
|
4535 int i, found_ext = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4536 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4537 if (!file) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4538 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
|
4539 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4540 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
|
4541 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4542 /* check if we can read from this file (it exists and read permission) */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4543 if (access(file, 04) != 0) |
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 /* Try with various extentions */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4546 for ( i = 0; i < NUM_EXTS; i++ ) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4547 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4548 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
|
4549 strcat( file, image_exts[i] ); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4550 if ( access( file, 04 ) == 0 ) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4551 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4552 found_ext = 1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4553 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4554 } |
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 if ( found_ext == 0 ) |
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 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
|
4559 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4560 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4561 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4562 return _icon_resize(gdk_pixbuf_new_from_file(file, NULL)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4563 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4564 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4565 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4566 * 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
|
4567 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4568 * 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
|
4569 * 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
|
4570 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4571 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
|
4572 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4573 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
|
4574 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
|
4575 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
|
4576 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4577 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4578 * 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
|
4579 * 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
|
4580 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4581 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
|
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 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
|
4584 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
|
4585 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4586 /* 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
|
4587 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
|
4588 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
|
4589 ret = _icon_resize(gdk_pixbuf_new_from_file(template, NULL)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4590 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
|
4591 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
|
4592 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4593 |
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 * 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
|
4596 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4597 * 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
|
4598 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4599 void dw_icon_free(HICN handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4600 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4601 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
|
4602 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4603 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
|
4604 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4605 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
|
4606 } |
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 * 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
|
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 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
|
4613 * 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
|
4614 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4615 void *dw_container_alloc(HWND handle, int rowcount) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4616 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4617 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
|
4618 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
|
4619 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
|
4620 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4621 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
|
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 /* 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
|
4624 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
|
4625 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
|
4626 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4627 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
|
4628 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4629 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
|
4630 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4631 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
|
4632 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4633 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
|
4634 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4635 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
|
4636 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4637 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
|
4638 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
|
4639 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4640 return (void *)cont; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4641 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4644 * 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
|
4645 * 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
|
4646 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4647 void _dw_container_set_item(HWND handle, void *pointer, 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
|
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 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
|
4650 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
|
4651 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
|
4652 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
|
4653 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4654 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
|
4655 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4656 /* 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
|
4657 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
|
4658 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
|
4659 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4660 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
|
4661 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4662 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
|
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 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
|
4665 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
|
4666 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
|
4667 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4668 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
|
4669 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4670 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4671 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
|
4672 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4673 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
|
4674 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4675 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
|
4676 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
|
4677 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
|
4678 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
|
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 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
|
4681 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
|
4682 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4683 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
|
4684 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4685 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
|
4686 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
|
4687 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4688 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
|
4689 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4690 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
|
4691 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4692 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
|
4693 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
|
4694 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4695 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
|
4696 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4697 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
|
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 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
|
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 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
|
4702 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4703 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
|
4704 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4705 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
|
4706 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
|
4707 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4708 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
|
4709 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
|
4710 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
|
4711 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
|
4712 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4713 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
|
4714 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4715 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
|
4716 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4717 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
|
4718 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4719 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
|
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 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
|
4722 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
|
4723 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4724 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
|
4725 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
|
4726 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
|
4727 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
|
4728 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4729 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
|
4730 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4731 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
|
4732 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4733 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4734 } |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4737 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4738 * 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
|
4739 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4740 * 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
|
4741 * 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
|
4742 * 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
|
4743 * 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
|
4744 * 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
|
4745 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4746 void dw_container_set_item(HWND handle, void *pointer, 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
|
4747 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4748 _dw_container_set_item(handle, pointer, 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
|
4749 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4750 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4751 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4752 * 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
|
4753 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4754 * 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
|
4755 * 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
|
4756 * 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
|
4757 * 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
|
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 void dw_container_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
|
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 _dw_container_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
|
4762 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4763 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4764 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4765 * 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
|
4766 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4767 * 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
|
4768 * 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
|
4769 * 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
|
4770 * 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
|
4771 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4772 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
|
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 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
|
4775 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4776 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4777 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4778 * 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
|
4779 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4780 * 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
|
4781 * 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
|
4782 * 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
|
4783 * 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
|
4784 * 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
|
4785 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4786 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
|
4787 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4788 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
|
4789 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4790 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4791 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4792 * 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
|
4793 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4794 * 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
|
4795 * 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
|
4796 * 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
|
4797 * 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
|
4798 * 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
|
4799 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4800 void dw_filesystem_set_file(HWND handle, void *pointer, 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
|
4801 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4802 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
|
4803 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4804 _dw_container_set_item(handle, pointer, 0, 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
|
4805 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4806 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4807 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4808 * 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
|
4809 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4810 * 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
|
4811 * 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
|
4812 * 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
|
4813 * 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
|
4814 * 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
|
4815 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4816 void dw_filesystem_set_item(HWND handle, void *pointer, 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
|
4817 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4818 _dw_container_set_item(handle, pointer, column + 1, 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
|
4819 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4820 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4821 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4822 * 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
|
4823 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4824 * 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
|
4825 * 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
|
4826 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4827 int dw_container_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
|
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 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
|
4830 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
|
4831 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
|
4832 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4833 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
|
4834 if(!cont) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4835 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
|
4836 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4837 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
|
4838 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
|
4839 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4840 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
|
4841 rc = 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
|
4842 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
|
4843 rc = 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
|
4844 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
|
4845 rc = 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
|
4846 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
|
4847 rc = 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
|
4848 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
|
4849 rc = 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
|
4850 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4851 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
|
4852 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
|
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4856 * 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
|
4857 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4858 * 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
|
4859 * 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
|
4860 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4861 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
|
4862 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4863 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4866 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4867 * 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
|
4868 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4869 * 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
|
4870 * 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
|
4871 * 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
|
4872 * 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
|
4873 * 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
|
4874 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4875 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
|
4876 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4877 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4878 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4879 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4880 * 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
|
4881 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4882 * 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
|
4883 * 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
|
4884 * 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
|
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 void dw_container_set_column_width(HWND handle, int column, int width) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4887 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4888 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
|
4889 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4890 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
|
4891 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4892 /* 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
|
4893 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
|
4894 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4895 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
|
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 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
|
4898 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4899 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
|
4900 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4901 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4902 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4903 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4904 /* Internal version for both */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4905 void _dw_container_set_row_data(HWND handle, void *pointer, int row, int type, 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
|
4906 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4907 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
|
4908 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
|
4909 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4910 /* 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
|
4911 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
|
4912 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
|
4913 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4914 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
|
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 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
|
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 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
|
4919 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4920 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
|
4921 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4922 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4923 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
|
4924 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4925 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
|
4926 } |
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4929 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4930 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4931 * 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
|
4932 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4933 * 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
|
4934 * 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
|
4935 * 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
|
4936 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4937 void dw_container_set_row_title(void *pointer, int row, 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
|
4938 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4939 _dw_container_set_row_data(pointer, pointer, row, _DW_DATA_TYPE_STRING, (void *)title); |
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 * 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
|
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 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
|
4946 * 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
|
4947 * 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
|
4948 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4949 void dw_container_change_row_title(HWND handle, int row, 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
|
4950 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4951 _dw_container_set_row_data(handle, NULL, row, _DW_DATA_TYPE_STRING, (void *)title); |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4954 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4955 * 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
|
4956 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4957 * 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
|
4958 * 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
|
4959 * 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
|
4960 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4961 void dw_container_set_row_data(void *pointer, 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
|
4962 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4963 _dw_container_set_row_data(pointer, pointer, row, _DW_DATA_TYPE_POINTER, data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4964 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4965 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4966 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4967 * 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
|
4968 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4969 * 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
|
4970 * 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
|
4971 * 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
|
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 void dw_container_change_row_data(HWND handle, 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
|
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 _dw_container_set_row_data(handle, NULL, row, _DW_DATA_TYPE_POINTER, 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 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4979 * 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
|
4980 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4981 * 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
|
4982 * 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
|
4983 * 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
|
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 void dw_container_insert(HWND handle, void *pointer, int rowcount) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4986 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4987 /* 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
|
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 * 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
|
4992 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4993 * 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
|
4994 * 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
|
4995 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4996 void dw_container_delete(HWND handle, int rowcount) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4997 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4998 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
|
4999 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
|
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 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
|
5002 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5003 /* 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
|
5004 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
|
5005 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
|
5006 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5007 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
|
5008 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5009 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
|
5010 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
|
5011 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5012 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
|
5013 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5014 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
|
5015 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5016 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
|
5017 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
|
5018 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5019 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5020 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
|
5021 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
|
5022 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5023 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
|
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 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
|
5026 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5027 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5028 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5029 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5030 * 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
|
5031 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5032 * 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
|
5033 * 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
|
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 void dw_container_clear(HWND handle, int redraw) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5036 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5037 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
|
5038 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
|
5039 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5040 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
|
5041 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5042 /* 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
|
5043 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
|
5044 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
|
5045 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5046 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
|
5047 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5048 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
|
5049 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
|
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 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5054 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5055 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5056 * 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
|
5057 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5058 * 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
|
5059 * 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
|
5060 * 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
|
5061 * 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
|
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 void dw_container_scroll(HWND handle, int direction, long rows) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5064 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5065 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
|
5066 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5067 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
|
5068 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5069 /* 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
|
5070 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
|
5071 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5072 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
|
5073 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5074 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
|
5075 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5076 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
|
5077 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
|
5078 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
|
5079 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
|
5080 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
|
5081 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5082 /* Safety check */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5083 if(rowcount < 1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5084 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5085 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5086 change = ((gdouble)rows/(gdouble)rowcount) * (upper - lower); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5087 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5088 switch(direction) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5089 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5090 case DW_SCROLL_TOP: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5091 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5092 gtk_adjustment_set_value(adjust, lower); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5093 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5094 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5095 case DW_SCROLL_BOTTOM: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5096 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5097 gtk_adjustment_set_value(adjust, upper); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5098 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5099 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5100 case DW_SCROLL_UP: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5101 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5102 gdouble newpos = currpos - change; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5103 if(newpos < lower) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5104 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5105 newpos = lower; |
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 gtk_adjustment_set_value(adjust, newpos); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5108 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5109 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5110 case DW_SCROLL_DOWN: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5111 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5112 gdouble newpos = currpos + change; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5113 if(newpos > upper) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5114 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5115 newpos = upper; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5116 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5117 gtk_adjustment_set_value(adjust, newpos); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5118 break; |
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5121 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5122 } |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5125 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5126 * 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
|
5127 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5128 * 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
|
5129 * 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
|
5130 * 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
|
5131 * 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
|
5132 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5133 char *dw_container_query_start(HWND handle, 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
|
5134 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5135 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
|
5136 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
|
5137 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
|
5138 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
|
5139 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5140 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
|
5141 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5142 /* 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
|
5143 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
|
5144 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
|
5145 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5146 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
|
5147 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5148 /* 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
|
5149 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
|
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 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
|
5152 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
|
5153 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
|
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 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
|
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 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
|
5158 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5159 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
|
5160 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5161 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
|
5162 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5163 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
|
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 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
|
5166 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5167 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
|
5168 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
|
5169 } |
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5172 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
|
5173 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
|
5174 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5175 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5176 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
|
5177 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5178 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
|
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 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
|
5181 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
|
5182 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5183 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
|
5184 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5185 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
|
5186 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5187 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
|
5188 } |
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_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
|
5190 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5191 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5192 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5193 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5194 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
|
5195 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5196 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
|
5197 { |
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_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
|
5199 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
|
5200 } |
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5203 /* 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
|
5204 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
|
5205 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5206 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
|
5207 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
|
5208 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
|
5209 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5210 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
|
5211 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5212 |
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 * 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
|
5215 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5216 * 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
|
5217 * 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
|
5218 * 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
|
5219 * 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
|
5220 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5221 char *dw_container_query_next(HWND handle, 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
|
5222 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5223 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
|
5224 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
|
5225 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
|
5226 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
|
5227 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5228 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
|
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 /* 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
|
5231 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
|
5232 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
|
5233 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5234 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
|
5235 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5236 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
|
5237 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
|
5238 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5239 /* 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
|
5240 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
|
5241 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5242 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
|
5243 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
|
5244 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5245 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
|
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 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
|
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 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
|
5250 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5251 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
|
5252 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5253 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
|
5254 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5255 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
|
5256 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5257 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
|
5258 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5259 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
|
5260 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
|
5261 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5262 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5263 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5264 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
|
5265 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
|
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 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
|
5269 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5270 /* 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
|
5271 * 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
|
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 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
|
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 else |
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 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
|
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 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
|
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 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
|
5282 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
|
5283 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5284 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5285 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5286 /* 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
|
5287 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
|
5288 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5289 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
|
5290 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
|
5291 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
|
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 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
|
5294 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5295 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5296 int _find_iter(GtkListStore *store, GtkTreeIter *iter, void *data, int textcomp) |
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 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
|
5299 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
|
5300 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
|
5301 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5302 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
|
5303 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5304 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
|
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 /* 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
|
5307 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
|
5308 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
|
5309 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5310 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
|
5311 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
|
5312 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5313 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
|
5314 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
|
5315 } |
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 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5320 void _dw_container_cursor(HWND handle, void *data, int textcomp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5321 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5322 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
|
5323 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
|
5324 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5325 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
|
5326 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5327 /* 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
|
5328 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
|
5329 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
|
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 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
|
5332 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5333 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
|
5334 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5335 if(_find_iter(store, &iter, data, textcomp)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5336 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5337 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
|
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(path) |
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 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
|
5342 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
|
5343 } |
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 } |
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 * 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
|
5350 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5351 * 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
|
5352 * 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
|
5353 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5354 void dw_container_cursor(HWND handle, const char *text) |
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 _dw_container_cursor(handle, (void *)text, TRUE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5357 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5358 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5359 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5360 * 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
|
5361 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5362 * 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
|
5363 * 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
|
5364 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5365 void dw_container_cursor_by_data(HWND handle, 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
|
5366 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5367 _dw_container_cursor(handle, data, FALSE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5368 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5369 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5370 void _dw_container_delete_row(HWND handle, void *data, int textcomp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5371 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5372 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
|
5373 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
|
5374 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5375 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
|
5376 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5377 /* 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
|
5378 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
|
5379 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
|
5380 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5381 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
|
5382 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5383 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
|
5384 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
|
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 if(_find_iter(store, &iter, data, textcomp)) |
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 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
|
5389 rows--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5390 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5391 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5392 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
|
5393 } |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5396 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5397 * 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
|
5398 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5399 * 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
|
5400 * 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
|
5401 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5402 void dw_container_delete_row(HWND handle, const char *text) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5403 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5404 _dw_container_delete_row(handle, (void *)text, TRUE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5405 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5406 |
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 * 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
|
5409 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5410 * 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
|
5411 * 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
|
5412 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5413 void dw_container_delete_row_by_data(HWND handle, 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
|
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 _dw_container_delete_row(handle, data, FALSE); |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5418 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5419 * 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
|
5420 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5421 * 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
|
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 void dw_container_optimize(HWND 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 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
|
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 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
|
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 /* 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
|
5430 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
|
5431 gtk_tree_view_columns_autosize(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
|
5432 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5433 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5434 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5435 * 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
|
5436 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5437 * 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
|
5438 * 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
|
5439 * 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
|
5440 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5441 void dw_taskbar_insert(HWND handle, HICN icon, const char *bubbletext) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5442 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5443 /* 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
|
5444 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5447 * 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
|
5448 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5449 * 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
|
5450 * 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
|
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 void dw_taskbar_delete(HWND handle, 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
|
5453 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5454 /* 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
|
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 |
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 * 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
|
5459 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5460 * 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
|
5461 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5462 * 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
|
5463 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5464 HWND dw_render_new(unsigned long id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5465 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5466 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
|
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 tmp = gtk_drawing_area_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5469 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
|
5470 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
|
5471 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
|
5472 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
|
5473 dw_window_set_font(tmp, _DWDefaultFont); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5474 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
|
5475 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5476 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5477 /* Returns a GdkRGBA from a DW color */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5478 static GdkRGBA _internal_color(unsigned long value) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5479 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5480 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
|
5481 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5482 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
|
5483 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
|
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 (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
|
5486 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
|
5487 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5490 /* 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
|
5491 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5492 * 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
|
5493 * 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
|
5494 * 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
|
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 void dw_color_foreground_set(unsigned long value) |
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 GdkRGBA color = _internal_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
|
5499 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
|
5500 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5501 *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
|
5502 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5503 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5504 /* 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
|
5505 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5506 * 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
|
5507 * 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
|
5508 * 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
|
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 void dw_color_background_set(unsigned long value) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5511 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5512 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
|
5513 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5514 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
|
5515 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5516 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
|
5517 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5518 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
|
5519 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
|
5520 } |
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 else |
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 GdkRGBA color = _internal_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
|
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 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
|
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 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
|
5529 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
|
5530 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5531 *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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5534 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5535 /* 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
|
5536 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5537 * 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
|
5538 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5539 * 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
|
5540 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5541 unsigned long API dw_color_choose(unsigned long value) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5542 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5543 GtkColorChooser *cd; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5544 GdkRGBA color = _internal_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
|
5545 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
|
5546 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
|
5547 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5548 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
|
5549 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
|
5550 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
|
5551 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5552 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
|
5553 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
|
5554 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5555 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
|
5556 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5557 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
|
5558 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
|
5559 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5560 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
|
5561 gtk_window_destroy(GTK_WINDOW(cd)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5562 return retcolor; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5563 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5564 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5565 /* 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
|
5566 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5567 * 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
|
5568 * 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
|
5569 * 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
|
5570 * 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
|
5571 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5572 void dw_draw_point(HWND handle, HPIXMAP pixmap, int x, int y) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5573 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5574 cairo_t *cr = NULL; |
2279
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5575 GdkDrawContext *dc = 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
|
5576 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
|
5577 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5578 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
|
5579 { |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5580 if((cr = g_object_get_data(G_OBJECT(handle), "_dw_cr"))) |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5581 cached = TRUE; |
2279
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5582 else |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5583 { |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5584 GtkNative *native = gtk_widget_get_native(handle); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5585 GdkSurface *surface = gtk_native_get_surface(native); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5586 |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5587 if((dc = GDK_DRAW_CONTEXT(gdk_surface_create_cairo_context(surface)))) |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5588 { |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5589 cairo_region_t *region = cairo_region_create(); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5590 gdk_draw_context_begin_frame(dc, region); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5591 cr = gdk_cairo_context_cairo_create(GDK_CAIRO_CONTEXT(dc)); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5592 cairo_region_destroy(region); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5593 } |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5594 else |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5595 return; |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5596 } |
2264
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 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
|
5599 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
|
5600 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
|
5601 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5602 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
|
5603 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5604 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
|
5605 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
|
5606 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
|
5607 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
|
5608 /* 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
|
5609 * 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
|
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 if(dc) |
2279
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5612 gdk_draw_context_end_frame(dc); |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5613 else if(!cached) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5614 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
|
5615 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5616 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5617 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5618 /* 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
|
5619 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5620 * 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
|
5621 * 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
|
5622 * 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
|
5623 * 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
|
5624 * 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
|
5625 * 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
|
5626 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5627 void dw_draw_line(HWND handle, HPIXMAP pixmap, int x1, int y1, int x2, int y2) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5628 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5629 cairo_t *cr = NULL; |
2279
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5630 GdkDrawContext *dc = 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
|
5631 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
|
5632 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5633 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
|
5634 { |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5635 if((cr = g_object_get_data(G_OBJECT(handle), "_dw_cr"))) |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5636 cached = TRUE; |
2279
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5637 else |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5638 { |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5639 GtkNative *native = gtk_widget_get_native(handle); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5640 GdkSurface *surface = gtk_native_get_surface(native); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5641 |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5642 if((dc = GDK_DRAW_CONTEXT(gdk_surface_create_cairo_context(surface)))) |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5643 { |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5644 cairo_region_t *region = cairo_region_create(); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5645 gdk_draw_context_begin_frame(dc, region); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5646 cr = gdk_cairo_context_cairo_create(GDK_CAIRO_CONTEXT(dc)); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5647 cairo_region_destroy(region); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5648 } |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5649 else |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5650 return; |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5651 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5652 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5653 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
|
5654 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
|
5655 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
|
5656 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5657 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
|
5658 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5659 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
|
5660 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
|
5661 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
|
5662 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
|
5663 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
|
5664 /* 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
|
5665 * 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
|
5666 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5667 if(dc) |
2279
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5668 gdk_draw_context_end_frame(dc); |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5669 else if(!cached) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5670 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
|
5671 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5672 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5673 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5674 /* 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
|
5675 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5676 * 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
|
5677 * 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
|
5678 * 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
|
5679 * 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
|
5680 * 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
|
5681 * 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
|
5682 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5683 void dw_draw_polygon(HWND handle, HPIXMAP pixmap, int flags, int npoints, int *x, int *y) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5684 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5685 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
|
5686 int z; |
2279
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5687 GdkDrawContext *dc = 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
|
5688 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
|
5689 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5690 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
|
5691 { |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5692 if((cr = g_object_get_data(G_OBJECT(handle), "_dw_cr"))) |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5693 cached = TRUE; |
2279
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5694 else |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5695 { |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5696 GtkNative *native = gtk_widget_get_native(handle); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5697 GdkSurface *surface = gtk_native_get_surface(native); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5698 |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5699 if((dc = GDK_DRAW_CONTEXT(gdk_surface_create_cairo_context(surface)))) |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5700 { |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5701 cairo_region_t *region = cairo_region_create(); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5702 gdk_draw_context_begin_frame(dc, region); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5703 cr = gdk_cairo_context_cairo_create(GDK_CAIRO_CONTEXT(dc)); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5704 cairo_region_destroy(region); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5705 } |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5706 else |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5707 return; |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5708 } |
2264
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 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
|
5711 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
|
5712 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
|
5713 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5714 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
|
5715 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5716 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
|
5717 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
|
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 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
|
5720 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
|
5721 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
|
5722 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
|
5723 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5724 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
|
5725 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5726 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
|
5727 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
|
5728 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
|
5729 /* 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
|
5730 * 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
|
5731 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5732 if(dc) |
2279
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5733 gdk_draw_context_end_frame(dc); |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5734 else if(!cached) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5735 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
|
5736 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5737 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5738 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5739 /* 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
|
5740 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5741 * 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
|
5742 * 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
|
5743 * 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
|
5744 * 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
|
5745 * 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
|
5746 * 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
|
5747 * 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
|
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 void dw_draw_rect(HWND handle, HPIXMAP pixmap, int flags, int x, int y, int width, int height) |
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 cairo_t *cr = NULL; |
2279
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5752 GdkDrawContext *dc = 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
|
5753 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
|
5754 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5755 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
|
5756 { |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5757 if((cr = g_object_get_data(G_OBJECT(handle), "_dw_cr"))) |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5758 cached = TRUE; |
2279
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5759 else |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5760 { |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5761 GtkNative *native = gtk_widget_get_native(handle); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5762 GdkSurface *surface = gtk_native_get_surface(native); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5763 |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5764 if((dc = GDK_DRAW_CONTEXT(gdk_surface_create_cairo_context(surface)))) |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5765 { |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5766 cairo_region_t *region = cairo_region_create(); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5767 gdk_draw_context_begin_frame(dc, region); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5768 cr = gdk_cairo_context_cairo_create(GDK_CAIRO_CONTEXT(dc)); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5769 cairo_region_destroy(region); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5770 } |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5771 else |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5772 return; |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5773 } |
2264
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 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
|
5776 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
|
5777 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
|
5778 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5779 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
|
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 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
|
5782 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
|
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 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
|
5785 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
|
5786 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
|
5787 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
|
5788 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
|
5789 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
|
5790 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
|
5791 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
|
5792 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
|
5793 /* 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
|
5794 * 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
|
5795 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5796 if(dc) |
2279
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5797 gdk_draw_context_end_frame(dc); |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5798 else if(!cached) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5799 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
|
5800 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5801 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5802 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5803 /* 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
|
5804 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5805 * 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
|
5806 * 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
|
5807 * 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
|
5808 * 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
|
5809 * 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
|
5810 * 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
|
5811 * 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
|
5812 * 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
|
5813 * 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
|
5814 * 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
|
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 void API dw_draw_arc(HWND handle, HPIXMAP pixmap, int flags, int xorigin, int yorigin, int x1, int y1, int x2, int y2) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5817 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5818 cairo_t *cr = NULL; |
2279
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5819 GdkDrawContext *dc = 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
|
5820 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
|
5821 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5822 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
|
5823 { |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5824 if((cr = g_object_get_data(G_OBJECT(handle), "_dw_cr"))) |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5825 cached = TRUE; |
2279
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5826 else |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5827 { |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5828 GtkNative *native = gtk_widget_get_native(handle); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5829 GdkSurface *surface = gtk_native_get_surface(native); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5830 |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5831 if((dc = GDK_DRAW_CONTEXT(gdk_surface_create_cairo_context(surface)))) |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5832 { |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5833 cairo_region_t *region = cairo_region_create(); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5834 gdk_draw_context_begin_frame(dc, region); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5835 cr = gdk_cairo_context_cairo_create(GDK_CAIRO_CONTEXT(dc)); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5836 cairo_region_destroy(region); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5837 } |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5838 else |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5839 return; |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5840 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5841 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5842 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
|
5843 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
|
5844 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
|
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 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
|
5847 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
|
5848 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
|
5849 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5850 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
|
5851 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
|
5852 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5853 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
|
5854 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
|
5855 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
|
5856 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
|
5857 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
|
5858 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
|
5859 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5860 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5861 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
|
5862 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
|
5863 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
|
5864 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
|
5865 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
|
5866 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5867 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
|
5868 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5869 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
|
5870 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
|
5871 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
|
5872 /* 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
|
5873 * 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
|
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 if(dc) |
2279
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5876 gdk_draw_context_end_frame(dc); |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5877 else if(!cached) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5878 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
|
5879 } |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5882 /* 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
|
5883 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5884 * 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
|
5885 * 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
|
5886 * 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
|
5887 * 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
|
5888 * 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
|
5889 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5890 void dw_draw_text(HWND handle, HPIXMAP pixmap, int x, int y, const char *text) |
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 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
|
5893 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
|
5894 char *tmpname, *fontname = "monospace 10"; |
2279
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5895 GdkDrawContext *dc = 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
|
5896 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
|
5897 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5898 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
|
5899 return; |
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 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
|
5902 { |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5903 if((cr = g_object_get_data(G_OBJECT(handle), "_dw_cr"))) |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5904 cached = TRUE; |
2279
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5905 else |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5906 { |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5907 GtkNative *native = gtk_widget_get_native(handle); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5908 GdkSurface *surface = gtk_native_get_surface(native); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5909 |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5910 if((dc = GDK_DRAW_CONTEXT(gdk_surface_create_cairo_context(surface)))) |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5911 { |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5912 cairo_region_t *region = cairo_region_create(); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5913 gdk_draw_context_begin_frame(dc, region); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5914 cr = gdk_cairo_context_cairo_create(GDK_CAIRO_CONTEXT(dc)); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5915 cairo_region_destroy(region); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5916 } |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5917 else |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5918 return; |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5919 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5920 if((tmpname = (char *)g_object_get_data(G_OBJECT(handle), "_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
|
5921 fontname = tmpname; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5922 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5923 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
|
5924 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5925 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
|
5926 fontname = 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
|
5927 else if(pixmap->handle && (tmpname = (char *)g_object_get_data(G_OBJECT(pixmap->handle), "_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
|
5928 fontname = tmpname; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5929 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
|
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 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
|
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 font = pango_font_description_from_string(fontname); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5934 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
|
5935 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5936 PangoContext *context = pango_cairo_create_context(cr); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5937 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5938 if(context) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5939 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5940 PangoLayout *layout = pango_layout_new(context); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5941 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5942 if(layout) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5943 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5944 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
|
5945 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
|
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 pango_layout_set_font_description(layout, font); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5948 pango_layout_set_text(layout, text, strlen(text)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5949 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5950 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
|
5951 /* Create a background color attribute if required */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5952 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
|
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 PangoAttrList *list = pango_layout_get_attributes(layout); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5955 PangoAttribute *attr = pango_attr_background_new((guint16)(background->red * 65535), |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5956 (guint16)(background->green * 65535), |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5957 (guint16)(background->blue* 65535)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5958 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
|
5959 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5960 list = pango_attr_list_new(); |
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 pango_attr_list_change(list, attr); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5963 pango_layout_set_attributes(layout, list); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5964 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5965 /* Do the drawing */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5966 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
|
5967 pango_cairo_show_layout (cr, layout); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5968 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5969 g_object_unref(layout); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5970 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5971 g_object_unref(context); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5972 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5973 pango_font_description_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
|
5974 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5975 /* 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
|
5976 * 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
|
5977 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5978 if(dc) |
2279
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5979 gdk_draw_context_end_frame(dc); |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
5980 else if(!cached) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5981 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
|
5982 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5983 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5984 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5985 /* 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
|
5986 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5987 * 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
|
5988 * 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
|
5989 * 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
|
5990 * 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
|
5991 * 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
|
5992 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5993 void dw_font_text_extents_get(HWND handle, HPIXMAP pixmap, const char *text, int *width, int *height) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5994 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5995 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
|
5996 char *fontname = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5997 int free_fontname = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5998 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5999 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
|
6000 return; |
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 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
|
6003 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6004 fontname = (char *)g_object_get_data(G_OBJECT(handle), "_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
|
6005 if ( fontname == NULL ) |
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 fontname = dw_window_get_font(handle); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6008 free_fontname = 1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6009 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6010 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6011 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
|
6012 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6013 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
|
6014 fontname = 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
|
6015 else if(pixmap->handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6016 fontname = (char *)g_object_get_data(G_OBJECT(pixmap->handle), "_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
|
6017 } |
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 font = pango_font_description_from_string(fontname ? fontname : "monospace 10"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6020 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
|
6021 { |
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
|
6022 PangoContext *context = gtk_widget_get_pango_context(pixmap ? pixmap->handle : 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
|
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 if(context) |
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 PangoLayout *layout = pango_layout_new(context); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6027 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6028 if(layout) |
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 PangoRectangle rect; |
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 pango_layout_set_font_description(layout, font); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6033 pango_layout_set_text(layout, 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
|
6034 pango_layout_get_pixel_extents(layout, NULL, &rect); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6035 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6036 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
|
6037 *width = rect.width; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6038 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
|
6039 *height = rect.height; |
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 g_object_unref(layout); |
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 g_object_unref(context); |
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 pango_font_description_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
|
6046 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6047 if(free_fontname) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6048 free(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
|
6049 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6052 * 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
|
6053 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6054 * 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
|
6055 * 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
|
6056 * 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
|
6057 * 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
|
6058 * 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
|
6059 * 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
|
6060 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6061 * 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
|
6062 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6063 HPIXMAP dw_pixmap_new(HWND handle, unsigned long width, unsigned long height, int depth) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6064 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6065 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
|
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 if (!(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
|
6068 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
|
6069 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6070 if (!depth) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6071 depth = -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 pixmap->width = width; pixmap->height = height; |
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 pixmap->handle = handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6077 /* Depth needs to be divided by 3... but for the RGB colorspace... |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6078 * only 8 bits per sample is allowed, so to avoid issues just pass 8 for now. |
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 pixmap->pixbuf = gdk_pixbuf_new( GDK_COLORSPACE_RGB, FALSE, 8, 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
|
6081 pixmap->image = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 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
|
6082 return pixmap; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6083 } |
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 * 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
|
6087 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6088 * 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
|
6089 * 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
|
6090 * 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
|
6091 * (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
|
6092 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6093 * 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
|
6094 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6095 HPIXMAP dw_pixmap_new_from_file(HWND handle, 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
|
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 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
|
6098 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
|
6099 int found_ext = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6100 int i; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6101 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6102 if (!file || !(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
|
6103 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
|
6104 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6105 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
|
6106 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6107 /* check if we can read from this file (it exists and read permission) */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6108 if(access(file, 04) != 0) |
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 /* Try with various extentions */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6111 for ( i = 0; i < NUM_EXTS; i++ ) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6112 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6113 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
|
6114 strcat( file, image_exts[i] ); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6115 if ( access( file, 04 ) == 0 ) |
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 found_ext = 1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6118 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6119 } |
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 ( found_ext == 0 ) |
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 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
|
6124 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6127 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6128 pixmap->pixbuf = gdk_pixbuf_new_from_file(file, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6129 pixmap->image = cairo_image_surface_create_from_png(file); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6130 pixmap->width = gdk_pixbuf_get_width(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
|
6131 pixmap->height = gdk_pixbuf_get_height(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
|
6132 pixmap->handle = handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6133 return pixmap; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6134 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6137 * 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
|
6138 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6139 * 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
|
6140 * 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
|
6141 * 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
|
6142 * (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
|
6143 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6144 * 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
|
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 HPIXMAP dw_pixmap_new_from_data(HWND handle, 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
|
6147 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6148 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
|
6149 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
|
6150 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
|
6151 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6152 if(!data || !(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
|
6153 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
|
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6156 * 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
|
6157 * 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
|
6158 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6159 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
|
6160 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6161 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
|
6162 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
|
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 /* 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
|
6165 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
|
6166 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
|
6167 pixmap->pixbuf = gdk_pixbuf_new_from_file(template, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6168 pixmap->image = cairo_image_surface_create_from_png(template); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6169 pixmap->width = gdk_pixbuf_get_width(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
|
6170 pixmap->height = gdk_pixbuf_get_height(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
|
6171 /* remove our temporary file */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6172 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
|
6173 pixmap->handle = handle; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6174 return pixmap; |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6177 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6178 * 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
|
6179 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6180 * 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
|
6181 * 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
|
6182 * 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
|
6183 * 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
|
6184 * 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
|
6185 */ |
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 dw_pixmap_set_transparent_color(HPIXMAP pixmap, unsigned long color) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6187 { |
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 |
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 * 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
|
6192 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6193 * 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
|
6194 * 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
|
6195 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6196 * 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
|
6197 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6198 HPIXMAP dw_pixmap_grab(HWND handle, ULONG id) |
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 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
|
6201 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6202 if (!(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
|
6203 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
|
6204 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
6205 pixmap->pixbuf = gdk_pixbuf_copy(_dw_find_pixbuf((HICN)id, &pixmap->width, &pixmap->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
|
6206 return pixmap; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6207 } |
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 /* 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
|
6210 * 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
|
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 void dw_flush(void) |
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6215 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6216 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6217 * 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
|
6218 * 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
|
6219 * 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
|
6220 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6221 * 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
|
6222 * 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
|
6223 * 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
|
6224 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6225 * 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
|
6226 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6227 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
|
6228 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6229 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
|
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 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
|
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 pixmap->font = _convert_font(fontname); |
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 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
|
6236 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
|
6237 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
|
6238 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6239 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
|
6240 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6241 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6242 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6243 * 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
|
6244 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6245 * 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
|
6246 * 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
|
6247 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6248 void dw_pixmap_destroy(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
|
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 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
|
6251 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
|
6252 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
|
6253 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
|
6254 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
|
6255 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6256 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6257 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6258 * 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
|
6259 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6260 * 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
|
6261 * 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
|
6262 * 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
|
6263 * 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
|
6264 * 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
|
6265 * 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
|
6266 * 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
|
6267 * 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
|
6268 * 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
|
6269 * 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
|
6270 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6271 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
|
6272 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6273 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
|
6274 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6277 * 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
|
6278 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6279 * 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
|
6280 * 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
|
6281 * 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
|
6282 * 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
|
6283 * 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
|
6284 * 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
|
6285 * 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
|
6286 * 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
|
6287 * 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
|
6288 * 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
|
6289 * 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
|
6290 * 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
|
6291 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6292 * 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
|
6293 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6294 int API dw_pixmap_stretch_bitblt(HWND dest, HPIXMAP destp, int xdest, int ydest, int width, int height, HWND src, HPIXMAP srcp, int xsrc, int ysrc, int srcwidth, int srcheight) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6295 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6296 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
|
6297 int retval = DW_ERROR_GENERAL; |
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
|
6298 GdkDrawContext *dc = 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
|
6299 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
|
6300 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6301 if((!dest && (!destp || !destp->image)) || (!src && (!srcp || !srcp->image))) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6302 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
|
6303 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6304 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
|
6305 { |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6306 if((cr = g_object_get_data(G_OBJECT(dest), "_dw_cr"))) |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6307 cached = TRUE; |
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
|
6308 else |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6309 { |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6310 GtkNative *native = gtk_widget_get_native(dest); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6311 GdkSurface *surface = gtk_native_get_surface(native); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6312 |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6313 if((dc = GDK_DRAW_CONTEXT(gdk_surface_create_cairo_context(surface)))) |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6314 { |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6315 cairo_region_t *region = cairo_region_create(); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6316 gdk_draw_context_begin_frame(dc, region); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6317 cr = gdk_cairo_context_cairo_create(GDK_CAIRO_CONTEXT(dc)); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6318 cairo_region_destroy(region); |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6319 } |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6320 else |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6321 return retval; |
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6322 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6323 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6324 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
|
6325 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
|
6326 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6327 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
|
6328 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6329 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
|
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 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
|
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 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
|
6334 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
|
6335 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
|
6336 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6337 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6338 if(src) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6339 ; |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6340 #ifdef GTK3 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6341 gdk_cairo_set_source_window (cr, gtk_widget_get_window(src), (xdest + xsrc) / xscale, (ydest + ysrc) / yscale); |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6342 #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
|
6343 else if(srcp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6344 cairo_set_source_surface (cr, srcp->image, (xdest + xsrc) / xscale, (ydest + ysrc) / yscale); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6345 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6346 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
|
6347 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
|
6348 /* 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
|
6349 * 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
|
6350 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6351 if(dc) |
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
|
6352 gdk_draw_context_end_frame(dc); |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
6353 else 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
|
6354 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
|
6355 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
|
6356 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6357 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
|
6358 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6359 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6360 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6361 * 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
|
6362 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6363 * 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
|
6364 * 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
|
6365 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6366 void dw_beep(int freq, int dur) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6367 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6368 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
|
6369 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6370 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6371 void _my_strlwr(char *buf) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6372 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6373 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
|
6374 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6375 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
|
6376 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6377 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
|
6378 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
|
6379 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6380 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6381 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6382 /* 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
|
6383 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6384 * 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
|
6385 * 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
|
6386 * 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
|
6387 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6388 int dw_module_load(const char *name, HMOD *handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6389 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6390 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
|
6391 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
|
6392 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
|
6393 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6394 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6395 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
|
6396 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
|
6397 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6398 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
|
6399 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
|
6400 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6401 /* 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
|
6402 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
|
6403 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6404 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
|
6405 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
|
6406 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6407 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
|
6408 _my_strlwr(newname); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6409 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6410 *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
|
6411 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
|
6412 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6413 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
|
6414 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
|
6415 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
|
6416 *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
|
6417 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6418 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6419 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
|
6420 |
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 (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
|
6422 } |
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 /* 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
|
6425 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6426 * 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
|
6427 * 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
|
6428 * 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
|
6429 * 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
|
6430 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6431 int dw_module_symbol(HMOD handle, const char *name, 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
|
6432 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6433 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
|
6434 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
|
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 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
|
6437 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
|
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 *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
|
6440 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
|
6441 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6442 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6443 /* 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
|
6444 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6445 * 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
|
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 int dw_module_close(HMOD handle) |
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(handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6450 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
|
6451 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6454 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6455 * 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
|
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 HMTX dw_mutex_new(void) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6458 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6459 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
|
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 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
|
6462 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
|
6463 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6464 |
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 * 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
|
6467 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6468 * 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
|
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 void dw_mutex_close(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
|
6471 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6472 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
|
6473 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6474 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
|
6475 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
|
6476 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6477 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6478 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6479 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6480 * 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
|
6481 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6482 * 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
|
6483 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6484 void dw_mutex_lock(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
|
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 pthread_mutex_lock(mutex); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6487 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6488 |
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 * 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
|
6491 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6492 * 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
|
6493 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6494 * 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
|
6495 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6496 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
|
6497 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6498 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
|
6499 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
|
6500 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
|
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6504 * 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
|
6505 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6506 * 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
|
6507 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6508 void dw_mutex_unlock(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
|
6509 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6510 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
|
6511 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6512 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6513 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6514 * 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
|
6515 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6516 HEV dw_event_new(void) |
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 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
|
6519 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6520 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
|
6521 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
|
6522 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6523 /* 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
|
6524 * 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
|
6525 * 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
|
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 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
|
6528 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
|
6529 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
|
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 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
|
6532 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
|
6533 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
|
6534 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6535 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
|
6536 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6537 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6538 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6539 * 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
|
6540 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6541 * 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
|
6542 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6543 int dw_event_reset (HEV eve) |
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 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
|
6546 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
|
6547 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6548 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
|
6549 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
|
6550 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
|
6551 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
|
6552 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
|
6553 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
|
6554 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6555 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6556 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6557 * 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
|
6558 * 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
|
6559 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6560 * 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
|
6561 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6562 int dw_event_post (HEV eve) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6563 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6564 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
|
6565 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
|
6566 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6567 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
|
6568 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
|
6569 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
|
6570 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
|
6571 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
|
6572 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6573 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6574 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6575 * 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
|
6576 * 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
|
6577 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6578 * 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
|
6579 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6580 int dw_event_wait(HEV eve, unsigned long timeout) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6581 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6582 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
|
6583 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6584 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
|
6585 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
|
6586 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6587 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
|
6588 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6589 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
|
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 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
|
6592 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
|
6593 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6594 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6595 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
|
6596 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6597 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
|
6598 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
|
6599 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6600 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
|
6601 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
|
6602 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
|
6603 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
|
6604 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6605 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6606 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
|
6607 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6608 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
|
6609 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
|
6610 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
|
6611 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
|
6612 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
|
6613 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
|
6614 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6615 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6616 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6617 * 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
|
6618 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6619 * 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
|
6620 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6621 int dw_event_close(HEV *eve) |
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 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
|
6624 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
|
6625 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6626 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
|
6627 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
|
6628 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
|
6629 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
|
6630 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
|
6631 *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
|
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 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6636 struct _seminfo { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6637 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
|
6638 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
|
6639 }; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6640 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6641 static void _handle_sem(int *tmpsock) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6642 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6643 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
|
6644 struct _seminfo *array = (struct _seminfo *)malloc(sizeof(struct _seminfo)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6645 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
|
6646 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
|
6647 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
|
6648 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
|
6649 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6650 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
|
6651 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
|
6652 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6653 /* problems */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6654 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
|
6655 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6656 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
|
6657 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6658 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6659 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6660 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
|
6661 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
|
6662 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6663 /* 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
|
6664 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
|
6665 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6666 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
|
6667 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6668 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
|
6669 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
|
6670 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
|
6671 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6672 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
|
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 /* 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
|
6675 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
|
6676 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6677 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
|
6678 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
|
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 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
|
6681 } |
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 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
|
6684 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6685 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
|
6686 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6687 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6688 |
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(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
|
6690 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6691 struct _seminfo *newarray; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6692 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
|
6693 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6694 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
|
6695 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6696 /* Add new connections to the set */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6697 newarray = (struct _seminfo *)malloc(sizeof(struct _seminfo)*(connectcount+1)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6698 memcpy(newarray, array, sizeof(struct _seminfo)*(connectcount)); |
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 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
|
6701 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
|
6702 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6703 connectcount++; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6704 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6705 /* 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
|
6706 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
|
6707 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
|
6708 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6709 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6710 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6711 /* 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
|
6712 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
|
6713 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6714 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
|
6715 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6716 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
|
6717 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6718 struct _seminfo *newarray; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6719 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6720 /* Remove this connection from the set */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6721 newarray = (struct _seminfo *)malloc(sizeof(struct _seminfo)*(connectcount-1)); |
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(!z) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6723 memcpy(newarray, &array[1], sizeof(struct _seminfo)*(connectcount-1)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6724 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6725 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6726 memcpy(newarray, array, sizeof(struct _seminfo)*z); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6727 if(z!=(connectcount-1)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6728 memcpy(&newarray[z], &array[z+1], sizeof(struct _seminfo)*(z-connectcount-1)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6729 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6730 connectcount--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6731 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6732 /* 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
|
6733 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
|
6734 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
|
6735 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6736 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
|
6737 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6738 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
|
6739 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6740 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
|
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 /* Reset */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6743 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
|
6744 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6745 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6746 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
|
6747 /* Post */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6748 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6749 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
|
6750 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
|
6751 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6752 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
|
6753 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6754 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
|
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 /* 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
|
6757 * 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
|
6758 * continue. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6759 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6760 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
|
6761 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
|
6762 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6763 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6764 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6765 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
|
6766 /* Wait */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6767 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6768 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
|
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 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
|
6771 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6772 /* 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
|
6773 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
|
6774 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
|
6775 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6776 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6777 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
|
6778 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6779 /* 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
|
6780 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
|
6781 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6782 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6783 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6784 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6785 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6786 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6787 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6788 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6789 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6790 /* 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
|
6791 /* 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
|
6792 * 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
|
6793 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6794 * 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
|
6795 * 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
|
6796 * 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
|
6797 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6798 HEV dw_named_event_new(const char *name) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6799 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6800 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
|
6801 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
|
6802 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
|
6803 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6804 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
|
6805 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
|
6806 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6807 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
|
6808 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
|
6809 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
|
6810 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
|
6811 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
|
6812 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
|
6813 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
|
6814 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6815 /* 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
|
6816 * 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
|
6817 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6818 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
|
6819 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6820 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
|
6821 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
|
6822 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
|
6823 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
|
6824 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6825 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
|
6826 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6827 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
|
6828 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
|
6829 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
|
6830 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
|
6831 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
|
6832 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
|
6833 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
|
6834 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
|
6835 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6836 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6837 /* Create a thread to handle this 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
|
6838 pthread_create(&dwthread, NULL, (void *)_handle_sem, (void *)tmpsock); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6839 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
|
6840 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6841 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6842 /* 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
|
6843 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6844 * 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
|
6845 * 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
|
6846 * 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
|
6847 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6848 HEV dw_named_event_get(const char *name) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6849 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6850 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
|
6851 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
|
6852 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
|
6853 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
|
6854 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6855 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
|
6856 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
|
6857 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
|
6858 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
|
6859 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
|
6860 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
|
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 /* 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
|
6864 * 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
|
6865 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6866 * 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
|
6867 * 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
|
6868 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6869 int dw_named_event_reset(HEV eve) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6870 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6871 /* 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
|
6872 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
|
6873 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6874 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
|
6875 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
|
6876 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6877 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
|
6878 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
|
6879 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
|
6880 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6881 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6882 /* 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
|
6883 * 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
|
6884 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6885 * 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
|
6886 * 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
|
6887 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6888 int dw_named_event_post(HEV eve) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6889 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6890 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6891 /* 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
|
6892 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
|
6893 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6894 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
|
6895 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
|
6896 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6897 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
|
6898 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
|
6899 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
|
6900 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6901 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6902 /* 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
|
6903 * 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
|
6904 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6905 * 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
|
6906 * 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
|
6907 * 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
|
6908 * 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
|
6909 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6910 int dw_named_event_wait(HEV eve, unsigned long timeout) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6911 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6912 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
|
6913 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
|
6914 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
|
6915 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
|
6916 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6917 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
|
6918 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
|
6919 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6920 /* 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
|
6921 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
|
6922 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6923 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
|
6924 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
|
6925 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6926 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
|
6927 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6928 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6929 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
|
6930 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
|
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 /* 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
|
6933 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
|
6934 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
|
6935 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6936 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
|
6937 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
|
6938 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6939 /* 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
|
6940 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
|
6941 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
|
6942 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
|
6943 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6944 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
|
6945 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
|
6946 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
|
6947 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
|
6948 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6949 /* 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
|
6950 * 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
|
6951 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6952 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
|
6953 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
|
6954 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
|
6955 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6956 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6957 /* 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
|
6958 * 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
|
6959 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6960 * 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
|
6961 * 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
|
6962 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6963 int dw_named_event_close(HEV eve) |
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 /* Finally close the domain socket, |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6966 * cleanup will continue in _handle_sem. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6967 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6968 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
|
6969 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
|
6970 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6971 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6972 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6973 * 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
|
6974 * 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
|
6975 * 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
|
6976 * 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
|
6977 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6978 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
|
6979 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6980 GdkRGBA *foreground = 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
|
6981 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6982 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
|
6983 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
|
6984 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
|
6985 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6986 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6987 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6988 * 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
|
6989 * 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
|
6990 * 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
|
6991 * 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
|
6992 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6993 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
|
6994 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6995 GdkRGBA *foreground, *background; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6996 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6997 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
|
6998 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
|
6999 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
|
7000 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7003 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7004 * 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
|
7005 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7006 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
|
7007 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7008 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
|
7009 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
|
7010 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7011 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
|
7012 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7013 /* 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
|
7014 _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
|
7015 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7016 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
|
7017 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
|
7018 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7019 /* 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
|
7020 _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
|
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7024 * 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
|
7025 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7026 * 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
|
7027 * 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
|
7028 * 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
|
7029 * 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
|
7030 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7031 HSHM dw_named_memory_new(void **dest, int size, const char *name) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7032 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7033 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
|
7034 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
|
7035 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7036 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
|
7037 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
|
7038 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7039 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
|
7040 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7041 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
|
7042 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
|
7043 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7044 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7045 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
|
7046 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7047 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
|
7048 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
|
7049 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
|
7050 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7051 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7052 /* 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
|
7053 *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
|
7054 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7055 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
|
7056 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7057 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
|
7058 *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
|
7059 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
|
7060 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
|
7061 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7062 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7063 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
|
7064 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
|
7065 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
|
7066 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7067 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
|
7068 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7069 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7070 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7071 * 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
|
7072 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7073 * 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
|
7074 * 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
|
7075 * 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
|
7076 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7077 HSHM dw_named_memory_get(void **dest, int size, const char *name) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7078 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7079 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
|
7080 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
|
7081 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7082 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
|
7083 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
|
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 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
|
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 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
|
7088 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
|
7089 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7090 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7091 /* 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
|
7092 *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
|
7093 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7094 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
|
7095 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7096 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
|
7097 *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
|
7098 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
|
7099 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
|
7100 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7101 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7102 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
|
7103 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
|
7104 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
|
7105 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7106 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7109 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7110 * 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
|
7111 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7112 * 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
|
7113 * 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
|
7114 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7115 int dw_named_memory_free(HSHM handle, void *ptr) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7116 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7117 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
|
7118 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
|
7119 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7120 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
|
7121 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
|
7122 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7123 /* 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
|
7124 * 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
|
7125 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7126 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
|
7127 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
|
7128 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
|
7129 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7130 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
|
7131 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7132 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7133 * 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
|
7134 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7135 * 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
|
7136 * 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
|
7137 * 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
|
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 DWTID dw_thread_new(void *func, void *data, int stack) |
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 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
|
7142 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
|
7143 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
|
7144 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7145 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
|
7146 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
|
7147 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7148 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
|
7149 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
|
7150 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
|
7151 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
|
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 * 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
|
7156 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7157 void dw_thread_end(void) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7158 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7159 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
|
7160 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7161 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7162 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7163 * 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
|
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 DWTID dw_thread_id(void) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7166 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7167 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
|
7168 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7169 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7170 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7171 * 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
|
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 void dw_shutdown(void) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7174 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
7175 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
|
7176 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7177 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7178 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7179 * 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
|
7180 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7181 * 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
|
7182 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7183 void dw_exit(int exitcode) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7184 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
7185 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
|
7186 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
|
7187 } |
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 /* Internal function to get the recommended size of scrolled items */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7190 void _get_scrolled_size(GtkWidget *item, gint *thiswidth, gint *thisheight) |
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 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
|
7193 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7194 *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
|
7195 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7196 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
|
7197 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7198 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
|
7199 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7200 /* 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
|
7201 *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
|
7202 *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
|
7203 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7204 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
|
7205 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7206 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
|
7207 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
|
7208 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
|
7209 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
|
7210 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
|
7211 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
|
7212 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7213 *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
|
7214 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7215 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
|
7216 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7217 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
|
7218 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
|
7219 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
|
7220 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
|
7221 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7222 /* MLE */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7223 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
|
7224 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7225 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
|
7226 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
|
7227 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
|
7228 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
|
7229 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7230 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
|
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(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
|
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 *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
|
7235 *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
|
7236 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7237 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7238 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7239 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
|
7240 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7241 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
|
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 *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
|
7244 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
|
7245 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7246 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7247 *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
|
7248 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7249 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7250 *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
|
7251 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
|
7252 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
|
7253 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7254 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
|
7255 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7256 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
|
7257 *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
|
7258 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7259 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7260 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7261 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
|
7262 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
|
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 *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
|
7265 *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
|
7266 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7267 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7268 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
|
7269 *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
|
7270 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
|
7271 *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
|
7272 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
|
7273 *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
|
7274 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
|
7275 *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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7278 /* 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
|
7279 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
|
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 GtkWidget *tmp, *tmpitem, *image = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7282 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7283 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
|
7284 return; |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7287 * 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
|
7288 * 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
|
7289 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7290 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
|
7291 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7292 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
|
7293 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7294 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7295 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7296 /* 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
|
7297 * 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
|
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((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
|
7300 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
|
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 /* 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
|
7303 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
|
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 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
|
7306 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
|
7307 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
|
7308 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7309 /* Due to GTK3 minimum size limitations, if we are packing a widget |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7310 * with an image, we need to scale the image down to fit the packed size. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7311 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7312 else if((image = g_object_get_data(G_OBJECT(item), "_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
|
7313 { |
2282
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
7314 GdkPixbuf *pixbuf = g_object_get_data(G_OBJECT(image), "_dw_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
|
7315 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7316 if(pixbuf) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7317 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7318 int pwidth = gdk_pixbuf_get_width(pixbuf); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7319 int pheight = gdk_pixbuf_get_height(pixbuf); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7320 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7321 if(width == -1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7322 width = pwidth; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7323 if(height == -1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7324 height = pheight; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7325 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7326 if(pwidth > width || pheight > height) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7327 pixbuf = gdk_pixbuf_scale_simple(pixbuf, pwidth > width ? width : pwidth, pheight > height ? height : 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
|
7328 gtk_image_set_from_pixbuf(GTK_IMAGE(image), pixbuf); |
2282
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
7329 g_object_set_data(G_OBJECT(image), "_dw_pixbuf", pixbuf); |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
7330 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7331 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7332 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7333 /* 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
|
7334 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
|
7335 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7336 /* 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
|
7337 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
|
7338 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7339 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
|
7340 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
|
7341 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7342 /* 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
|
7343 * 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
|
7344 * 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
|
7345 * 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
|
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 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
|
7348 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7349 /* 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
|
7350 * 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
|
7351 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7352 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
|
7353 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7354 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7355 /* 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
|
7356 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
|
7357 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
|
7358 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
|
7359 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
|
7360 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7361 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
|
7362 /* 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
|
7363 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
|
7364 gtk_widget_set_valign(item, vsize ? GTK_ALIGN_FILL : GTK_ALIGN_START); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7365 gtk_widget_set_hexpand(item, hsize); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7366 gtk_widget_set_halign(item, hsize ? GTK_ALIGN_FILL : GTK_ALIGN_START); |
2276
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
7367 /* 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
|
7368 _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
|
7369 /* 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
|
7370 * 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
|
7371 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7372 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
|
7373 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7374 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
|
7375 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
|
7376 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7377 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7378 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7379 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
|
7380 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
|
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 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
|
7383 /* 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
|
7384 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
|
7385 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7386 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
|
7387 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7388 /* 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
|
7389 if((width < 1 && !hsize) || (height < 1 && !vsize)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7390 _get_scrolled_size(item, &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
|
7391 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7392 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
|
7393 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
|
7394 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
|
7395 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
|
7396 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
|
7397 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
|
7398 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
|
7399 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
|
7400 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7401 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7402 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7403 /* 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
|
7404 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
|
7405 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
|
7406 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
|
7407 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
|
7408 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7409 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
|
7410 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7411 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
|
7412 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7413 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
|
7414 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7415 if(groupstart) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7416 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
|
7417 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7418 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
|
7419 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7420 /* 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
|
7421 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
|
7422 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7423 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
|
7424 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
|
7425 } |
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7428 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7429 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7430 * 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
|
7431 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7432 * 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
|
7433 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7434 * 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
|
7435 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7436 int API dw_box_unpack(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7437 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7438 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
|
7439 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7440 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
|
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 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
|
7443 GtkWidget *eventbox = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_eventbox"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7444 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7445 /* Handle the invisible event box if it exists */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7446 if(eventbox && GTK_IS_WIDGET(eventbox)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7447 handle2 = eventbox; |
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 /* 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
|
7450 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
|
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 /* 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
|
7453 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
|
7454 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
|
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 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
|
7457 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7458 /* 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
|
7459 boxcount--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7460 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
|
7461 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7462 /* 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
|
7463 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
|
7464 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7465 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
|
7466 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
|
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 /* 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
|
7469 /* 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
|
7470 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
|
7471 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7472 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
|
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 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
|
7475 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7476 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
|
7477 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7478 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
|
7479 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7480 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7481 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7482 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7483 else |
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 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
|
7486 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7487 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
|
7488 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7489 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
|
7490 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7491 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
|
7492 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7493 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7494 } |
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 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
|
7497 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7498 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7499 return retcode; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7500 } |
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 * 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
|
7504 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7505 * 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
|
7506 * 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
|
7507 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7508 * 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
|
7509 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7510 HWND API dw_box_unpack_at_index(HWND box, int index) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7511 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7512 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
|
7513 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7514 /* 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
|
7515 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
|
7516 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7517 /* 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
|
7518 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
|
7519 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
|
7520 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
|
7521 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7522 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
|
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 /* 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
|
7525 boxcount--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7526 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
|
7527 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7528 /* 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
|
7529 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
|
7530 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
|
7531 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
|
7532 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7533 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
|
7534 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7535 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
|
7536 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
|
7537 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7538 /* 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
|
7539 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
|
7540 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
|
7541 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
|
7542 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7543 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
|
7544 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7547 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
|
7548 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7549 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7550 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7551 * 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
|
7552 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7553 * 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
|
7554 * 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
|
7555 * 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
|
7556 * 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
|
7557 * 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
|
7558 * 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
|
7559 * 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
|
7560 * 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
|
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 void API dw_box_pack_at_index(HWND box, HWND item, int index, int width, int height, int hsize, int vsize, int pad) |
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 _dw_box_pack(box, item, index, width, height, hsize, vsize, pad, "dw_box_pack_at_index()"); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7565 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7566 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7567 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7568 * 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
|
7569 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7570 * 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
|
7571 * 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
|
7572 * 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
|
7573 * 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
|
7574 * 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
|
7575 * 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
|
7576 * 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
|
7577 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7578 void API dw_box_pack_start(HWND box, HWND item, int width, int height, int hsize, int vsize, int pad) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7579 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7580 /* 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
|
7581 * 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
|
7582 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7583 _dw_box_pack(box, item, 65536, width, height, hsize, vsize, pad, "dw_box_pack_start()"); |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7586 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7587 * 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
|
7588 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7589 * 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
|
7590 * 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
|
7591 * 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
|
7592 * 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
|
7593 * 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
|
7594 * 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
|
7595 * 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
|
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 void API dw_box_pack_end(HWND box, HWND item, int width, int height, int hsize, int vsize, int pad) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7598 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7599 _dw_box_pack(box, item, 0, width, height, hsize, vsize, pad, "dw_box_pack_end()"); |
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 |
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 * 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
|
7604 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7605 * 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
|
7606 * 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
|
7607 * 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
|
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 void dw_window_set_size(HWND handle, unsigned long width, unsigned long height) |
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 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
|
7612 return; |
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 if(GTK_IS_WINDOW(handle)) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7615 gtk_window_set_default_size(GTK_WINDOW(handle), 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
|
7616 else |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7617 gtk_widget_set_size_request(GTK_WIDGET(handle), 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
|
7618 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7619 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7620 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7621 * 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
|
7622 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7623 * 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
|
7624 * 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
|
7625 * 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
|
7626 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7627 void API dw_window_get_preferred_size(HWND handle, int *width, int *height) |
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 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
|
7630 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7631 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
|
7632 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7633 _get_scrolled_size(handle, &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
|
7634 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7635 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
|
7636 *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
|
7637 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
|
7638 *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
|
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 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7641 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7642 if(width) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7643 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
|
7644 if(height) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7645 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
|
7646 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7647 } |
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 /* Internal version to simplify the code with multiple versions of GTK */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7650 int _dw_screen_width(void) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7651 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7652 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
|
7653 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7654 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
|
7655 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7656 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
|
7657 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
|
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 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
|
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 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
|
7662 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
|
7663 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7666 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
|
7667 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7670 * 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
|
7671 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7672 int dw_screen_width(void) |
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 return _dw_screen_width(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7675 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7676 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7677 /* Internal version to simplify the code with multiple versions of GTK */ |
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 _dw_screen_height(void) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7679 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7680 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
|
7681 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7682 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
|
7683 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7684 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
|
7685 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
|
7686 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7687 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
|
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 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
|
7690 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
|
7691 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7694 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
|
7695 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7698 * 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
|
7699 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7700 int dw_screen_height(void) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7701 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7702 return _dw_screen_height(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7703 } |
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 /* This should return the current color depth */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7706 unsigned long dw_color_depth_get(void) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7707 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7708 /* 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
|
7709 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
|
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 |
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 * 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
|
7714 * 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
|
7715 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7716 * 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
|
7717 * 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
|
7718 * 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
|
7719 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7720 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
|
7721 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7722 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
|
7723 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
|
7724 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7725 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7726 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7727 * 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
|
7728 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7729 * 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
|
7730 * 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
|
7731 * 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
|
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 void dw_window_set_pos(HWND handle, long x, long y) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7734 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7735 /* TODO: Figure out how to do this in GTK4 with no GdkWindow */ |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7736 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
|
7737 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7738 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7739 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7740 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7741 * 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
|
7742 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7743 * 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
|
7744 * 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
|
7745 * 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
|
7746 * 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
|
7747 * 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
|
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 void dw_window_set_pos_size(HWND handle, long x, long y, unsigned long width, unsigned long height) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7750 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7751 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
|
7752 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
|
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 |
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 * 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
|
7757 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7758 * 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
|
7759 * 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
|
7760 * 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
|
7761 * 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
|
7762 * 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
|
7763 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7764 void dw_window_get_pos_size(HWND handle, long *x, long *y, ULONG *width, ULONG *height) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7765 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7766 /* TODO: Figure out how to do this in GTK4 with no GdkWindow */ |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7767 if(!handle || !GTK_IS_WIDGET(handle)) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7768 return; |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7769 |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7770 if(width) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7771 *width = (ULONG)gtk_widget_get_width(GTK_WIDGET(handle)); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7772 if(height) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7773 *height = (ULONG)gtk_widget_get_height(GTK_WIDGET(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
|
7774 if(x) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7775 *x = 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
|
7776 if(y) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7777 *y = 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7780 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7781 * 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
|
7782 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7783 * 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
|
7784 * 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
|
7785 * 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
|
7786 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7787 void dw_window_set_style(HWND handle, unsigned long style, unsigned long mask) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7788 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7789 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
|
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 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
|
7792 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7793 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
|
7794 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
|
7795 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
|
7796 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7797 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
|
7798 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7799 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
|
7800 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
|
7801 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
|
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 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
|
7804 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7805 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
|
7806 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7807 /* TODO: Figure out how to do this in GTK4 with no Shadow or Relief */ |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7808 if(style & DW_BS_NOBORDER) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7809 ; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7810 else |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7811 ; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7812 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7813 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7814 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
|
7815 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7816 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
|
7817 /* horizontal... */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7818 if ( style & DW_DT_CENTER ) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7819 x = 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
|
7820 if ( style & DW_DT_RIGHT ) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7821 x = DW_RIGHT; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7822 if ( style & DW_DT_LEFT ) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7823 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
|
7824 /* vertical... */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7825 if ( style & DW_DT_VCENTER ) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7826 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
|
7827 if ( style & DW_DT_TOP ) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7828 y = DW_TOP; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7829 if ( style & DW_DT_BOTTOM ) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7830 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
|
7831 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
|
7832 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
|
7833 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
|
7834 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
|
7835 } |
2282
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
7836 if(G_IS_MENU_ITEM(handle2) && (mask & (DW_MIS_ENABLED | DW_MIS_DISABLED))) |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
7837 { |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
7838 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
|
7839 |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
7840 if((style & DW_MIS_ENABLED) || (style & DW_MIS_DISABLED)) |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
7841 { |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
7842 if(style & DW_MIS_ENABLED) |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
7843 g_simple_action_set_enabled(action, TRUE); |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
7844 else |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
7845 g_simple_action_set_enabled(action, FALSE); |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
7846 } |
b045bb67922d
GTK4: Implement resizing of images in the layout manager.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2281
diff
changeset
|
7847 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7848 /* TODO: Convert to GMenuModel */ |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7849 #if GTK3 |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7850 if(GTK_IS_CHECK_MENU_ITEM(handle2) && (mask & (DW_MIS_CHECKED | DW_MIS_UNCHECKED)) |
2264
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 int check = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7853 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7854 if ( style & DW_MIS_CHECKED ) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7855 check = 1; |
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 _dw_ignore_click = 1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7858 if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(handle2)) != check) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7859 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(handle2), check); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7860 _dw_ignore_click = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7861 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7862 #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
|
7863 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7866 * 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
|
7867 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7868 * 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
|
7869 * 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
|
7870 * 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
|
7871 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7872 unsigned long dw_notebook_page_new(HWND handle, unsigned long flags, int front) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7873 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7874 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
|
7875 GtkWidget **pagearray; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7876 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7877 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
|
7878 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7879 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
|
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 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
|
7882 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7883 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
|
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 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
|
7886 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
|
7887 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7888 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
|
7889 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
|
7890 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7891 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
|
7892 /* 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
|
7893 g_object_set_data(G_OBJECT(handle), text, GINT_TO_POINTER(num)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7894 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
|
7895 } |
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7898 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7899 /* Hopefully this won't happen. */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7900 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7903 /* Return the physical page id from the logical 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
|
7904 int _get_physical_page(HWND handle, unsigned long pageid) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7905 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7906 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
|
7907 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
|
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 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
|
7910 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7911 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
|
7912 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7913 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
|
7914 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7915 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
|
7916 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7920 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
|
7921 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7922 |
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 * 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
|
7925 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7926 * 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
|
7927 * 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
|
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 void dw_notebook_page_destroy(HWND handle, unsigned 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
|
7930 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7931 int realpage; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7932 GtkWidget **pagearray; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7933 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7934 realpage = _get_physical_page(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
|
7935 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
|
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 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
|
7938 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
|
7939 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
|
7940 } |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7943 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7944 * 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
|
7945 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7946 * 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
|
7947 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7948 unsigned long dw_notebook_page_get(HWND handle) |
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 int retval, phys; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7951 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7952 phys = gtk_notebook_get_current_page(GTK_NOTEBOOK(handle)); |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
7953 retval = _dw_get_logical_page(handle, phys); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7954 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
|
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 * 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
|
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: 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
|
7961 * 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
|
7962 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7963 void dw_notebook_page_set(HWND handle, unsigned 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
|
7964 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7965 int realpage; |
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 realpage = _get_physical_page(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
|
7968 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
|
7969 gtk_notebook_set_current_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
|
7970 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7971 |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7974 * 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
|
7975 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7976 * 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
|
7977 * 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
|
7978 * 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
|
7979 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7980 void dw_notebook_page_set_text(HWND handle, unsigned long pageid, const char *text) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7981 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7982 GtkWidget *child; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7983 int realpage; |
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 realpage = _get_physical_page(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
|
7986 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
|
7987 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7988 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
|
7989 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
|
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 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
|
7992 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
|
7993 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
|
7994 } |
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 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
|
7997 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7998 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
|
7999 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
|
8000 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
|
8001 } |
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 * 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
|
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 * 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
|
8008 * 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
|
8009 * 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
|
8010 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8011 void dw_notebook_page_set_status_text(HWND handle, unsigned long pageid, const char *text) |
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 /* 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
|
8014 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8017 * 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
|
8018 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8019 * 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
|
8020 * 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
|
8021 * 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
|
8022 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8023 void dw_notebook_pack(HWND handle, unsigned long pageid, HWND page) |
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 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
|
8026 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
|
8027 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
|
8028 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
|
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 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
|
8031 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
|
8032 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
|
8033 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
|
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 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
|
8036 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8037 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8038 /* The page already exists... so get it's current page */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8039 if(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
|
8040 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8041 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
|
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 child = 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
|
8044 if(child == 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
|
8045 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8046 oldlabel = gtk_notebook_get_tab_label(GTK_NOTEBOOK(handle), child); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8047 if(oldlabel) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8048 text = gtk_label_get_text(GTK_LABEL(oldlabel)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8049 gtk_notebook_remove_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
|
8050 realpage = z; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8051 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8052 } |
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8055 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8056 pagearray[pageid] = page; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8057 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8058 label = gtk_label_new(text ? text : ""); |
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(realpage != -1) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8061 gtk_notebook_insert_page(GTK_NOTEBOOK(handle), page, label, realpage); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8062 else if(num & ~(0xFF)) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8063 gtk_notebook_insert_page(GTK_NOTEBOOK(handle), page, label, 0); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8064 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8065 gtk_notebook_insert_page(GTK_NOTEBOOK(handle), page, label, 256); |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8068 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8069 * 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
|
8070 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8071 * 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
|
8072 * 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
|
8073 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8074 void dw_listbox_append(HWND handle, const char *text) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8075 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8076 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
|
8077 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8080 * 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
|
8081 * 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
|
8082 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8083 * 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
|
8084 * 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
|
8085 * 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
|
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 void dw_listbox_insert(HWND handle, const char *text, int pos) |
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 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
|
8090 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
|
8091 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8092 /* 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
|
8093 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
|
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 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
|
8096 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
|
8097 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
|
8098 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8099 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
|
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 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
|
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 /* 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
|
8104 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
|
8105 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
|
8106 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
|
8107 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
|
8108 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8109 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
|
8110 return; |
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 if(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
|
8113 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8114 /* Insert an entry 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
|
8115 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
|
8116 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8117 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8118 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8119 /* Insert at position */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8120 gtk_list_store_insert(store, &iter, pos); |
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 gtk_list_store_set (store, &iter, 0, 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
|
8123 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8124 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8127 * 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
|
8128 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8129 * 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
|
8130 * 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
|
8131 * 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
|
8132 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8133 void dw_listbox_list_append(HWND handle, char **text, int count) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8134 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8135 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
|
8136 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
|
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 /* 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
|
8139 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
|
8140 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8141 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
|
8142 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
|
8143 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
|
8144 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8145 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
|
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 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
|
8148 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
|
8149 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8150 /* 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
|
8151 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
|
8152 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
|
8153 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
|
8154 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
|
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 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
|
8157 return; |
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 /* Insert entries 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
|
8160 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
|
8161 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8162 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
|
8163 gtk_list_store_set (store, &iter, 0, text[z], -1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8164 } |
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 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8169 * 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
|
8170 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8171 * 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
|
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 void dw_listbox_clear(HWND handle) |
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 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
|
8176 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
|
8177 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8178 /* 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
|
8179 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
|
8180 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8181 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
|
8182 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
|
8183 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
|
8184 } |
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(handle2) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8186 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8187 /* 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
|
8188 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
|
8189 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
|
8190 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
|
8191 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
|
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 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
|
8194 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8195 /* Clear 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
|
8196 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8199 |
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 * 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
|
8202 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8203 * 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
|
8204 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8205 int dw_listbox_count(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8206 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8207 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
|
8208 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
|
8209 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
|
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 /* 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
|
8212 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
|
8213 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8214 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
|
8215 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
|
8216 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
|
8217 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8218 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
|
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 /* 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
|
8221 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
|
8222 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
|
8223 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
|
8224 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
|
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 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
|
8227 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8228 /* 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
|
8229 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
|
8230 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8231 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8232 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
|
8233 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8234 |
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 * 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
|
8237 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8238 * 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
|
8239 * 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
|
8240 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8241 void dw_listbox_set_top(HWND handle, int top) |
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 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
|
8244 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8245 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
|
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 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
|
8248 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
|
8249 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
|
8250 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8251 /* 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
|
8252 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
|
8253 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8254 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
|
8255 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
|
8256 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8257 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
|
8258 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8259 /* 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
|
8260 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
|
8261 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
|
8262 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
|
8263 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
|
8264 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
|
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 /* Safety check */ |
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(rowcount < 2) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8268 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8269 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8270 /* Verify 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
|
8271 rowcount--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8272 if(top > rowcount) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8273 top = rowcount; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8274 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8275 change = ((gdouble)top/(gdouble)rowcount) * (upper - lower); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8276 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8277 gtk_adjustment_set_value(adjust, change + lower); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8278 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8279 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8280 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8281 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8282 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8283 * 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
|
8284 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8285 * 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
|
8286 * 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
|
8287 * 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
|
8288 * 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
|
8289 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8290 void dw_listbox_get_text(HWND handle, unsigned int index, char *buffer, unsigned 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
|
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 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
|
8293 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
|
8294 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8295 /* 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
|
8296 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
|
8297 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8298 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
|
8299 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
|
8300 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
|
8301 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8302 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
|
8303 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8304 /* 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
|
8305 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
|
8306 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
|
8307 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
|
8308 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
|
8309 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8310 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
|
8311 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8312 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
|
8313 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8314 /* 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
|
8315 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
|
8316 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8317 /* 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
|
8318 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
|
8319 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
|
8320 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
|
8321 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8322 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
|
8323 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
|
8324 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8325 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8326 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8327 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8328 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8329 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
|
8330 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8331 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8332 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8333 * 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
|
8334 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8335 * 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
|
8336 * 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
|
8337 * 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
|
8338 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8339 void dw_listbox_set_text(HWND handle, unsigned int index, const char *buffer) |
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 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
|
8342 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
|
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 /* 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
|
8345 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
|
8346 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8347 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
|
8348 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
|
8349 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
|
8350 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8351 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
|
8352 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8353 /* 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
|
8354 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
|
8355 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
|
8356 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
|
8357 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
|
8358 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8359 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
|
8360 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8361 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
|
8362 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8363 /* 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
|
8364 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
|
8365 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8366 /* 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
|
8367 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
|
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 } |
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8372 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8373 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8374 * 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
|
8375 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8376 * 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
|
8377 * 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
|
8378 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8379 int dw_listbox_selected_multi(HWND handle, int where) |
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 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
|
8382 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
|
8383 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
|
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 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
|
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 /* 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
|
8388 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
|
8389 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
|
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 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
|
8392 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8393 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
|
8394 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
|
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 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
|
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 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
|
8399 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
|
8400 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8401 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
|
8402 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8403 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
|
8404 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8405 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
|
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 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
|
8408 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8409 } |
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 counter++; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8412 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
|
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 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
|
8416 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
|
8417 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8418 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8419 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
|
8420 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8421 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8422 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8423 * 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
|
8424 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8425 * 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
|
8426 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8427 int dw_listbox_selected(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8428 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8429 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
|
8430 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
|
8431 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
|
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 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
|
8434 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
|
8435 { |
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 *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
|
8437 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
|
8438 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
|
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 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
|
8441 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8442 /* 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
|
8443 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
|
8444 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
|
8445 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
|
8446 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
|
8447 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8448 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
|
8449 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8450 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
|
8451 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8452 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
|
8453 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
|
8454 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
|
8455 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8456 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
|
8457 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
|
8458 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8459 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
|
8460 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8461 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
|
8462 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8463 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8464 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
|
8465 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8468 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8469 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8470 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
|
8471 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
|
8472 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8473 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
|
8474 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8475 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
|
8476 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
|
8477 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8478 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
|
8479 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8480 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
|
8481 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8482 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
|
8483 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8484 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8489 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8490 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
|
8491 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8492 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8493 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8494 * 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
|
8495 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8496 * 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
|
8497 * 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
|
8498 * 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
|
8499 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8500 void dw_listbox_select(HWND handle, int index, 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
|
8501 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8502 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
|
8503 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
|
8504 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8505 /* 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
|
8506 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
|
8507 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8508 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
|
8509 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
|
8510 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
|
8511 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8512 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
|
8513 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8514 /* 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
|
8515 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
|
8516 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
|
8517 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
|
8518 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
|
8519 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8520 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
|
8521 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8522 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
|
8523 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8524 /* 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
|
8525 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
|
8526 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8527 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
|
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 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
|
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 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8532 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8533 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
|
8534 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
|
8535 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8536 /* 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
|
8537 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
|
8538 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8539 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8540 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8541 /* 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
|
8542 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
|
8543 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8544 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8545 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8546 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8547 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8548 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8549 |
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 * 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
|
8552 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8553 * 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
|
8554 * 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
|
8555 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8556 void dw_listbox_delete(HWND handle, int index) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8557 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8558 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
|
8559 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
|
8560 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8561 /* 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
|
8562 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
|
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 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
|
8565 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
|
8566 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
|
8567 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8568 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
|
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 /* 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
|
8571 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
|
8572 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
|
8573 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
|
8574 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
|
8575 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8576 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
|
8577 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8578 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
|
8579 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8580 /* 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
|
8581 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
|
8582 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8583 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8586 } |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8589 /* 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
|
8590 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
|
8591 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8592 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
|
8593 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
|
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(percent) |
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 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
|
8598 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8599 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
|
8600 |
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
|
8601 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
|
8602 { |
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
|
8603 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
|
8604 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
|
8605 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
|
8606 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
|
8607 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
|
8608 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
|
8609 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8610 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
|
8611 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
|
8612 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8613 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
|
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 /* 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
|
8617 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
|
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 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
|
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 /* 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
|
8622 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
|
8623 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
|
8624 |
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
|
8625 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
|
8626 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8629 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8630 * 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
|
8631 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8632 * 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
|
8633 * 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
|
8634 * 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
|
8635 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8636 * 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
|
8637 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8638 HWND dw_splitbar_new(int type, HWND topleft, HWND bottomright, unsigned long id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8639 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8640 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
|
8641 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
|
8642 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8643 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
|
8644 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
|
8645 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
|
8646 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
|
8647 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
|
8648 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
|
8649 gtk_paned_set_shrink_end_child(GTK_PANED(tmp), 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
|
8650 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
|
8651 *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
|
8652 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
|
8653 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
|
8654 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
|
8655 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
|
8656 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8657 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8658 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8659 * 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
|
8660 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8661 * 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
|
8662 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8663 void dw_splitbar_set(HWND handle, float percent) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8664 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8665 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
|
8666 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
|
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 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
|
8669 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
|
8670 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8671 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
|
8672 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8673 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
|
8674 *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
|
8675 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8676 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
|
8677 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8678 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
|
8679 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8680 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
|
8681 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8682 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8683 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8684 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8685 * 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
|
8686 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8687 * 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
|
8688 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8689 float dw_splitbar_get(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8690 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8691 float *percent = (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
|
8692 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8693 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
|
8694 return *percent; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8695 return 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
|
8696 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8697 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8698 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8699 * 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
|
8700 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8701 * 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
|
8702 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8703 * 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
|
8704 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8705 HWND dw_calendar_new(unsigned long id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8706 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8707 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
|
8708 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
|
8709 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
|
8710 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8711 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
|
8712 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
|
8713 /* select today */ |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8714 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
|
8715 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
|
8716 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
|
8717 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
|
8718 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
|
8719 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
|
8720 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8721 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8722 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8723 * 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
|
8724 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8725 * 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
|
8726 * year... |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8727 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8728 void dw_calendar_set_date(HWND handle, unsigned int year, unsigned int month, unsigned int day) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8729 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8730 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
|
8731 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8732 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
|
8733 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
|
8734 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
|
8735 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
|
8736 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
|
8737 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8738 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8739 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8740 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8741 * 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
|
8742 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8743 * 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
|
8744 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8745 void dw_calendar_get_date(HWND handle, unsigned int *year, unsigned int *month, unsigned int *day) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8746 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8747 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
|
8748 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8749 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
|
8750 if(year) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8751 *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
|
8752 if(month) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8753 *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
|
8754 if(day) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8755 *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
|
8756 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8757 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8758 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8759 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8760 * 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
|
8761 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8762 * 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
|
8763 * Remarks: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8764 * 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
|
8765 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8766 void API dw_window_set_focus(HWND handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8767 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8768 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
|
8769 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8770 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8771 gtk_widget_grab_focus(handle); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8772 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8773 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8774 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8775 * 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
|
8776 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8777 * 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
|
8778 * 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
|
8779 * Remarks: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8780 * 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
|
8781 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8782 void dw_window_default(HWND window, HWND defaultitem) |
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 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
|
8785 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8786 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8787 g_object_set_data(G_OBJECT(window), "_dw_defaultitem", (gpointer)defaultitem); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8788 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8789 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8790 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8791 * 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
|
8792 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8793 * 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
|
8794 * 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
|
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 void dw_window_click_default(HWND window, HWND next) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8797 { |
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
|
8798 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
|
8799 { |
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
|
8800 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
|
8801 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
|
8802 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
|
8803 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8804 } |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8807 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8808 * 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
|
8809 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8810 * 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
|
8811 * 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
|
8812 * 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
|
8813 * 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
|
8814 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8815 * 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
|
8816 * 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
|
8817 * Remarks: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8818 * 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
|
8819 * 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
|
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 HWND dw_notification_new(const char *title, const char *imagepath, const char *description, ...) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8822 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8823 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
|
8824 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8825 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
|
8826 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8827 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
|
8828 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8829 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
|
8830 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
|
8831 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8832 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
|
8833 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
|
8834 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
|
8835 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8836 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
|
8837 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8838 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
|
8839 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8840 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
|
8841 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
|
8842 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8843 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
|
8844 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8845 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
|
8846 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8847 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
|
8848 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
|
8849 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8850 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8851 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
|
8852 (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
|
8853 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8854 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
|
8855 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8856 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8857 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8858 * 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
|
8859 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8860 * 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
|
8861 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8862 * 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
|
8863 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8864 int dw_notification_send(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
|
8865 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8866 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
|
8867 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8868 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
|
8869 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8870 /* 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
|
8871 * 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
|
8872 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8873 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
|
8874 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
|
8875 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
|
8876 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8877 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
|
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8881 * 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
|
8882 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8883 * 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
|
8884 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8885 void dw_environment_query(DWEnv *env) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8886 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8887 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
|
8888 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
|
8889 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8890 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
|
8891 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
|
8892 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
|
8893 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
|
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 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
|
8896 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
|
8897 #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
|
8898 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
|
8899 #else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8900 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
|
8901 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8902 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
|
8903 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
|
8904 #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
|
8905 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
|
8906 #else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8907 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
|
8908 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8909 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8910 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
|
8911 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8912 *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
|
8913 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
|
8914 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
|
8915 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8916 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8917 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
|
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8921 * 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
|
8922 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8923 * 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
|
8924 * 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
|
8925 * 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
|
8926 * 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
|
8927 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8928 * 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
|
8929 * 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
|
8930 * |
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 char *dw_file_browse(const char *title, const char *defpath, const char *ext, int flags) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8933 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8934 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
|
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 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
|
8937 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
|
8938 GtkFileFilter *filter2 = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8939 gchar *button; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8940 char *filename = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8941 char buf[1000]; |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8942 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
|
8943 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8944 switch (flags ) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8945 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8946 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
|
8947 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
|
8948 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
|
8949 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8950 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
|
8951 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
|
8952 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
|
8953 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8954 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
|
8955 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
|
8956 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
|
8957 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8958 default: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8959 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
|
8960 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
|
8961 break; |
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 filew = gtk_file_chooser_dialog_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
|
8965 NULL, |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8966 action, |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8967 _("_Cancel"), GTK_RESPONSE_CANCEL, |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8968 button, GTK_RESPONSE_ACCEPT, |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8969 NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8970 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8971 if(ext) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8972 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8973 filter1 = gtk_file_filter_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8974 sprintf( buf, "*.%s", ext ); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8975 gtk_file_filter_add_pattern( filter1, (gchar *)buf ); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8976 sprintf( buf, "\"%s\" files", ext ); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8977 gtk_file_filter_set_name( filter1, (gchar *)buf ); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8978 filter2 = gtk_file_filter_new(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8979 gtk_file_filter_add_pattern( filter2, (gchar *)"*" ); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8980 gtk_file_filter_set_name( filter2, (gchar *)"All Files" ); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8981 gtk_file_chooser_add_filter( GTK_FILE_CHOOSER( filew ), filter1 ); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8982 gtk_file_chooser_add_filter( GTK_FILE_CHOOSER( filew ), filter2 ); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8983 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8984 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8985 if(defpath) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8986 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8987 GFile *path = g_file_new_for_path(defpath); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8988 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8989 /* See if the path exists */ |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8990 if(path) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8991 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8992 /* If the path is a directory... set the current folder */ |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8993 gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(filew), path, NULL); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8994 gtk_file_chooser_set_file(GTK_FILE_CHOOSER(filew), path, NULL); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8995 |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8996 g_object_unref(G_OBJECT(path)); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8997 } |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8998 } |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8999 |
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
|
9000 gtk_widget_show(GTK_WIDGET(filew)); |
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
|
9001 g_signal_connect(G_OBJECT(filew), "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
|
9002 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9003 if(DW_POINTER_TO_INT(dw_dialog_wait(tmp)) == GTK_RESPONSE_ACCEPT) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9004 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9005 GFile *file = gtk_file_chooser_get_file(GTK_FILE_CHOOSER(filew)); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9006 filename = g_file_get_path(file); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9007 g_object_unref(G_OBJECT(file)); |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9008 } |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9009 |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9010 if(GTK_IS_WINDOW(filew)) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9011 gtk_window_destroy(GTK_WINDOW(filew)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9012 return filename; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9013 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9014 |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9017 * 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
|
9018 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9019 * 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
|
9020 * 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
|
9021 * 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
|
9022 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9023 * -1 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
|
9024 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9025 int dw_exec(const char *program, int type, char **params) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9026 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9027 int ret = -1; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9028 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9029 if((ret = fork()) == 0) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9030 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9031 int i; |
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 for (i = 3; i < 256; i++) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9034 close(i); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9035 setsid(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9036 if(type == 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
|
9037 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9038 execvp(program, params); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9039 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9040 else if(type == DW_EXEC_CON) |
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 char **tmpargs; |
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 if(!params) |
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 tmpargs = malloc(sizeof(char *)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9047 tmpargs[0] = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9048 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9049 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9050 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9051 int z = 0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9052 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9053 while(params[z]) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9054 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9055 z++; |
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 tmpargs = malloc(sizeof(char *)*(z+3)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9058 z=0; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9059 tmpargs[0] = "xterm"; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9060 tmpargs[1] = "-e"; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9061 while(params[z]) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9062 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9063 tmpargs[z+2] = params[z]; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9064 z++; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9065 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9066 tmpargs[z+2] = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9067 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9068 execvp("xterm", tmpargs); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9069 free(tmpargs); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9070 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9071 /* If we got here exec failed */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9072 _exit(-1); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9073 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9074 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
|
9075 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9076 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9077 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9078 * 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
|
9079 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9080 * 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
|
9081 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9082 int dw_browse(const char *url) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9083 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9084 /* 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
|
9085 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
|
9086 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
|
9087 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9088 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9089 #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
|
9090 /* 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
|
9091 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
|
9092 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9093 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
|
9094 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9095 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
|
9096 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
|
9097 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
|
9098 #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
|
9099 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
|
9100 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
|
9101 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
|
9102 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9103 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9104 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
|
9105 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9106 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9107 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9108 * 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
|
9109 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9110 * 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
|
9111 * 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
|
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 void dw_html_action(HWND handle, int action) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9114 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9115 #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
|
9116 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
|
9117 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9118 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
|
9119 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9120 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
|
9121 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9122 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
|
9123 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
|
9124 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9125 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
|
9126 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
|
9127 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9128 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
|
9129 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
|
9130 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9131 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
|
9132 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
|
9133 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9134 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
|
9135 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
|
9136 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9137 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
|
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 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
|
9140 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
|
9141 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
|
9142 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9143 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9144 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9145 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9146 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9147 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9148 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9149 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9150 * 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
|
9151 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9152 * 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
|
9153 * 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
|
9154 * 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
|
9155 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9156 * 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
|
9157 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9158 int dw_html_raw(HWND handle, const char *string) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9159 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9160 #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
|
9161 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
|
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 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
|
9164 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9165 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
|
9166 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
|
9167 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9168 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
|
9169 #else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9170 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
|
9171 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9172 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9173 |
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 * 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
|
9176 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9177 * 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
|
9178 * 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
|
9179 * 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
|
9180 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9181 * 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
|
9182 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9183 int dw_html_url(HWND handle, const char *url) |
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 #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
|
9186 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
|
9187 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9188 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
|
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 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
|
9191 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
|
9192 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9193 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
|
9194 #else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9195 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
|
9196 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9197 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9198 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9199 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9200 * 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
|
9201 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9202 * 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
|
9203 * 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
|
9204 * 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
|
9205 * 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
|
9206 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9207 * 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
|
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 int dw_html_javascript_run(HWND handle, const char *script, void *scriptdata) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9210 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9211 #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
|
9212 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
|
9213 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9214 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
|
9215 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
|
9216 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
|
9217 #else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9218 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
|
9219 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9220 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9221 |
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 * 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
|
9224 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9225 * 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
|
9226 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9227 HWND dw_html_new(unsigned long id) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9228 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9229 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
|
9230 #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
|
9231 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
|
9232 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
|
9233 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9234 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
|
9235 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
|
9236 /* 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
|
9237 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
|
9238 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
|
9239 widget = (GtkWidget *)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
|
9240 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
|
9241 #else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9242 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
|
9243 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9244 return widget; |
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 |
2274
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9247 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
|
9248 { |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9249 DWDialog *tmp = (DWDialog *)data; |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9250 |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9251 if(tmp && tmp->data) |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9252 { |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9253 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
|
9254 |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9255 dw_dialog_dismiss(tmp, text ? strdup(text) : text); |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9256 } |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9257 } |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9258 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9259 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9260 * 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
|
9261 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9262 * None. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9263 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9264 * 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
|
9265 * 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
|
9266 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9267 char *dw_clipboard_get_text() |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9268 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9269 GdkDisplay *display = gdk_display_get_default(); |
2274
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9270 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
|
9271 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
|
9272 |
2274
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9273 if((clipboard = gdk_display_get_clipboard(display))) |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9274 { |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9275 DWDialog *tmp = dw_dialog_new(DW_POINTER(clipboard)); |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9276 |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9277 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
|
9278 |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9279 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
|
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 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
|
9282 } |
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 * 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
|
9286 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9287 * Text. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9288 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9289 void dw_clipboard_set_text(const char *str, 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
|
9290 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9291 GdkDisplay *display = gdk_display_get_default(); |
2274
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9292 GdkClipboard *clipboard; |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9293 |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9294 if((clipboard = gdk_display_get_clipboard(display))) |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9295 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9298 /* 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
|
9299 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
|
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 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
|
9302 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
|
9303 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
|
9304 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
|
9305 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
|
9306 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9307 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
|
9308 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9309 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
|
9310 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
|
9311 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
|
9312 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
|
9313 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
|
9314 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
|
9315 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
|
9316 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
|
9317 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9318 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9321 * 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
|
9322 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9323 * 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
|
9324 * 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
|
9325 * 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
|
9326 * 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
|
9327 * 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
|
9328 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9329 * 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
|
9330 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9331 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
|
9332 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9333 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
|
9334 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9335 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
|
9336 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
|
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 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
|
9339 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9340 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
|
9341 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
|
9342 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
|
9343 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
|
9344 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
|
9345 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9346 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
|
9347 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9348 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9349 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9350 * 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
|
9351 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9352 * 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
|
9353 * 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
|
9354 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9355 * 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
|
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 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
|
9358 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9359 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
|
9360 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
|
9361 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9362 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
|
9363 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
|
9364 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9365 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9366 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9367 * 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
|
9368 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9369 * 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
|
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 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
|
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 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
|
9374 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9375 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
|
9376 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9377 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9378 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9379 * 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
|
9380 * 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
|
9381 * 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
|
9382 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9383 char *dw_user_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
|
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 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
|
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 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
|
9388 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9389 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
|
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 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
|
9392 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
|
9393 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9394 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
|
9395 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9396 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
|
9397 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9398 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9399 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9400 * 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
|
9401 * 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
|
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 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
|
9404 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9405 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
|
9406 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9407 |
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 * 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
|
9410 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9411 * 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
|
9412 * 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
|
9413 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9414 * 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
|
9415 * 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
|
9416 * 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
|
9417 * Remarks: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9418 * 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
|
9419 * 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
|
9420 * 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
|
9421 * 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
|
9422 * 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
|
9423 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9424 int dw_app_id_set(const char *appid, const char *appname) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9425 { |
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(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
|
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 strncpy(_dw_app_id, appid, _DW_APP_ID_SIZE); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9429 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
|
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 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
|
9432 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9433 |
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 * 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
|
9436 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9437 * 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
|
9438 * 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
|
9439 * 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
|
9440 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9441 void dw_window_function(HWND handle, void *function, 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
|
9442 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9443 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
|
9444 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9445 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
|
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 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
|
9448 windowfunc(data); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9449 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9452 * 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
|
9453 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9454 * 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
|
9455 * 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
|
9456 * 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
|
9457 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9458 void dw_window_set_data(HWND window, const char *dataname, 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
|
9459 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9460 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
|
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(!window) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9463 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9464 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9465 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
|
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 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
|
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 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
|
9470 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
|
9471 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9474 * 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
|
9475 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9476 * 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
|
9477 * 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
|
9478 * 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
|
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 void *dw_window_get_data(HWND window, const char *dataname) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9481 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9482 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
|
9483 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
|
9484 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9485 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
|
9486 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
|
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 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
|
9489 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9490 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
|
9491 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9492 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
|
9493 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
|
9494 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
|
9495 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9496 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9497 /* 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
|
9498 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
|
9499 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9500 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
|
9501 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
|
9502 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
|
9503 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
|
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 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
|
9506 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9507 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
|
9508 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
|
9509 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
|
9510 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
|
9511 } |
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(!sigfunc) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9513 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9514 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
|
9515 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
|
9516 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
|
9517 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9518 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
|
9519 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9522 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9523 * 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
|
9524 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9525 * 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
|
9526 * 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
|
9527 * 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
|
9528 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9529 * 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
|
9530 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9531 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
|
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 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
|
9534 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
|
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 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
|
9537 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9538 *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
|
9539 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
|
9540 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
|
9541 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
|
9542 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
|
9543 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
|
9544 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9545 |
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 * 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
|
9548 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9549 * 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
|
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 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
|
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 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
|
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 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
|
9556 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
|
9557 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
|
9558 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
|
9559 } |
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 /* 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
|
9562 * 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
|
9563 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9564 static HWND _find_signal_window(HWND window, const char *signame) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9565 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9566 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
|
9567 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9568 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
|
9569 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
|
9570 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
|
9571 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
|
9572 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
|
9573 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
|
9574 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
|
9575 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9578 * 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
|
9579 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9580 * 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
|
9581 * 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
|
9582 * 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
|
9583 * 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
|
9584 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9585 void dw_signal_connect(HWND window, const char *signame, 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
|
9586 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9587 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
|
9588 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9589 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9590 /* 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
|
9591 * 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
|
9592 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9593 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
|
9594 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9595 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
|
9596 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9597 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
|
9598 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
|
9599 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9600 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
|
9601 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
9602 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
|
9603 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9604 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
|
9605 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9606 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9609 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
|
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 } |
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 #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
|
9614 |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9615 /* Signal setup functions */ |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
9616 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
|
9617 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9618 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
|
9619 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9620 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
|
9621 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
|
9622 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
|
9623 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9624 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
|
9625 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9626 |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
9627 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
|
9628 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9629 /* 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
|
9630 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
|
9631 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9632 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
|
9633 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
|
9634 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
|
9635 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
|
9636 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
|
9637 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
|
9638 } |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
9639 /* 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
|
9640 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
|
9641 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
|
9642 /* 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
|
9643 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
|
9644 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
9645 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
|
9646 |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
9647 if(action) |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
9648 { |
2291
ce1b9e558584
GTK4: Fix minor logic error causing menu activation callbacks to fail.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2290
diff
changeset
|
9649 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
|
9650 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
|
9651 |
3c3f0023ae02
GTK4: Fix menu action setup by adding code to install group actions into
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2289
diff
changeset
|
9652 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
|
9653 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
|
9654 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
|
9655 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
|
9656 _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
|
9657 } |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
9658 return NULL; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
9659 } |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
9660 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
|
9661 } |
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
9662 |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
9663 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
|
9664 { |
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
9665 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
|
9666 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9667 GtkGesture *gesture = gtk_gesture_click_new(); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9668 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
|
9669 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
|
9670 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9671 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
|
9672 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9673 |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
9674 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
|
9675 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9676 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
|
9677 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9678 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
|
9679 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
|
9680 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
|
9681 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9682 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
|
9683 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9684 |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
9685 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
|
9686 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9687 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
|
9688 { |
2281
0e93b09ed0e1
GTK4: Cache the cairo context during the drawing area callback. This allows
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2280
diff
changeset
|
9689 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
|
9690 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
|
9691 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
|
9692 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9693 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
|
9694 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9695 |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
9696 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
|
9697 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9698 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
|
9699 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9700 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
|
9701 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9702 /* 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
|
9703 * 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
|
9704 */ |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
9705 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
|
9706 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
|
9707 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
|
9708 } |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
9709 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
|
9710 { |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
9711 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
|
9712 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
|
9713 } |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9714 else |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9715 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9716 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
|
9717 /* 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
|
9718 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
|
9719 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
|
9720 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
|
9721 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
|
9722 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9723 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9724 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
|
9725 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9726 |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
9727 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
|
9728 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9729 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
|
9730 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
|
9731 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
|
9732 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9733 |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
9734 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
|
9735 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9736 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
|
9737 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
|
9738 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
|
9739 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9740 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
9741 #ifdef USE_WEBKIT |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
9742 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
|
9743 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9744 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
|
9745 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9746 /* 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
|
9747 * 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
|
9748 */ |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
9749 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
|
9750 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
|
9751 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
|
9752 } |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
9753 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
|
9754 } |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9755 #endif |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9756 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9757 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9758 * 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
|
9759 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9760 * 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
|
9761 * 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
|
9762 * 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
|
9763 * 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
|
9764 * 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
|
9765 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9766 void dw_signal_connect_data(HWND window, const char *signame, void *sigfunc, void *discfunc, 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
|
9767 { |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
9768 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
|
9769 |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
9770 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
|
9771 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9772 GObject *object = (GObject *)window; |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
9773 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
|
9774 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
|
9775 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
|
9776 |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9777 /* |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9778 * 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
|
9779 * 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
|
9780 */ |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9781 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
|
9782 #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
|
9783 && !(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
|
9784 #endif |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9785 ) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9786 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
|
9787 |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9788 /* 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
|
9789 if(signal.setup) |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
9790 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
|
9791 |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9792 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
|
9793 return; |
2292
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
9794 |
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
9795 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
|
9796 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
|
9797 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
|
9798 /* Save the disconnect function pointer */ |
fa19fce045aa
GTK4: Remove unnecessary parameter to the setup functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2291
diff
changeset
|
9799 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
|
9800 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
|
9801 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
|
9802 _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
|
9803 } |
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9805 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9806 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9807 * 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
|
9808 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9809 * 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
|
9810 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9811 void dw_signal_disconnect_by_name(HWND window, const char *signame) |
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 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
|
9814 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
|
9815 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
|
9816 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9817 params[2] = _find_signal_window(window, signame); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9818 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
|
9819 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
|
9820 |
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
9821 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
|
9822 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9823 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
|
9824 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9825 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
|
9826 |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9827 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
|
9828 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
|
9829 |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
9830 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
|
9831 _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
|
9832 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9837 * 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
|
9838 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9839 * 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
|
9840 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9841 void dw_signal_disconnect_by_window(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
|
9842 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9843 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
|
9844 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
|
9845 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9846 thiswindow = _find_signal_window(window, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9847 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
|
9848 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9849 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
|
9850 _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
|
9851 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
|
9852 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9853 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9854 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9855 * 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
|
9856 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9857 * 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
|
9858 * 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
|
9859 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9860 void dw_signal_disconnect_by_data(HWND window, 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
|
9861 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9862 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
|
9863 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
|
9864 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9865 params[2] = _find_signal_window(window, NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9866 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
|
9867 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9868 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
|
9869 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9870 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
|
9871 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9872 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
|
9873 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
|
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 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
|
9876 _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
|
9877 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9878 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9879 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9880 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9881 * 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
|
9882 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9883 * 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
|
9884 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9885 * 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
|
9886 * 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
|
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 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
|
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 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
|
9891 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9892 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
|
9893 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
|
9894 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
|
9895 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
|
9896 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
|
9897 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9898 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
|
9899 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
|
9900 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9901 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
|
9902 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9903 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9904 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9905 * 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
|
9906 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9907 * 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
|
9908 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9909 * 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
|
9910 * 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
|
9911 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9912 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
|
9913 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9914 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
|
9915 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9916 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
|
9917 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
|
9918 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
|
9919 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
|
9920 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
|
9921 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9922 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
|
9923 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
|
9924 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9925 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
|
9926 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9929 * 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
|
9930 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9931 * 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
|
9932 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9933 * 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
|
9934 * 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
|
9935 * 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
|
9936 * 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
|
9937 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9938 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
|
9939 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9940 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
|
9941 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9942 #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
|
9943 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
|
9944 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
|
9945 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9946 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
|
9947 case DW_FEATURE_CONTAINER_STRIPE: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9948 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
|
9949 case DW_FEATURE_MLE_WORD_WRAP: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9950 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
|
9951 default: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9952 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9955 |
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 * 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
|
9958 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9959 * 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
|
9960 * 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
|
9961 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9962 * 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
|
9963 * 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
|
9964 * 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
|
9965 * Remarks: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9966 * 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
|
9967 * 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
|
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 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
|
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 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
|
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 /* 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
|
9974 #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
|
9975 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
|
9976 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
|
9977 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9978 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
|
9979 case DW_FEATURE_CONTAINER_STRIPE: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9980 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
|
9981 case DW_FEATURE_MLE_WORD_WRAP: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9982 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
|
9983 /* 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
|
9984 default: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9985 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
|
9986 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9987 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9988 |