Mercurial > dwindows
annotate gtk4/dw.c @ 2279:70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
Not fuctional yet, gdk_draw_context_get_frame_region() is returning NULL.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Wed, 03 Feb 2021 01:29:05 +0000 |
parents | 18028fa53ef2 |
children | 7902be60c542 |
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]; |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
153 GObject *(*setup)(struct _dw_signal_list *, GObject *, void *[], 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 */ |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
158 GObject *_dw_key_setup(struct _dw_signal_list *signal, GObject *object, void *params[], void *sigfunc, void *discfunc, void *data); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
159 GObject *_dw_button_setup(struct _dw_signal_list *signal, GObject *object, void *params[], 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
|
160 GObject *_dw_mouse_setup(struct _dw_signal_list *signal, GObject *object, void *params[], 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
|
161 GObject *_dw_motion_setup(struct _dw_signal_list *signal, GObject *object, void *params[], void *sigfunc, void *discfunc, void *data); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
162 GObject *_dw_draw_setup(struct _dw_signal_list *signal, GObject *object, void *params[], void *sigfunc, void *discfunc, void *data); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
163 GObject *_dw_value_setup(struct _dw_signal_list *signal, GObject *object, void *params[], void *sigfunc, void *discfunc, void *data); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
164 GObject *_dw_tree_setup(struct _dw_signal_list *signal, GObject *object, void *params[], void *sigfunc, void *discfunc, void *data); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
165 GObject *_dw_focus_setup(struct _dw_signal_list *signal, GObject *object, void *params[], 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 |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
167 GObject *_dw_html_setup(struct _dw_signal_list *signal, GObject *object, void *params[], 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 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
548 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
|
549 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
|
550 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
551 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
|
552 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
553 DWExpose exp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
554 int (*exposefunc)(HWND, DWExpose *, 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
|
555 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
556 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
|
557 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
|
558 exp.height = 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
|
559 retval = exposefunc(work.window, &exp, 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
|
560 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
561 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
|
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 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
564 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
|
565 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
566 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
|
567 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
|
568 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
569 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
|
570 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
|
571 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
572 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
|
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 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
|
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 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
|
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 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
|
579 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
|
580 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
581 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
|
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 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
|
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 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
|
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 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
|
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 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
|
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 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
|
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 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
|
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 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
|
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 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
|
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 } |
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 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
604 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
607 #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
|
608 #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
|
609 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
610 static 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
|
611 { |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
612 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
|
613 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
|
614 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
615 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
|
616 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
617 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
|
618 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
619 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
|
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 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
|
622 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
|
623 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
|
624 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
|
625 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
626 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
|
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 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
|
629 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
|
630 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
|
631 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
632 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
|
633 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
|
634 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
635 if(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
|
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 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
|
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 else |
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 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
|
642 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
643 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
644 else |
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 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
|
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 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
|
649 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
|
650 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
651 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
|
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 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
|
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(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
|
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 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
|
658 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
659 else |
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 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
664 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
|
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 } |
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 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
669 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
|
670 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
|
671 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
|
672 } |
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 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
|
675 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
676 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
677 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
|
678 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
679 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
|
680 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
|
681 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
682 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
|
683 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
684 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
|
685 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
686 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
|
687 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
688 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
|
689 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
|
690 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
|
691 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
|
692 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
|
693 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
694 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
|
695 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
696 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
|
697 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
|
698 } |
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 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
|
701 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
|
702 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
703 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
|
704 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
705 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
|
706 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
|
707 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
708 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
|
709 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
710 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
|
711 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
|
712 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
713 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
714 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
715 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
|
716 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
717 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
|
718 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
719 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
|
720 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
721 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
|
722 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
723 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
|
724 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
725 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
|
726 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
727 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
|
728 } |
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 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
732 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
733 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
|
734 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
735 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
|
736 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
|
737 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
738 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
|
739 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
740 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
|
741 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
742 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
|
743 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
744 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
|
745 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
|
746 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
747 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
|
748 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
749 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
|
750 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
|
751 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
752 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
753 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
754 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
|
755 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
756 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
|
757 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
758 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
|
759 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
760 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
|
761 } |
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 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
|
765 } |
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 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
|
768 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
|
769 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
770 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
771 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
|
772 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
773 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
774 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
|
775 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
776 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
|
777 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
|
778 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
779 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
|
780 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
781 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
|
782 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
|
783 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
784 return retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
785 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
786 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
787 static gint _dw_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
|
788 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
789 SignalHandler work = _dw_get_signal_handler(data); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
790 int retval = FALSE; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
791 |
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
|
792 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
|
793 { |
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 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
|
795 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
|
796 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
|
797 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
|
798 |
ba81894924cb
GTK4: Changes to handle the now opaque GdkEvent structure.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2276
diff
changeset
|
799 /* 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
|
800 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
|
801 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
|
802 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
803 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
|
804 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
|
805 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
|
806 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
807 /* 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
|
808 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
|
809 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
810 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
|
811 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
|
812 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
813 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
|
814 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
|
815 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
816 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
|
817 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
818 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
|
819 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
820 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
|
821 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
822 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
|
823 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
|
824 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
|
825 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
|
826 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
827 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
828 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
|
829 } |
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 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
|
834 } |
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 /* 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
|
837 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
|
838 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
839 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
|
840 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
|
841 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
|
842 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
843 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
|
844 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
845 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
|
846 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
847 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
|
848 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
|
849 } |
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 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
|
852 } |
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 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
855 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
|
856 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
857 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
|
858 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
|
859 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
860 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
|
861 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
862 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
|
863 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
|
864 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
865 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
|
866 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
867 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
868 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
|
869 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
870 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
|
871 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
|
872 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
873 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
|
874 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
875 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
|
876 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
|
877 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
878 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
|
879 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
880 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
|
881 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
882 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
|
883 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
|
884 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
885 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
|
886 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
887 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
|
888 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
|
889 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
|
890 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
891 } |
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 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
|
894 } |
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 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
|
897 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
898 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
|
899 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
900 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
|
901 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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
903 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
|
904 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
905 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
906 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
|
907 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
908 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
|
909 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
|
910 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
|
911 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
912 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
|
913 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
|
914 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
915 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
|
916 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
|
917 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
|
918 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
919 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
|
920 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
|
921 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
922 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
|
923 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
|
924 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
925 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
|
926 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
927 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
|
928 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
929 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
|
930 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
931 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
|
932 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
933 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
|
934 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
|
935 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
936 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
|
937 } |
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 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
|
940 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
941 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
942 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
|
943 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
944 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
|
945 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
946 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
|
947 { |
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
|
948 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
|
949 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
950 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
|
951 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
|
952 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
953 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
|
954 } |
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 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
|
957 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
958 |
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
|
959 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
|
960 { |
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 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
|
962 |
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 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
|
964 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
|
965 } |
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 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
967 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
|
968 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
969 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
|
970 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
|
971 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
|
972 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
973 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
974 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
|
975 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
976 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
|
977 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
|
978 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
979 /* 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
|
980 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
|
981 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
|
982 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
983 if(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
|
984 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
|
985 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
986 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
|
987 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
988 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
|
989 *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
|
990 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
|
991 *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
|
992 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
993 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
|
994 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
995 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
996 /* 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
|
997 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
|
998 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
999 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
|
1000 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
|
1001 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
|
1002 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1003 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
|
1004 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
|
1005 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
|
1006 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
|
1007 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
|
1008 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
|
1009 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1010 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
|
1011 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
|
1012 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1013 |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1014 /* Handle menu click callbacks */ |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1015 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
|
1016 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1017 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
|
1018 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1019 if(work.window) |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1020 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1021 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
|
1022 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
1023 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
|
1024 } |
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 |
2276
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
1027 /* 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
|
1028 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
|
1029 { |
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
1030 /* 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
|
1031 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
|
1032 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
|
1033 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
|
1034 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
|
1035 } |
d7f0254f7d1e
GTK4: Attempt fixing box and item padding using gtk_widget_set_margin_*().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2275
diff
changeset
|
1036 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1037 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
|
1038 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1039 /* 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
|
1040 * 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
|
1041 * 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
|
1042 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1043 } |
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 * 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
|
1047 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1048 * 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
|
1049 * 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
|
1050 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1051 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
|
1052 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1053 /* 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
|
1054 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
|
1055 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1056 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
|
1057 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
|
1058 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
|
1059 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1060 /* 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
|
1061 * 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
|
1062 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1063 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
|
1064 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1065 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
|
1066 *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
|
1067 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1068 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1069 if(*binname) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1070 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1071 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
|
1072 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1073 if(binpos) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1074 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
|
1075 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1076 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
|
1077 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
|
1078 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
|
1079 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
|
1080 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1081 /* 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
|
1082 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
|
1083 } |
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 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
|
1086 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
|
1087 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1088 /* 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
|
1089 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
|
1090 _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
|
1091 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1092 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
|
1093 |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1094 _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
|
1095 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
|
1096 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1097 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
|
1098 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
|
1099 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1100 _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
|
1101 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1102 /* 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
|
1103 _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
|
1104 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1105 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
|
1106 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1107 /* 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
|
1108 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
|
1109 } |
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 /* 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
|
1112 * 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
|
1113 * 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
|
1114 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1115 _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
|
1116 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
|
1117 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1118 /* 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
|
1119 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
|
1120 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1121 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
|
1122 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
|
1123 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
|
1124 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
|
1125 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1126 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
|
1127 } |
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 * 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
|
1131 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1132 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
|
1133 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1134 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
|
1135 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1136 |
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 * 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
|
1139 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1140 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
|
1141 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1142 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
|
1143 } |
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 * 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
|
1147 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1148 * 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
|
1149 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1150 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
|
1151 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1152 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
|
1153 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
|
1154 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1155 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
|
1156 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1157 if(_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
|
1158 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1159 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
|
1160 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1161 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
|
1162 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1163 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
|
1164 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1165 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
|
1166 _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
|
1167 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
|
1168 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
|
1169 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1170 _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
|
1171 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
|
1172 _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
|
1173 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
|
1174 } |
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 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1177 _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
|
1178 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1179 |
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 * 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
|
1182 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1183 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
|
1184 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1185 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
|
1186 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
|
1187 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1188 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
|
1189 _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
|
1190 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
|
1191 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
|
1192 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1193 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
|
1194 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
|
1195 _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
|
1196 } |
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 * 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
|
1200 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1201 * 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
|
1202 * 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
|
1203 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1204 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
|
1205 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1206 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
|
1207 } |
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 * 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
|
1211 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1212 * 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
|
1213 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1214 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
|
1215 { |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1216 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
|
1217 |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1218 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
|
1219 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1220 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
|
1221 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
|
1222 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
|
1223 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
|
1224 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
|
1225 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1226 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
|
1227 } |
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 * 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
|
1231 * 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
|
1232 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1233 * 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
|
1234 * 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
|
1235 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1236 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
|
1237 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1238 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
|
1239 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
|
1240 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
|
1241 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1242 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
|
1243 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
|
1244 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
|
1245 } |
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 * 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
|
1249 * 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
|
1250 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1251 * 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
|
1252 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1253 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
|
1254 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1255 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
|
1256 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1257 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
|
1258 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
|
1259 |
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
|
1260 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
|
1261 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1262 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
|
1263 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
|
1264 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1265 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1266 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1267 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
|
1268 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
|
1269 } |
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 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
|
1272 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
|
1273 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
|
1274 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
|
1275 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
|
1276 } |
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 * 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
|
1280 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1281 * 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
|
1282 * ...: 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
|
1283 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1284 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
|
1285 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1286 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
|
1287 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
|
1288 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1289 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
|
1290 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
|
1291 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
|
1292 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1293 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
|
1294 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1295 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1296 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1297 * 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
|
1298 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1299 * 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
|
1300 * 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
|
1301 * 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
|
1302 * ...: 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
|
1303 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1304 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
|
1305 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1306 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
|
1307 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
|
1308 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
|
1309 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
|
1310 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
|
1311 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
|
1312 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
|
1313 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1314 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
|
1315 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
|
1316 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
|
1317 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1318 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
|
1319 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
|
1320 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
|
1321 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
|
1322 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
|
1323 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
|
1324 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
|
1325 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
|
1326 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1327 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
|
1328 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
|
1329 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
|
1330 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
|
1331 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1332 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
|
1333 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
|
1334 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
|
1335 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
|
1336 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
|
1337 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
|
1338 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
|
1339 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
|
1340 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
|
1341 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
|
1342 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
|
1343 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
|
1344 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1345 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
|
1346 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
|
1347 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
|
1348 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
|
1349 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
|
1350 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
|
1351 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
|
1352 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
|
1353 default: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1354 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1355 /* 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
|
1356 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
|
1357 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
|
1358 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
|
1359 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
|
1360 } |
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 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
|
1363 } |
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 * 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
|
1367 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1368 * 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
|
1369 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1370 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
|
1371 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1372 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
|
1373 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
|
1374 |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1375 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
|
1376 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
|
1377 } |
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 * 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
|
1381 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1382 * 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
|
1383 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1384 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
|
1385 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1386 /* 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
|
1387 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
|
1388 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1389 |
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 * 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
|
1392 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1393 * 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
|
1394 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1395 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
|
1396 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1397 /* 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
|
1398 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
|
1399 } |
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 * 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
|
1403 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1404 * 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
|
1405 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1406 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
|
1407 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1408 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
|
1409 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
|
1410 |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1411 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
|
1412 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
|
1413 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
|
1414 { |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1415 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
|
1416 |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1417 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
|
1418 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
|
1419 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
|
1420 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
|
1421 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1422 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
|
1423 } |
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 * 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
|
1427 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1428 * 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
|
1429 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1430 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
|
1431 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1432 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
|
1433 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
|
1434 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1435 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
|
1436 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
|
1437 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1438 |
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 * 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
|
1441 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1442 * 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
|
1443 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1444 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
|
1445 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1446 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
|
1447 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
|
1448 |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1449 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
|
1450 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
|
1451 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
|
1452 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1453 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
|
1454 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
|
1455 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1456 /* 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
|
1457 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
|
1458 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
|
1459 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1460 /* 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
|
1461 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
|
1462 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1463 /* 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
|
1464 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
|
1465 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
|
1466 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
|
1467 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1468 /* 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
|
1469 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
|
1470 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1471 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
|
1472 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1473 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
|
1474 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1475 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
|
1476 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1477 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1478 } |
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 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1481 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1482 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
|
1483 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1484 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
|
1485 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1486 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
|
1487 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1488 } |
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 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
|
1493 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1494 /* 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
|
1495 boxcount--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1496 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
|
1497 } |
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 /* 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
|
1500 * 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
|
1501 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1502 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
|
1503 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
|
1504 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1505 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
|
1506 } |
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 /* 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
|
1509 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1510 * 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
|
1511 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1512 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
|
1513 { |
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 * 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
|
1518 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1519 * 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
|
1520 * 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
|
1521 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1522 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
|
1523 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1524 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
|
1525 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
|
1526 } |
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 * 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
|
1530 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1531 * 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
|
1532 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1533 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
|
1534 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1535 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
|
1536 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1537 _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
|
1538 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1539 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
|
1540 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
|
1541 } |
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 /* 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
|
1544 * 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
|
1545 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1546 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
|
1547 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1548 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
|
1549 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1550 if(font) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1551 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1552 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
|
1553 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
|
1554 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
|
1555 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1556 /* 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
|
1557 * 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
|
1558 * 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
|
1559 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1560 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
|
1561 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1562 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
|
1563 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
|
1564 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
|
1565 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1566 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
|
1567 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
|
1568 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1569 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
|
1570 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
|
1571 } |
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 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
|
1574 } |
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 /* 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
|
1577 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
|
1578 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1579 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
|
1580 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
|
1581 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
|
1582 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1583 /* 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
|
1584 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
|
1585 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1586 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
|
1587 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
|
1588 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
|
1589 } |
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 /* 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
|
1592 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
|
1593 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1594 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
|
1595 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
|
1596 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1597 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
|
1598 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
|
1599 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
|
1600 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
|
1601 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
|
1602 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1603 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
|
1604 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
|
1605 } |
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 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
|
1608 { |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
1609 #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
|
1610 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
|
1611 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
|
1612 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1613 /* If 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
|
1614 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
|
1615 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1616 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
|
1617 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
|
1618 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
|
1619 } |
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 /* 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
|
1622 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
|
1623 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1624 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
|
1625 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1626 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
|
1627 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
|
1628 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
|
1629 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
|
1630 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1631 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
|
1632 #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
|
1633 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1634 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1635 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1636 * 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
|
1637 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1638 * 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
|
1639 * 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
|
1640 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1641 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
|
1642 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1643 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
|
1644 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
|
1645 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
|
1646 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1647 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
|
1648 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1649 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
|
1650 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
|
1651 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
|
1652 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1653 /* 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
|
1654 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
|
1655 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1656 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
|
1657 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
|
1658 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
|
1659 } |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1660 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
|
1661 { |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1662 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
|
1663 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
|
1664 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
|
1665 } |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1666 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
|
1667 { |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1668 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
|
1669 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
|
1670 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
|
1671 } |
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 /* 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
|
1674 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
|
1675 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
|
1676 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
|
1677 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
|
1678 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1679 _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
|
1680 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1681 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
|
1682 } |
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 /* 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
|
1685 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1686 * 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
|
1687 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1688 * 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
|
1689 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1690 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
|
1691 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1692 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
|
1693 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
|
1694 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
|
1695 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
|
1696 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
|
1697 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1698 /* 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
|
1699 * 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
|
1700 * 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
|
1701 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1702 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
|
1703 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1704 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
|
1705 *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
|
1706 name++; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1707 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
|
1708 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1709 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1710 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
|
1711 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
|
1712 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1713 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
|
1714 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
|
1715 } |
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 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
|
1718 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
|
1719 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
1720 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
|
1721 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1722 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
|
1723 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
|
1724 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1725 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
|
1726 /* 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
|
1727 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
|
1728 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1729 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
|
1730 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1731 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
|
1732 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1733 x--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1734 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1735 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
|
1736 /* 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
|
1737 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
|
1738 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1739 /* 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
|
1740 * 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
|
1741 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1742 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
|
1743 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
|
1744 } |
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 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
|
1747 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1748 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
1749 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
|
1750 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
|
1751 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
|
1752 } |
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 * 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
|
1756 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1757 * 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
|
1758 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1759 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
|
1760 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1761 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
|
1762 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
|
1763 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
|
1764 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
|
1765 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
|
1766 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1767 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
|
1768 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1769 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
|
1770 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
|
1771 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
|
1772 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1773 /* 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
|
1774 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
|
1775 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1776 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
|
1777 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
|
1778 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
|
1779 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1780 |
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
|
1781 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
|
1782 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
|
1783 { |
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 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
|
1785 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
|
1786 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1787 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
|
1788 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1789 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
|
1790 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
|
1791 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
|
1792 /* 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
|
1793 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
|
1794 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1795 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
|
1796 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1797 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
|
1798 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
|
1799 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1800 x--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1801 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1802 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
|
1803 /* 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
|
1804 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
|
1805 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1806 /* 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
|
1807 * 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
|
1808 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1809 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
|
1810 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
|
1811 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1812 } |
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
|
1813 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
|
1814 } |
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 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
|
1817 } |
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 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
|
1820 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1821 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
|
1822 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1823 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
|
1824 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
|
1825 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1826 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
|
1827 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1828 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
|
1829 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
|
1830 } |
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 /* 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
|
1833 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
|
1834 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1835 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
|
1836 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
|
1837 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1838 _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
|
1839 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1840 *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
|
1841 *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
|
1842 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1843 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
|
1844 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
|
1845 } |
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 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
|
1848 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1849 /* 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
|
1850 * 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
|
1851 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1852 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
|
1853 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1854 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
|
1855 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1856 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
|
1857 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
|
1858 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
|
1859 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
|
1860 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1861 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
|
1862 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
|
1863 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1864 _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
|
1865 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1866 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
|
1867 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1868 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
|
1869 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
|
1870 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
|
1871 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
|
1872 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1873 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
|
1874 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
|
1875 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1876 _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
|
1877 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1878 _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
|
1879 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1880 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
|
1881 } |
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 * 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
|
1884 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1885 * 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
|
1886 * 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
|
1887 * 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
|
1888 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1889 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
|
1890 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1891 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
|
1892 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1893 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
|
1894 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1895 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
|
1896 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
|
1897 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
|
1898 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1899 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
|
1900 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1901 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
|
1902 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
|
1903 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1904 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
|
1905 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
|
1906 } |
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 _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
|
1910 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1911 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
|
1912 } |
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 * 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
|
1916 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1917 * 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
|
1918 * 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
|
1919 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1920 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
|
1921 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1922 /* TODO */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1923 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
|
1924 } |
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 * 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
|
1928 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1929 * 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
|
1930 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1931 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
|
1932 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1933 /* 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
|
1934 } |
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 * 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
|
1938 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1939 * 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
|
1940 * 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
|
1941 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1942 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
|
1943 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1944 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
|
1945 { |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1946 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
|
1947 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
|
1948 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
|
1949 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
|
1950 } |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1951 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
|
1952 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
|
1953 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
|
1954 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
|
1955 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
|
1956 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
|
1957 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
|
1958 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
|
1959 } |
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 * 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
|
1963 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1964 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
|
1965 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
1966 /* 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
|
1967 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1968 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1969 /* 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
|
1970 #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
|
1971 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1972 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1973 * 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
|
1974 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1975 * 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
|
1976 * 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
|
1977 * 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
|
1978 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1979 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
|
1980 { |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1981 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
|
1982 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
|
1983 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
|
1984 |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1985 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
|
1986 |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1987 /* 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
|
1988 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
|
1989 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
|
1990 /* 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
|
1991 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
|
1992 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
|
1993 |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1994 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
|
1995 |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1996 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
|
1997 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
|
1998 else |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
1999 { |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2000 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
|
2001 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
|
2002 |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
2003 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
|
2004 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
|
2005 } |
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 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
|
2008 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
|
2009 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
|
2010 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
|
2011 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
|
2012 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
|
2013 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2014 |
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 * 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
|
2017 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2018 * 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
|
2019 * 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
|
2020 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2021 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
|
2022 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2023 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
|
2024 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2025 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
|
2026 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
|
2027 _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
|
2028 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
|
2029 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
|
2030 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2031 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2032 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2033 * 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
|
2034 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2035 * 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
|
2036 * 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
|
2037 */ |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2038 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
|
2039 { |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2040 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
|
2041 |
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2042 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
|
2043 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
|
2044 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2045 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
|
2046 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2047 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
|
2048 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
|
2049 _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
|
2050 |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2051 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
|
2052 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
|
2053 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
|
2054 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
|
2055 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2056 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
|
2057 } |
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 * 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
|
2061 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2062 * 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
|
2063 * 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
|
2064 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2065 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
|
2066 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2067 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
|
2068 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
|
2069 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2070 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
|
2071 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
|
2072 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2073 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
|
2074 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
|
2075 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2076 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
|
2077 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
|
2078 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
|
2079 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
|
2080 } |
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 * 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
|
2084 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2085 * 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
|
2086 * 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
|
2087 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2088 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
|
2089 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2090 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
|
2091 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
|
2092 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2093 if (!handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2094 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
|
2095 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2096 if ( 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
|
2097 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
|
2098 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2099 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
|
2100 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
|
2101 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2102 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
|
2103 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2104 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
|
2105 } |
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 * 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
|
2109 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2110 * 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
|
2111 * 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
|
2112 * 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
|
2113 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2114 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
|
2115 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2116 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
|
2117 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2118 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
|
2119 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
|
2120 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2121 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
|
2122 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
|
2123 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
|
2124 _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
|
2125 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
|
2126 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
|
2127 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
|
2128 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
|
2129 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
|
2130 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
|
2131 } |
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 * 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
|
2135 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2136 * 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
|
2137 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2138 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
|
2139 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2140 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
|
2141 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2142 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
|
2143 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
|
2144 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
|
2145 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
|
2146 } |
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 * 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
|
2150 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2151 * 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
|
2152 * 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
|
2153 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2154 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
|
2155 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2156 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
|
2157 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2158 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
|
2159 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
|
2160 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
|
2161 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2162 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
|
2163 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
|
2164 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
|
2165 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
|
2166 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
|
2167 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
|
2168 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2169 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2170 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2171 * 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
|
2172 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2173 * 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
|
2174 * 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
|
2175 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2176 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
|
2177 { |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2178 GMenu *menu = g_menu_new(); |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2179 HMENUI tmp = gtk_popover_menu_new_from_model_full(G_MENU_MODEL(menu), GTK_POPOVER_MENU_NESTED); |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
2180 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2181 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
|
2182 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
|
2183 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2184 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2185 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2186 * 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
|
2187 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2188 * 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
|
2189 * 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
|
2190 * 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
|
2191 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2192 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
|
2193 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2194 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
|
2195 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
|
2196 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2197 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
|
2198 (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
|
2199 { |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2200 GMenu *menu = g_menu_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
|
2201 /* 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
|
2202 GtkWidget *oldmenu = GTK_WIDGET(g_object_get_data(G_OBJECT(location), "_dw_menubar")); |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2203 |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2204 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
|
2205 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
|
2206 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2207 /* 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
|
2208 tmp = gtk_popover_menu_bar_new_from_model(G_MENU_MODEL(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
|
2209 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
|
2210 /* 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
|
2211 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
|
2212 g_object_set_data(G_OBJECT(tmp), "_dw_window", (gpointer)location); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2213 gtk_grid_attach(GTK_GRID(box), tmp, 0, 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
|
2214 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2215 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
|
2216 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2217 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2218 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2219 * 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
|
2220 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2221 * 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
|
2222 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2223 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
|
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 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
|
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 GtkWidget *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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2229 /* 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
|
2230 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
|
2231 (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
|
2232 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
|
2233 /* Actually destroy the menu */ |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
2234 if(GTK_IS_WIDGET(*menu)) |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
2235 { |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
2236 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
|
2237 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
|
2238 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
|
2239 else |
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
2240 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
|
2241 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2242 *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
|
2243 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2244 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2245 |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2246 char _dw_removetilde(char *action, 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
|
2247 { |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2248 int z, cur=0; |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2249 char accel = '\0'; |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2250 |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2251 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
|
2252 { |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2253 if(src[z] == '~') |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2254 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2255 action[cur] = dest[cur] = '_'; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2256 accel = src[z+1]; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2257 } |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2258 else if(src[z] == ' ') |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2259 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2260 action[cur] = '_'; |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2261 dest[cur] = src[z]; |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2262 } |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2263 else |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2264 { |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2265 action[cur] = src[z]; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2266 dest[cur] = src[z]; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2267 } |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2268 cur++; |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2269 } |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2270 dest[cur] = 0; |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2271 return accel; |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2272 } |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2273 |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2274 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2275 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2276 * 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
|
2277 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2278 * 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
|
2279 * 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
|
2280 * 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
|
2281 * 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
|
2282 * 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
|
2283 * 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
|
2284 * 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
|
2285 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2286 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
|
2287 { |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2288 GSimpleAction *action = NULL; |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2289 GMenuItem *tmphandle = NULL; |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2290 GMenuModel *menumodel; |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2291 char *temptitle = alloca(strlen(title)+1); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2292 char *tempaction = 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
|
2293 int submenucount; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2294 |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2295 if(!menu) |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2296 return 0; |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2297 |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2298 if(GTK_IS_POPOVER_MENU_BAR(menu)) |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2299 menumodel = gtk_popover_menu_bar_get_menu_model(GTK_POPOVER_MENU_BAR(menu)); |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2300 else |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2301 menumodel = gtk_popover_menu_get_menu_model(GTK_POPOVER_MENU(menu)); |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2302 _dw_removetilde(tempaction, 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
|
2303 submenucount = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(menu), "_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
|
2304 |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2305 if (strlen(temptitle) == 0) |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2306 tmphandle = g_menu_item_new_section(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
|
2307 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2308 { |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2309 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
|
2310 |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2311 if(submenu) |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2312 { |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2313 GMenuModel *submenumodel; |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2314 |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2315 if(GTK_IS_POPOVER_MENU_BAR(submenu)) |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2316 submenumodel = gtk_popover_menu_bar_get_menu_model(GTK_POPOVER_MENU_BAR(submenu)); |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2317 else |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2318 submenumodel = gtk_popover_menu_get_menu_model(GTK_POPOVER_MENU(submenu)); |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2319 |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2320 snprintf(tempbuf, 100, "_dw_submenu%d", submenucount); |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2321 submenucount++; |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2322 tmphandle = g_menu_item_new_submenu(temptitle, submenumodel); |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2323 g_object_set_data(G_OBJECT(menu), tempbuf, (gpointer)submenu); |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2324 g_object_set_data(G_OBJECT(menu), "_dw_submenucount", GINT_TO_POINTER(submenucount)); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2325 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2326 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2327 { |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2328 char numbuf[25] = {0}; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2329 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2330 snprintf(tempbuf, 100, "menu.%s", tempaction); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2331 action = g_simple_action_new(tempbuf, NULL); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2332 g_object_ref(G_OBJECT(action)); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2333 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
|
2334 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
|
2335 g_object_set_data(G_OBJECT(menu), numbuf, (gpointer)tmphandle); |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2336 g_object_set_data(G_OBJECT(menu), "_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
|
2337 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2338 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2339 |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2340 if(end) |
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2341 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
|
2342 else |
2272
2ce302c43f48
GTK4: Initial menu functionality... basic creation works... no callbacks.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2271
diff
changeset
|
2343 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
|
2344 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2345 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
|
2346 |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2347 if(action) |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2348 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
|
2349 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
|
2350 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2351 |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2352 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
|
2353 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2354 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
|
2355 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
|
2356 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2357 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
|
2358 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
|
2359 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2360 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
|
2361 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2362 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
|
2363 GMenuItem *menuitem; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2364 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
|
2365 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2366 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
|
2367 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2368 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
|
2369 { |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2370 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
|
2371 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
|
2372 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2373 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2374 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
|
2375 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2376 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2377 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2378 * 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
|
2379 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2380 * 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
|
2381 * 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
|
2382 * 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
|
2383 * 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
|
2384 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2385 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
|
2386 { |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2387 #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
|
2388 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
|
2389 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
|
2390 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2391 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
|
2392 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2393 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2394 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
|
2395 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
|
2396 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2397 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
|
2398 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2399 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
|
2400 |
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 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
|
2402 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
|
2403 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2404 #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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2407 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2408 * 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
|
2409 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2410 * 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
|
2411 * 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
|
2412 * 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
|
2413 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2414 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
|
2415 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2416 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
|
2417 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
|
2418 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2419 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
|
2420 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2421 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2422 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
|
2423 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
|
2424 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2425 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
|
2426 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2427 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
|
2428 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2429 #if 0 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2430 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
|
2431 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2432 int check = 0; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2433 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2434 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
|
2435 check = 1; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2436 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2437 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
|
2438 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
|
2439 } |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2440 #endif |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2441 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
|
2442 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2443 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
|
2444 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
|
2445 else |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2446 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
|
2447 } |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2448 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2449 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2450 |
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 * 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
|
2453 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2454 * 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
|
2455 * 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
|
2456 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2457 * 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
|
2458 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2459 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
|
2460 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2461 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
|
2462 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
|
2463 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
|
2464 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2465 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
|
2466 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
|
2467 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2468 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
|
2469 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
|
2470 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2471 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
|
2472 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2473 /* 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
|
2474 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
|
2475 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
|
2476 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
|
2477 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2478 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
|
2479 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2482 * 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
|
2483 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2484 * 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
|
2485 * 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
|
2486 * 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
|
2487 * 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
|
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 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
|
2490 { |
2273
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2491 if(menu && *menu && GTK_IS_WIDGET(*menu)) |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2492 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2493 GtkWidget *popover = gtk_popover_new(); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2494 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2495 gtk_popover_set_child(GTK_POPOVER(popover), GTK_WIDGET(*menu)); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2496 gtk_popover_set_offset(GTK_POPOVER(popover), x, y); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2497 gtk_popover_set_autohide(GTK_POPOVER(popover), TRUE); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2498 gtk_popover_popup(GTK_POPOVER(popover)); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2499 *menu = NULL; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
2500 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2501 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2502 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2503 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2504 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2505 * 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
|
2506 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2507 * 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
|
2508 * 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
|
2509 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2510 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
|
2511 { |
2278
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
2512 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
|
2513 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
|
2514 double dx, dy; |
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
2515 |
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
2516 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
|
2517 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2518 if(x) |
2278
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
2519 *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
|
2520 if(y) |
2278
18028fa53ef2
GTK4: Implement dw_pointer_query_pos(). Fix a macro typo.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2277
diff
changeset
|
2521 *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
|
2522 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2523 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2524 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2525 * 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
|
2526 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2527 * 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
|
2528 * 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
|
2529 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2530 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
|
2531 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2532 /* 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
|
2533 } |
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 #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
|
2536 #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
|
2537 #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
|
2538 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2539 GtkWidget *_tree_create(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
|
2540 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2541 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
|
2542 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2543 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
|
2544 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
|
2545 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
|
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 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
|
2548 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
|
2549 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
|
2550 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2551 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2552 GtkWidget *_tree_setup(GtkWidget *tmp, 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
|
2553 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2554 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
|
2555 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
|
2556 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
|
2557 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
|
2558 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
|
2559 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2560 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2561 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2562 * 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
|
2563 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2564 * 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
|
2565 * 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
|
2566 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2567 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
|
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 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
|
2570 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2571 if(!(tmp = _tree_create(id))) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2572 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
|
2573 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
|
2574 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
|
2575 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
|
2576 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2577 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2578 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2579 * 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
|
2580 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2581 * 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
|
2582 * 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
|
2583 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2584 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
|
2585 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2586 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
|
2587 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
|
2588 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
|
2589 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
|
2590 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
|
2591 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2592 if(!(tmp = _tree_create(id))) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2593 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
|
2594 store = gtk_tree_store_new(4, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_POINTER, 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
|
2595 tree = _tree_setup(tmp, 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
|
2596 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
|
2597 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
|
2598 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
|
2599 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2600 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
|
2601 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
|
2602 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
|
2603 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
|
2604 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
|
2605 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
|
2606 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2607 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
|
2608 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
|
2609 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
|
2610 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2611 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
|
2612 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
|
2613 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
|
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 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
|
2616 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
|
2617 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
|
2618 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2619 |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2622 * 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
|
2623 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2624 * 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
|
2625 * 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
|
2626 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2627 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
|
2628 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2629 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
|
2630 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2631 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
|
2632 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2633 /* 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
|
2634 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
|
2635 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
|
2636 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
|
2637 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
|
2638 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
|
2639 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2643 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2644 * 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
|
2645 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2646 * 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
|
2647 * 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
|
2648 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2649 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
|
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 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
|
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 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
|
2654 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
|
2655 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
|
2656 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
|
2657 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
|
2658 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2659 /* 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
|
2660 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
|
2661 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
|
2662 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
|
2663 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
|
2664 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
|
2665 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
|
2666 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
|
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 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
|
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 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
|
2673 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2674 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
|
2675 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2676 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
|
2677 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2678 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
|
2679 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
|
2680 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
|
2681 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
|
2682 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
|
2683 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
|
2684 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2685 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
|
2686 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
|
2687 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
|
2688 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
|
2689 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
|
2690 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
|
2691 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
|
2692 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2693 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2694 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2695 * 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
|
2696 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2697 * 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
|
2698 * 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
|
2699 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2700 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
|
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 GtkWidget *tmp; |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2703 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
|
2704 |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2705 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
|
2706 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2707 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
|
2708 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
|
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 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
|
2711 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
|
2712 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
|
2713 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2714 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2715 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2716 * 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
|
2717 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2718 * 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
|
2719 * 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
|
2720 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2721 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
|
2722 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2723 GtkWidget *tmp; |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2724 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
|
2725 |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2726 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
|
2727 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2728 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
|
2729 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2730 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
|
2731 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
|
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 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
|
2734 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
|
2735 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
|
2736 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2737 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2738 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2739 * 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
|
2740 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2741 * 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
|
2742 * 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
|
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 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
|
2745 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2746 GtkWidget *tmp; |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2747 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
|
2748 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
|
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 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
|
2751 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
|
2752 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
|
2753 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
|
2754 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
|
2755 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
|
2756 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
|
2757 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
|
2758 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
|
2759 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
|
2760 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
|
2761 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
|
2762 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2763 |
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 * 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
|
2766 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2767 * 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
|
2768 * 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
|
2769 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2770 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
|
2771 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2772 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
|
2773 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2774 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
|
2775 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
|
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 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
|
2778 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
|
2779 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
|
2780 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2781 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2782 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2783 * 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
|
2784 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2785 * 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
|
2786 * 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
|
2787 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2788 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
|
2789 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2790 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
|
2791 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
|
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 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
|
2794 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
|
2795 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2796 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
|
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 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
|
2799 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
|
2800 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
|
2801 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2802 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
|
2803 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
|
2804 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
|
2805 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
|
2806 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
|
2807 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2808 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2809 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2810 * 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
|
2811 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2812 * 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
|
2813 * 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
|
2814 * 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
|
2815 * 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
|
2816 * 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
|
2817 * (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
|
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 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
|
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 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
|
2822 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
|
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 /* 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
|
2825 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
|
2826 /* 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
|
2827 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
|
2828 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
|
2829 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2830 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
|
2831 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
|
2832 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
|
2833 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2834 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
|
2835 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
|
2836 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
|
2837 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
|
2838 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
|
2839 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2842 * 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
|
2843 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2844 * 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
|
2845 * 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
|
2846 * 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
|
2847 * (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
|
2848 * 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
|
2849 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2850 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
|
2851 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2852 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
|
2853 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
|
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 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
|
2856 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
|
2857 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2858 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
|
2859 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2860 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
|
2861 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
|
2862 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
|
2863 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2864 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
|
2865 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
|
2866 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
|
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 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
|
2869 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2870 |
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 * 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
|
2873 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2874 * 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
|
2875 * 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
|
2876 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2877 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
|
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 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
|
2880 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
|
2881 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2882 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
|
2883 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
|
2884 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
|
2885 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
|
2886 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
|
2887 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
|
2888 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
|
2889 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
|
2890 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
|
2891 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
|
2892 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
|
2893 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2894 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2895 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2896 * 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
|
2897 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2898 * 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
|
2899 * 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
|
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 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
|
2902 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
2903 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
|
2904 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
|
2905 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
|
2906 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2907 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
|
2908 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
|
2909 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
|
2910 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2913 * 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
|
2914 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2915 * 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
|
2916 * 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
|
2917 * 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
|
2918 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2919 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
|
2920 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2921 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
|
2922 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
|
2923 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2924 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
|
2925 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
|
2926 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
|
2927 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
|
2928 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
|
2929 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
|
2930 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
|
2931 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
|
2932 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
|
2933 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2934 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2935 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2936 * 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
|
2937 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2938 * 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
|
2939 * 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
|
2940 * 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
|
2941 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2942 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
|
2943 { |
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 *tmp; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2945 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
|
2946 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2947 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
|
2948 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
|
2949 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
|
2950 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
|
2951 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
|
2952 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
|
2953 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
|
2954 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
|
2955 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2956 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2957 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2958 * 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
|
2959 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2960 * 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
|
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 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
|
2963 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2964 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
|
2965 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2966 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
|
2967 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
|
2968 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
|
2969 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
|
2970 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2971 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2972 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2973 * 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
|
2974 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2975 * 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
|
2976 * 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
|
2977 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2978 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
|
2979 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2980 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
|
2981 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2982 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
|
2983 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
|
2984 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
|
2985 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
|
2986 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
|
2987 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
|
2988 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2989 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2990 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2991 * 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
|
2992 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2993 * 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
|
2994 * 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
|
2995 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2996 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
|
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 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
|
2999 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
|
3000 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
|
3001 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
|
3002 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
|
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 if(!(tmp = _tree_create(id))) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3005 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
|
3006 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
|
3007 tree = _tree_setup(tmp, 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
|
3008 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
|
3009 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
|
3010 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3011 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
|
3012 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
|
3013 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
|
3014 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
|
3015 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3016 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
|
3017 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
|
3018 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
|
3019 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3020 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
|
3021 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
|
3022 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3023 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
|
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 else |
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 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
|
3028 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3029 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
|
3030 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
|
3031 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
|
3032 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
|
3033 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3036 * 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
|
3037 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3038 * 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
|
3039 * 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
|
3040 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3041 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
|
3042 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3043 /* 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
|
3044 #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
|
3045 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
|
3046 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
3047 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
|
3048 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3049 if(icon_pixbuf) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3050 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3051 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
|
3052 } |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3053 #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
|
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 |
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 * 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
|
3058 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3059 * 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
|
3060 * 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
|
3061 * (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
|
3062 * 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
|
3063 * 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
|
3064 * 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
|
3065 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3066 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
|
3067 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3068 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
|
3069 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
|
3070 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
|
3071 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3072 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
|
3073 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3074 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3075 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
|
3076 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
|
3077 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3078 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3079 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
|
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 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
|
3082 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3083 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3084 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
|
3085 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3086 /* 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
|
3087 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
|
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 /* 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
|
3090 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
|
3091 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3092 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
|
3093 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
|
3094 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
|
3095 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3096 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
|
3097 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3098 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3099 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3100 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
|
3101 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3102 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3103 tmp = 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
|
3104 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3105 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3106 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
|
3107 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3108 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
|
3109 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3110 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
|
3111 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
|
3112 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3113 gtk_image_set_from_pixbuf(GTK_IMAGE(pixmap), tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3114 } |
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_image_set_from_pixbuf(GTK_IMAGE(handle), tmp); |
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3121 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3122 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3123 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3124 * 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
|
3125 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3126 * 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
|
3127 * 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
|
3128 * (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
|
3129 * 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
|
3130 * 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
|
3131 * 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
|
3132 * 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
|
3133 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3134 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
|
3135 { |
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 *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
|
3137 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3138 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
|
3139 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3140 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3141 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
|
3142 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3143 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3144 * 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
|
3145 * 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
|
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 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
|
3148 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
|
3149 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3150 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
|
3151 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3152 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
|
3153 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
|
3154 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3155 /* 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
|
3156 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
|
3157 return; |
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 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
|
3160 /* 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
|
3161 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
|
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 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
|
3164 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
|
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(tmp) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3167 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3168 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
|
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 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
|
3171 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3172 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
|
3173 gtk_image_set_from_pixbuf(GTK_IMAGE(pixmap), tmp); |
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 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3176 gtk_image_set_from_pixbuf(GTK_IMAGE(handle), tmp); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3177 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3178 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3181 * 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
|
3182 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3183 * 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
|
3184 * 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
|
3185 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3186 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
|
3187 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3188 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
|
3189 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3190 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
|
3191 if(buffer) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3192 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
|
3193 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3194 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
|
3195 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3196 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
|
3197 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
|
3198 if(buffer) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3199 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
|
3200 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3201 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
|
3202 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
|
3203 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
|
3204 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
|
3205 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
|
3206 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
|
3207 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
|
3208 { |
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 * 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
|
3211 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3212 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
|
3213 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
|
3214 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
|
3215 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
|
3216 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
|
3217 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3218 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3219 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3220 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3221 * 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
|
3222 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3223 * 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
|
3224 * 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
|
3225 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3226 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
|
3227 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3228 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
|
3229 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
|
3230 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3231 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
|
3232 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3235 * 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
|
3236 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3237 * 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
|
3238 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3239 * 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
|
3240 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3241 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
|
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 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
|
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 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
|
3246 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3247 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
|
3248 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
|
3249 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3250 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
|
3251 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
3252 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
|
3253 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
|
3254 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
|
3255 } |
2264
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(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
|
3257 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
|
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 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
|
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 |
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 * 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
|
3264 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3265 * 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
|
3266 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3267 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
|
3268 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3269 gtk_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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3272 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3273 * 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
|
3274 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3275 * 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
|
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 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
|
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 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
|
3280 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3281 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3282 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3283 * 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
|
3284 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3285 * 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
|
3286 * 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
|
3287 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3288 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
|
3289 { |
2275
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
3290 if(handle && GTK_WIDGET(handle) && id) |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
3291 { |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
3292 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
|
3293 |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
3294 while(widget) |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
3295 { |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
3296 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
|
3297 return widget; |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
3298 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
|
3299 } |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
3300 } |
51cb73faab6e
GTK4: Implement dw_window_from_id().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2274
diff
changeset
|
3301 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
|
3302 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3303 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3304 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3305 * 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
|
3306 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3307 * 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
|
3308 * 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
|
3309 * 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
|
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 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
|
3312 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3313 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
|
3314 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3315 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
|
3316 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3317 GtkWidget *tmp = (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
|
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 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
|
3320 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3321 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
|
3322 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
|
3323 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3324 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
|
3325 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
|
3326 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
|
3327 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
|
3328 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
|
3329 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3330 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3331 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
|
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3335 * 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
|
3336 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3337 * 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
|
3338 * 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
|
3339 * 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
|
3340 * 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
|
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 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
|
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 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
|
3345 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3346 /* 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
|
3347 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
|
3348 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
|
3349 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
|
3350 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3351 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
|
3352 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3353 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
|
3354 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3355 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
|
3356 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
|
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 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
|
3359 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
|
3360 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
|
3361 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
|
3362 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
|
3363 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3364 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
|
3365 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
|
3366 } |
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 } |
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 * 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
|
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 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
|
3375 * 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
|
3376 * 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
|
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 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
|
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 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
|
3381 *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
|
3382 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
|
3383 *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
|
3384 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3385 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
|
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 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
|
3388 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3389 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
|
3390 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3391 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
|
3392 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3393 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
|
3394 *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
|
3395 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
|
3396 *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
|
3397 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3398 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3399 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3400 |
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 * 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
|
3403 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3404 * 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
|
3405 * 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
|
3406 * 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
|
3407 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3408 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
|
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 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
|
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 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
|
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(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
|
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 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
|
3417 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
|
3418 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3419 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
|
3420 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
|
3421 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
|
3422 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
|
3423 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3424 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3425 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3426 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3427 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3428 * 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
|
3429 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3430 * 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
|
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 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
|
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 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
|
3435 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3436 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
|
3437 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3438 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
|
3439 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3440 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
|
3441 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3442 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
|
3443 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3444 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
|
3445 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
|
3446 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3447 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3448 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3449 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3450 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3451 * 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
|
3452 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3453 * 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
|
3454 * 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
|
3455 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3456 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
|
3457 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3458 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
|
3459 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3460 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
|
3461 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3462 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
|
3463 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3464 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
|
3465 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
|
3466 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
|
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 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
|
3469 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
|
3470 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
|
3471 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
|
3472 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3473 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
|
3474 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
|
3475 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3476 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3477 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
|
3478 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
|
3479 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
|
3480 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3481 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3482 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3485 * 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
|
3486 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3487 * 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
|
3488 * 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
|
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 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
|
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(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
|
3493 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3494 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
|
3495 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3496 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
|
3497 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
|
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3502 * 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
|
3503 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3504 * 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
|
3505 * 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
|
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_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
|
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 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
|
3515 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3516 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3519 * 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
|
3520 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3521 * 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
|
3522 * 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
|
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 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3528 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3529 * 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
|
3530 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3531 * 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
|
3532 * 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
|
3533 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3534 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
|
3535 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3536 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
|
3537 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3538 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
|
3539 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3540 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
|
3541 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3542 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
|
3543 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
|
3544 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
|
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 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
|
3547 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
|
3548 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
|
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 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
|
3551 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
|
3552 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3553 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3554 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
|
3555 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
|
3556 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
|
3557 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
|
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 } |
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 |
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 * 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
|
3564 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3565 * 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
|
3566 * 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
|
3567 * 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
|
3568 * 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
|
3569 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3570 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
|
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 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
|
3573 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3574 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
|
3575 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3576 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
|
3577 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3578 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
|
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 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
|
3581 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
|
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 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
|
3584 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
|
3585 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
|
3586 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
|
3587 } |
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 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
|
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 |
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 * 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
|
3594 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3595 * 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
|
3596 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3597 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
|
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3602 * 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
|
3603 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3604 * 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
|
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_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
|
3607 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3608 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3609 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3610 /* 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
|
3611 * 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
|
3612 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3613 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
|
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 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
|
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 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
|
3618 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
|
3619 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3620 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
|
3621 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3624 * 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
|
3625 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3626 * 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
|
3627 * 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
|
3628 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3629 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
|
3630 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3631 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
|
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 /* 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
|
3634 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
|
3635 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3636 /* 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
|
3637 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
|
3638 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
|
3639 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3642 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3643 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3644 /* 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
|
3645 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
|
3646 /* 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
|
3647 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3650 |
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 * 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
|
3653 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3654 * 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
|
3655 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3656 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
|
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 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
|
3659 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
|
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 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
|
3662 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
|
3663 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3664 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
|
3665 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
|
3666 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3667 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
|
3668 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
|
3669 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3670 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
|
3671 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
|
3672 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3673 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
|
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 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
|
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 |
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 * 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
|
3680 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3681 * 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
|
3682 * 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
|
3683 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3684 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
|
3685 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3686 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
|
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 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
|
3689 return; |
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 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
|
3692 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
|
3693 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3694 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
|
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 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
|
3697 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
|
3698 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3699 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
|
3700 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3701 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3702 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3703 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3704 * 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
|
3705 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3706 * 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
|
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 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
|
3709 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3710 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
|
3711 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
|
3712 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3713 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
|
3714 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
|
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 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
|
3717 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
|
3718 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
|
3719 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
|
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 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
|
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 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
|
3726 * 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
|
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_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
|
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 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
|
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 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
|
3733 return; |
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 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
|
3736 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
|
3737 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3738 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
|
3739 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
|
3740 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
|
3741 } |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3744 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3745 * 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
|
3746 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3747 * 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
|
3748 * 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
|
3749 * 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
|
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 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
|
3752 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3753 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
|
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 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
|
3756 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3757 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3758 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
|
3759 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
|
3760 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3761 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
|
3762 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
|
3763 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
|
3764 } |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3767 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3768 * 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
|
3769 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3770 * 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
|
3771 * 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
|
3772 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3773 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
|
3774 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3775 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
|
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3779 * 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
|
3780 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3781 * 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
|
3782 * 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
|
3783 * 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
|
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 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
|
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 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
|
3788 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
|
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 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
|
3791 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
|
3792 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
|
3793 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3794 * 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
|
3795 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3796 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
|
3797 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
|
3798 } |
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 * 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
|
3802 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3803 * 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
|
3804 * 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
|
3805 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3806 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
|
3807 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3808 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
|
3809 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3810 |
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 * 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
|
3813 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3814 * 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
|
3815 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3816 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
|
3817 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3818 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
|
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 * 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
|
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 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
|
3825 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3826 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
|
3827 { |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
3828 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
|
3829 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
|
3830 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
|
3831 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3832 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3833 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3834 * 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
|
3835 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3836 * 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
|
3837 * 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
|
3838 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3839 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
|
3840 { |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
3841 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
|
3842 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
|
3843 else |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
3844 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
|
3845 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3846 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3847 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3848 * 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
|
3849 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3850 * 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
|
3851 * 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
|
3852 * 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
|
3853 * 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
|
3854 * 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
|
3855 * 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
|
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 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
|
3858 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3859 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
|
3860 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
|
3861 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
|
3862 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
|
3863 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
|
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 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
|
3866 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
|
3867 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3868 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
|
3869 && 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
|
3870 (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
|
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 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
|
3873 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
3874 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
|
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 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
|
3877 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
|
3878 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
|
3879 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3880 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
|
3881 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3882 |
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 * 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
|
3885 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3886 * 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
|
3887 * 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
|
3888 * 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
|
3889 * 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
|
3890 * 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
|
3891 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3892 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
|
3893 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3894 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
|
3895 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
|
3896 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
|
3897 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
|
3898 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
|
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 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
|
3901 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
|
3902 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3903 if((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
|
3904 && 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
|
3905 (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
|
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 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
|
3908 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
3909 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
|
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 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
|
3912 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
|
3913 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
|
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 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
|
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 |
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 * 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
|
3920 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3921 * 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
|
3922 * 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
|
3923 * 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
|
3924 * 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
|
3925 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3926 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
|
3927 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3928 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
|
3929 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
|
3930 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
|
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 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
|
3933 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3934 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3935 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
|
3936 && 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
|
3937 (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
|
3938 { |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
3939 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
|
3940 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3941 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
|
3942 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3943 } |
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 * 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
|
3947 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3948 * 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
|
3949 * 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
|
3950 * 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
|
3951 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3952 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
|
3953 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3954 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
|
3955 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
|
3956 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3957 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
|
3958 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3959 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3960 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
|
3961 && 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
|
3962 (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
|
3963 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
|
3964 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3965 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3966 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3967 * 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
|
3968 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3969 * 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
|
3970 * 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
|
3971 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3972 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
|
3973 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3974 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
|
3975 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
|
3976 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
|
3977 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3978 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
|
3979 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
|
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 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
|
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 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
|
3984 (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
|
3985 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
|
3986 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
|
3987 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3988 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
|
3989 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
|
3990 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
|
3991 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3992 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
|
3993 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3994 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3995 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3996 * 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
|
3997 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3998 * 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
|
3999 * 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
|
4000 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4001 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
|
4002 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4003 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
|
4004 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
|
4005 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
|
4006 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4007 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
|
4008 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
|
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 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
|
4011 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4012 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
|
4013 (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
|
4014 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4015 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
|
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 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
|
4018 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
|
4019 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4020 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
|
4021 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4022 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4023 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4024 * 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
|
4025 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4026 * 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
|
4027 * 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
|
4028 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4029 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
|
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 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
|
4032 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
|
4033 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
|
4034 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4035 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
|
4036 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
|
4037 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4038 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
|
4039 && 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
|
4040 (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
|
4041 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
|
4042 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
|
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4046 * 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
|
4047 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4048 * 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
|
4049 * 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
|
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_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
|
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 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4063 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
|
4064 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
|
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 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
|
4067 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
|
4068 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
|
4069 } |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4072 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
|
4073 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4074 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
|
4075 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
|
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 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
|
4078 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
|
4079 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
|
4080 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
|
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(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
|
4083 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4084 do { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4085 _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
|
4086 } 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
|
4087 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4088 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4089 |
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 * 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
|
4092 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4093 * 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
|
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 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
|
4096 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4097 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
|
4098 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
|
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 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
|
4101 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4102 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4103 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
|
4104 && 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
|
4105 (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
|
4106 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4107 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
|
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 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
|
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 do { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4112 _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
|
4113 } 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
|
4114 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4115 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
|
4116 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4117 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4118 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4119 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4120 * 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
|
4121 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4122 * 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
|
4123 * 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
|
4124 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4125 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
|
4126 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4127 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
|
4128 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
|
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 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
|
4131 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4132 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4133 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
|
4134 && 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
|
4135 (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
|
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 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
|
4138 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
|
4139 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
|
4140 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4141 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4142 |
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 * 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
|
4145 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4146 * 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
|
4147 * 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
|
4148 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4149 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
|
4150 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4151 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
|
4152 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
|
4153 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4154 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
|
4155 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4156 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4157 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
|
4158 && 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
|
4159 (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
|
4160 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4161 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
|
4162 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
|
4163 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4166 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4167 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4168 * 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
|
4169 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4170 * 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
|
4171 * 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
|
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 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
|
4174 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4175 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
|
4176 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
|
4177 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4178 if(!handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4179 return; |
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((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
|
4182 && 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
|
4183 (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
|
4184 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4185 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
|
4186 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
|
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 #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
|
4191 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4192 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
|
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 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
|
4195 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
|
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 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
|
4198 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
|
4199 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
|
4200 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
|
4201 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
|
4202 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4203 /* 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
|
4204 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
|
4205 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
|
4206 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4207 /* 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
|
4208 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
|
4209 /* 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
|
4210 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
|
4211 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
|
4212 /* 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
|
4213 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
|
4214 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4215 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
|
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 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
|
4218 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
|
4219 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4220 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
|
4221 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4222 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
|
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 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
|
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 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
|
4227 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4228 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
|
4229 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4230 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
|
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 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
|
4233 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4234 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
|
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 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
|
4237 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4238 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
|
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 /* 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
|
4242 store = gtk_list_store_newv(count + _DW_CONTAINER_STORE_EXTRA + 1, array); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4243 tree = _tree_setup(handle, 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
|
4244 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
|
4245 /* 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
|
4246 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
|
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 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
|
4249 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
|
4250 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
|
4251 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
|
4252 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
|
4253 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4254 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
|
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 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
|
4257 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
|
4258 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
|
4259 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
|
4260 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
|
4261 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
|
4262 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4263 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
|
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 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
|
4266 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
|
4267 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
|
4268 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4269 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
|
4270 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4271 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
|
4272 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
|
4273 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
|
4274 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
|
4275 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4276 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
|
4277 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4278 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
|
4279 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
|
4280 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
|
4281 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
|
4282 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4283 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
|
4284 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4285 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
|
4286 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
|
4287 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
|
4288 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
|
4289 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4290 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
|
4291 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4292 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
|
4293 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
|
4294 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
|
4295 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
|
4296 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4297 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
|
4298 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
|
4299 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
|
4300 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
|
4301 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
|
4302 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4303 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
|
4304 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
|
4305 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
|
4306 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4307 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
|
4308 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4309 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
|
4310 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
|
4311 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
|
4312 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4313 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
|
4314 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4315 /* 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
|
4316 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
|
4317 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
|
4318 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
|
4319 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
|
4320 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
|
4321 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4322 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
|
4323 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4324 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4325 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4326 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
|
4327 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4328 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
|
4329 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
|
4330 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
|
4331 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
|
4332 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
|
4333 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4336 * 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
|
4337 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4338 * 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
|
4339 * 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
|
4340 * 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
|
4341 * 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
|
4342 * 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
|
4343 * (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
|
4344 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4345 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
|
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 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
|
4348 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4349 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4350 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4351 * 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
|
4352 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4353 * 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
|
4354 * 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
|
4355 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4356 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
|
4357 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4358 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
|
4359 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4360 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
|
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 |
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 * 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
|
4365 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4366 * 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
|
4367 * 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
|
4368 * 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
|
4369 * 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
|
4370 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4371 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
|
4372 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4373 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
|
4374 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
|
4375 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
|
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 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
|
4378 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
|
4379 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4380 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
|
4381 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
|
4382 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4383 _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
|
4384 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4385 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
|
4386 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4387 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
|
4388 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
|
4389 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4390 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
|
4391 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
|
4392 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
|
4393 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4394 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4395 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4396 * 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
|
4397 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4398 * 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
|
4399 * 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
|
4400 * 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
|
4401 * 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
|
4402 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4403 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
|
4404 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4405 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
|
4406 } |
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 /* 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
|
4409 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
|
4410 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4411 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
|
4412 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4413 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
|
4414 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
|
4415 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4416 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
|
4417 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4418 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
|
4419 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
|
4420 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
|
4421 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4422 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4423 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
|
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 |
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 * 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
|
4428 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4429 * 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
|
4430 * 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
|
4431 * (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
|
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 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
|
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 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
|
4436 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
|
4437 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4438 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
|
4439 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
|
4440 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4441 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
|
4442 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4443 /* 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
|
4444 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
|
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 /* 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
|
4447 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
|
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 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
|
4450 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
|
4451 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
|
4452 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4453 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
|
4454 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4455 } |
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 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
|
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 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
|
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 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
|
4464 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4465 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4466 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4467 * 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
|
4468 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4469 * 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
|
4470 * 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
|
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 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
|
4473 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4474 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
|
4475 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
|
4476 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
|
4477 |
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 * 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
|
4480 * 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
|
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 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
|
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 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
|
4485 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
|
4486 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4487 /* 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
|
4488 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
|
4489 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
|
4490 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
|
4491 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
|
4492 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
|
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4496 * 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
|
4497 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4498 * 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
|
4499 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4500 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
|
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 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
|
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 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
|
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 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
|
4507 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4508 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4511 * 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
|
4512 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4513 * 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
|
4514 * 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
|
4515 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4516 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
|
4517 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4518 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
|
4519 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
|
4520 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
|
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 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
|
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 /* 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
|
4525 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
|
4526 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
|
4527 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4528 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
|
4529 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4530 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
|
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 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
|
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 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
|
4535 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4536 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
|
4537 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4538 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
|
4539 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
|
4540 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4541 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
|
4542 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4543 |
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 * 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
|
4546 * 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
|
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 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
|
4549 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4550 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
|
4551 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
|
4552 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
|
4553 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
|
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 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
|
4556 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4557 /* 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
|
4558 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
|
4559 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
|
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 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
|
4562 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4563 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
|
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 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
|
4566 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
|
4567 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
|
4568 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4569 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4572 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
|
4573 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4574 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
|
4575 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4576 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
|
4577 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
|
4578 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
|
4579 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
|
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 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
|
4582 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
|
4583 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4584 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
|
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 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
|
4587 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
|
4588 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4589 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
|
4590 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4591 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
|
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 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
|
4594 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
|
4595 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4596 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
|
4597 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4598 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
|
4599 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4600 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
|
4601 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4602 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
|
4603 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4604 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
|
4605 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4606 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
|
4607 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
|
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 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
|
4610 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
|
4611 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
|
4612 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
|
4613 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4614 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
|
4615 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4616 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
|
4617 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4618 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
|
4619 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4620 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
|
4621 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4622 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
|
4623 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
|
4624 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4625 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
|
4626 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
|
4627 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
|
4628 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
|
4629 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4630 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
|
4631 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4632 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
|
4633 } |
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 } |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4638 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4639 * 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
|
4640 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4641 * 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
|
4642 * 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
|
4643 * 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
|
4644 * 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
|
4645 * 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
|
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 _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
|
4650 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4651 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4652 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4653 * 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
|
4654 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4655 * 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
|
4656 * 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
|
4657 * 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
|
4658 * 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
|
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 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
|
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 _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
|
4663 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4664 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4665 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4666 * 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
|
4667 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4668 * handle: Handle to the 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
|
4669 * 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
|
4670 * 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
|
4671 * 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
|
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 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
|
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 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
|
4676 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4677 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4678 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4679 * 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
|
4680 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4681 * 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
|
4682 * 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
|
4683 * 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
|
4684 * 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
|
4685 * 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
|
4686 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4687 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
|
4688 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4689 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
|
4690 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4693 * 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
|
4694 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4695 * 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
|
4696 * 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
|
4697 * 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
|
4698 * 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
|
4699 * 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
|
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 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
|
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 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
|
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 _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
|
4706 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4709 * 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
|
4710 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4711 * 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
|
4712 * 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
|
4713 * 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
|
4714 * 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
|
4715 * 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
|
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 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
|
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 _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
|
4720 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4721 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4722 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4723 * 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
|
4724 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4725 * 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
|
4726 * 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
|
4727 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4728 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
|
4729 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4730 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
|
4731 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
|
4732 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
|
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 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
|
4735 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
|
4736 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
|
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 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
|
4739 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
|
4740 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4741 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
|
4742 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
|
4743 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
|
4744 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
|
4745 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
|
4746 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
|
4747 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
|
4748 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
|
4749 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
|
4750 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
|
4751 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4752 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
|
4753 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
|
4754 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4755 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4756 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4757 * 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
|
4758 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4759 * 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
|
4760 * 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
|
4761 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4762 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
|
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 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
|
4765 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4766 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4767 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4768 * 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
|
4769 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4770 * 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
|
4771 * 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
|
4772 * 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
|
4773 * 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
|
4774 * 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
|
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 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4779 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4780 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4781 * 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
|
4782 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4783 * 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
|
4784 * 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
|
4785 * 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
|
4786 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4787 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
|
4788 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4789 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
|
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 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
|
4792 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4793 /* 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
|
4794 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
|
4795 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4796 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
|
4797 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4798 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
|
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 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
|
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 } |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4805 /* 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
|
4806 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
|
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 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
|
4809 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
|
4810 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4811 /* 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
|
4812 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
|
4813 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
|
4814 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4815 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
|
4816 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4817 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
|
4818 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4819 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
|
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 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
|
4822 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4823 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4824 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
|
4825 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4826 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
|
4827 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4828 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4829 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4830 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4831 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4832 * 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
|
4833 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4834 * 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
|
4835 * 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
|
4836 * 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
|
4837 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4838 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
|
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 _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
|
4841 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4842 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4843 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4844 * 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
|
4845 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4846 * 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
|
4847 * 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
|
4848 * 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
|
4849 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4850 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
|
4851 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4852 _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
|
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 * 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
|
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 * 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
|
4859 * 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
|
4860 * 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
|
4861 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4862 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
|
4863 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4864 _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
|
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4868 * 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
|
4869 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4870 * 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
|
4871 * 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
|
4872 * 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
|
4873 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4874 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
|
4875 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4876 _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
|
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 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
|
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 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
|
4883 * 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
|
4884 * 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
|
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_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
|
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 /* 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
|
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 |
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 * 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
|
4893 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4894 * 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
|
4895 * 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
|
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 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
|
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 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
|
4900 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
|
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 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
|
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 /* 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
|
4905 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
|
4906 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
|
4907 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4908 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
|
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 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
|
4911 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
|
4912 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4913 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
|
4914 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4915 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
|
4916 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4917 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
|
4918 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4921 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
|
4922 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
|
4923 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4924 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
|
4925 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4926 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
|
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 * 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
|
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 * 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
|
4934 * 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
|
4935 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4936 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
|
4937 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4938 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
|
4939 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
|
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 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
|
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 /* 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
|
4944 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
|
4945 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
|
4946 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4947 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
|
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 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
|
4950 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
|
4951 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4952 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4956 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4957 * 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
|
4958 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4959 * 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
|
4960 * 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
|
4961 * 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
|
4962 * 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
|
4963 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4964 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
|
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 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
|
4967 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4968 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
|
4969 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4970 /* 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
|
4971 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
|
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 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
|
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 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
|
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 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
|
4978 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
|
4979 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
|
4980 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
|
4981 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
|
4982 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4983 /* 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
|
4984 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
|
4985 return; |
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 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
|
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 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
|
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 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
|
4992 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4993 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
|
4994 break; |
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 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
|
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 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
|
4999 break; |
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 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
|
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 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
|
5004 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
|
5005 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5006 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
|
5007 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5008 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
|
5009 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5010 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5011 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
|
5012 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5013 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
|
5014 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
|
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 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
|
5017 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5018 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
|
5019 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5020 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5021 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5022 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5023 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5024 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5025 |
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 * 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
|
5028 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5029 * 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
|
5030 * 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
|
5031 * 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
|
5032 * 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
|
5033 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5034 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
|
5035 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5036 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
|
5037 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
|
5038 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
|
5039 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
|
5040 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5041 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
|
5042 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5043 /* 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
|
5044 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
|
5045 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
|
5046 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5047 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
|
5048 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5049 /* 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
|
5050 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
|
5051 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5052 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
|
5053 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
|
5054 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
|
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 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
|
5057 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5058 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
|
5059 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5060 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
|
5061 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5062 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
|
5063 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5064 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
|
5065 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5066 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
|
5067 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5068 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
|
5069 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
|
5070 } |
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5073 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
|
5074 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5077 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
|
5078 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5079 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
|
5080 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5081 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
|
5082 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
|
5083 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5084 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
|
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 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
|
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 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
|
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 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5093 else |
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 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
|
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 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
|
5098 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5099 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
|
5100 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5103 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5104 /* 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
|
5105 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
|
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 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
|
5108 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
|
5109 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
|
5110 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5111 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
|
5112 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5113 |
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 * 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
|
5116 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5117 * 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
|
5118 * 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
|
5119 * 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
|
5120 * 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
|
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 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
|
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 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
|
5125 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
|
5126 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
|
5127 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
|
5128 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5129 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
|
5130 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5131 /* 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
|
5132 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
|
5133 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
|
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 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
|
5136 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5137 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
|
5138 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
|
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 /* 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
|
5141 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
|
5142 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5143 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
|
5144 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
|
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(list) |
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 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
|
5149 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5150 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
|
5151 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5152 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
|
5153 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5154 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
|
5155 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5156 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
|
5157 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5158 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
|
5159 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5160 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
|
5161 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
|
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 } |
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 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
|
5166 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
|
5167 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5168 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5169 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
|
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 /* 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
|
5172 * 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
|
5173 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5174 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
|
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 |
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 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
|
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 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
|
5181 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5182 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
|
5183 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
|
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 } |
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 /* 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
|
5188 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
|
5189 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5190 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
|
5191 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
|
5192 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
|
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 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5197 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
|
5198 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5199 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
|
5200 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
|
5201 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
|
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 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
|
5204 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5205 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
|
5206 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5207 /* 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
|
5208 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
|
5209 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
|
5210 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5211 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
|
5212 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
|
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 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
|
5215 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
|
5216 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5217 } |
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 retval; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5219 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5220 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5221 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5226 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
|
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 /* 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
|
5229 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
|
5230 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
|
5231 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5232 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
|
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 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
|
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 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
|
5237 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5238 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
|
5239 |
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(path) |
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 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
|
5243 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5246 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5247 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5248 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5249 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5250 * 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
|
5251 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5252 * 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
|
5253 * 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
|
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 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
|
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 _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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5260 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5261 * 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
|
5262 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5263 * 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
|
5264 * 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
|
5265 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5266 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
|
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 _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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5271 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
|
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 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
|
5274 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
|
5275 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5276 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
|
5277 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5278 /* 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
|
5279 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
|
5280 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
|
5281 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5282 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
|
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 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
|
5285 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
|
5286 |
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(_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
|
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 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
|
5290 rows--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5291 } |
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 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
|
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 |
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 * 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
|
5299 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5300 * 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
|
5301 * 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
|
5302 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5303 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
|
5304 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5305 _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
|
5306 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5307 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5308 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5309 * 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
|
5310 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5311 * 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
|
5312 * 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
|
5313 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5314 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
|
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 _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
|
5317 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5318 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5319 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5320 * 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
|
5321 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5322 * 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
|
5323 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5324 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
|
5325 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5326 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
|
5327 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5328 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
|
5329 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5330 /* 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
|
5331 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
|
5332 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
|
5333 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5334 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5335 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5336 * 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
|
5337 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5338 * 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
|
5339 * 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
|
5340 * 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
|
5341 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5342 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
|
5343 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5344 /* 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
|
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 * 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
|
5349 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5350 * 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
|
5351 * 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
|
5352 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5353 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
|
5354 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5355 /* 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
|
5356 } |
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 * 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
|
5360 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5361 * 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
|
5362 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5363 * 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
|
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 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
|
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 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
|
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 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
|
5370 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
|
5371 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
|
5372 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
|
5373 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
|
5374 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
|
5375 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5378 /* 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
|
5379 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
|
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(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
|
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 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
|
5384 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
|
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 (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
|
5387 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
|
5388 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
|
5389 } |
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 /* 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
|
5392 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5393 * 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
|
5394 * 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
|
5395 * 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
|
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 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
|
5398 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5399 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
|
5400 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
|
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 *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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5405 /* 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
|
5406 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5407 * 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
|
5408 * 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
|
5409 * 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
|
5410 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5411 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
|
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 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
|
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 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
|
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 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
|
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 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
|
5420 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
|
5421 } |
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 else |
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 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
|
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 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
|
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 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
|
5430 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
|
5431 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5432 *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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5436 /* 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
|
5437 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5438 * 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
|
5439 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5440 * 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
|
5441 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5442 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
|
5443 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5444 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
|
5445 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
|
5446 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
|
5447 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
|
5448 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5449 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
|
5450 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
|
5451 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
|
5452 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5453 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
|
5454 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
|
5455 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5456 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
|
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 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
|
5459 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
|
5460 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5461 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
|
5462 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
|
5463 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
|
5464 } |
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 /* 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
|
5467 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5468 * 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
|
5469 * 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
|
5470 * 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
|
5471 * 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
|
5472 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5473 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
|
5474 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5475 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
|
5476 GdkDrawContext *dc = NULL; |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5477 const cairo_region_t *clip = 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
|
5478 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5479 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
|
5480 { |
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
|
5481 GtkNative *native = gtk_widget_get_native(handle); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5482 GdkSurface *surface = gtk_native_get_surface(native); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5483 |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5484 if((dc = GDK_DRAW_CONTEXT(gdk_surface_create_cairo_context(surface)))) |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5485 { |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5486 clip = gdk_draw_context_get_frame_region(dc); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5487 gdk_draw_context_begin_frame(dc, clip); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5488 cr = gdk_cairo_context_cairo_create(GDK_CAIRO_CONTEXT(dc)); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5489 } |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5490 else |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5491 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5492 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5493 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
|
5494 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
|
5495 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
|
5496 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5497 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
|
5498 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5499 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
|
5500 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
|
5501 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
|
5502 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
|
5503 /* 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
|
5504 * 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
|
5505 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5506 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
|
5507 gdk_draw_context_end_frame(dc); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5508 else |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5509 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
|
5510 } |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5513 /* 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
|
5514 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5515 * 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
|
5516 * 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
|
5517 * 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
|
5518 * 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
|
5519 * 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
|
5520 * 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
|
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 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
|
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 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
|
5525 GdkDrawContext *dc = NULL; |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5526 const cairo_region_t *clip = 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
|
5527 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5528 if(handle) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5529 { |
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
|
5530 GtkNative *native = gtk_widget_get_native(handle); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5531 GdkSurface *surface = gtk_native_get_surface(native); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5532 |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5533 if((dc = GDK_DRAW_CONTEXT(gdk_surface_create_cairo_context(surface)))) |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5534 { |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5535 clip = gdk_draw_context_get_frame_region(dc); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5536 gdk_draw_context_begin_frame(dc, clip); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5537 cr = gdk_cairo_context_cairo_create(GDK_CAIRO_CONTEXT(dc)); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5538 } |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5539 else |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5540 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5541 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5542 else if(pixmap) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5543 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
|
5544 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
|
5545 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5546 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
|
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 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
|
5549 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
|
5550 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
|
5551 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
|
5552 cairo_stroke(cr); |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5553 /* 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
|
5554 * 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
|
5555 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5556 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
|
5557 gdk_draw_context_end_frame(dc); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5558 else |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5559 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
|
5560 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5561 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5562 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5563 /* 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
|
5564 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5565 * handle: Handle to the 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 * 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
|
5567 * 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
|
5568 * 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
|
5569 * 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
|
5570 * 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
|
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_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
|
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; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5575 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
|
5576 GdkDrawContext *dc = NULL; |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5577 const cairo_region_t *clip = 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
|
5578 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5579 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
|
5580 { |
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
|
5581 GtkNative *native = gtk_widget_get_native(handle); |
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 GdkSurface *surface = gtk_native_get_surface(native); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5583 |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5584 if((dc = GDK_DRAW_CONTEXT(gdk_surface_create_cairo_context(surface)))) |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5585 { |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5586 clip = gdk_draw_context_get_frame_region(dc); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5587 gdk_draw_context_begin_frame(dc, clip); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5588 cr = gdk_cairo_context_cairo_create(GDK_CAIRO_CONTEXT(dc)); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5589 } |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5590 else |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5591 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5592 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5593 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
|
5594 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
|
5595 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
|
5596 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5597 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
|
5598 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5599 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
|
5600 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
|
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 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
|
5603 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
|
5604 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
|
5605 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
|
5606 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5607 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
|
5608 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5609 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
|
5610 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
|
5611 cairo_stroke(cr); |
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 /* 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
|
5613 * 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
|
5614 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5615 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
|
5616 gdk_draw_context_end_frame(dc); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5617 else |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5618 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
|
5619 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5620 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5621 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5622 /* 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
|
5623 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5624 * 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
|
5625 * 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
|
5626 * 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
|
5627 * 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
|
5628 * 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
|
5629 * 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
|
5630 * 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
|
5631 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5632 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
|
5633 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5634 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
|
5635 GdkDrawContext *dc = NULL; |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5636 const cairo_region_t *clip = 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
|
5637 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5638 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
|
5639 { |
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
|
5640 GtkNative *native = gtk_widget_get_native(handle); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5641 GdkSurface *surface = gtk_native_get_surface(native); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5642 |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5643 if((dc = GDK_DRAW_CONTEXT(gdk_surface_create_cairo_context(surface)))) |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5644 { |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5645 clip = gdk_draw_context_get_frame_region(dc); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5646 gdk_draw_context_begin_frame(dc, clip); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5647 cr = gdk_cairo_context_cairo_create(GDK_CAIRO_CONTEXT(dc)); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5648 } |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5649 else |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5650 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5651 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5652 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
|
5653 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
|
5654 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
|
5655 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5656 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
|
5657 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5658 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
|
5659 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
|
5660 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5661 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
|
5662 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
|
5663 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
|
5664 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
|
5665 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
|
5666 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
|
5667 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
|
5668 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
|
5669 cairo_stroke(cr); |
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
|
5670 /* 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
|
5671 * 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
|
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 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
|
5674 gdk_draw_context_end_frame(dc); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5675 else |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5676 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
|
5677 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5678 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5679 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5680 /* 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
|
5681 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5682 * 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
|
5683 * 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
|
5684 * 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
|
5685 * 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
|
5686 * 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
|
5687 * 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
|
5688 * 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
|
5689 * 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
|
5690 * 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
|
5691 * 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
|
5692 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5693 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
|
5694 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5695 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
|
5696 GdkDrawContext *dc = NULL; |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5697 const cairo_region_t *clip = 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
|
5698 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5699 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
|
5700 { |
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
|
5701 GtkNative *native = gtk_widget_get_native(handle); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5702 GdkSurface *surface = gtk_native_get_surface(native); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5703 |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5704 if((dc = GDK_DRAW_CONTEXT(gdk_surface_create_cairo_context(surface)))) |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5705 { |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5706 clip = gdk_draw_context_get_frame_region(dc); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5707 gdk_draw_context_begin_frame(dc, clip); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5708 cr = gdk_cairo_context_cairo_create(GDK_CAIRO_CONTEXT(dc)); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5709 } |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5710 else |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5711 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5712 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5713 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
|
5714 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
|
5715 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
|
5716 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5717 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
|
5718 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
|
5719 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
|
5720 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5721 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
|
5722 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
|
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 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
|
5725 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
|
5726 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
|
5727 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
|
5728 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
|
5729 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
|
5730 else |
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 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
|
5733 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
|
5734 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
|
5735 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
|
5736 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
|
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 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
|
5739 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5740 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
|
5741 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
|
5742 cairo_stroke(cr); |
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
|
5743 /* 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
|
5744 * 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
|
5745 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5746 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
|
5747 gdk_draw_context_end_frame(dc); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5748 else |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5749 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5752 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5753 /* 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
|
5754 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5755 * 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
|
5756 * 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
|
5757 * 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
|
5758 * 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
|
5759 * 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
|
5760 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5761 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
|
5762 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5763 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
|
5764 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
|
5765 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
|
5766 GdkDrawContext *dc = NULL; |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5767 const cairo_region_t *clip = 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
|
5768 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5769 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
|
5770 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5771 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5772 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
|
5773 { |
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
|
5774 GtkNative *native = gtk_widget_get_native(handle); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5775 GdkSurface *surface = gtk_native_get_surface(native); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5776 |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5777 if((dc = GDK_DRAW_CONTEXT(gdk_surface_create_cairo_context(surface)))) |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5778 { |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5779 clip = gdk_draw_context_get_frame_region(dc); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5780 gdk_draw_context_begin_frame(dc, clip); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5781 cr = gdk_cairo_context_cairo_create(GDK_CAIRO_CONTEXT(dc)); |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5782 } |
70d666a0636f
GTK4: Update dw_draw_*() to use the new APIs to draw onto widgets...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2278
diff
changeset
|
5783 else |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5784 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5785 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
|
5786 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
|
5787 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5788 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
|
5789 { |
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(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
|
5791 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
|
5792 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
|
5793 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
|
5794 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
|
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(cr) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5797 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5798 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
|
5799 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
|
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 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
|
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 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
|
5804 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5805 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
|
5806 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5807 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
|
5808 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5809 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
|
5810 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
|
5811 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5812 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
|
5813 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
|
5814 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5815 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
|
5816 /* 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
|
5817 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
|
5818 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5819 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
|
5820 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
|
5821 (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
|
5822 (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
|
5823 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
|
5824 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5825 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
|
5826 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5827 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
|
5828 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
|
5829 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5830 /* 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
|
5831 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
|
5832 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
|
5833 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5834 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
|
5835 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5836 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
|
5837 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5838 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
|
5839 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5840 /* 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
|
5841 * 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
|
5842 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5843 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
|
5844 gdk_draw_context_end_frame(dc); |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5845 else |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5846 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
|
5847 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5848 } |
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 /* 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
|
5851 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5852 * 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
|
5853 * 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
|
5854 * 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
|
5855 * 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
|
5856 * 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
|
5857 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5858 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
|
5859 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5860 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
|
5861 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
|
5862 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
|
5863 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5864 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
|
5865 return; |
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 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
|
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 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
|
5870 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
|
5871 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5872 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
|
5873 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5876 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
|
5877 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5878 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
|
5879 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
|
5880 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
|
5881 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
|
5882 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5883 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5884 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
|
5885 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
|
5886 { |
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
|
5887 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
|
5888 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5889 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
|
5890 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5891 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
|
5892 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5893 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
|
5894 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5895 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
|
5896 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5897 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
|
5898 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
|
5899 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
|
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(width) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5902 *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
|
5903 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
|
5904 *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
|
5905 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5906 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
|
5907 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5908 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
|
5909 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5910 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
|
5911 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5912 if(free_fontname) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
5913 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
|
5914 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5915 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5916 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5917 * 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
|
5918 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5919 * 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
|
5920 * 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
|
5921 * 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
|
5922 * 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
|
5923 * 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
|
5924 * 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
|
5925 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5926 * 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
|
5927 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5928 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
|
5929 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5930 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
|
5931 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5932 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
|
5933 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
|
5934 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5935 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
|
5936 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
|
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 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5941 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
|
5942 /* 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
|
5943 * 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
|
5944 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5945 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
|
5946 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
|
5947 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
|
5948 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5949 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5950 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5951 * 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
|
5952 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5953 * 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
|
5954 * 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
|
5955 * 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
|
5956 * (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
|
5957 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5958 * 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
|
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 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
|
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 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
|
5963 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
|
5964 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
|
5965 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
|
5966 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5967 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
|
5968 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
|
5969 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5970 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
|
5971 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5972 /* 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
|
5973 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
|
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 /* 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
|
5976 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
|
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 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
|
5979 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
|
5980 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
|
5981 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5982 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
|
5983 break; |
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5986 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
|
5987 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5988 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
|
5989 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
|
5990 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5991 } |
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 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
|
5994 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
|
5995 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
|
5996 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
|
5997 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
|
5998 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
|
5999 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6000 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6001 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6002 * 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
|
6003 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6004 * 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
|
6005 * 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
|
6006 * 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
|
6007 * (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
|
6008 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6009 * 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
|
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 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
|
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 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
|
6014 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
|
6015 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
|
6016 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6017 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
|
6018 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
|
6019 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6020 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6021 * 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
|
6022 * 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
|
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((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
|
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 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
|
6027 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
|
6028 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6029 /* 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
|
6030 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
|
6031 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
|
6032 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
|
6033 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
|
6034 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
|
6035 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
|
6036 /* 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
|
6037 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
|
6038 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
|
6039 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
|
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 |
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 * 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
|
6044 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6045 * 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
|
6046 * 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
|
6047 * 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
|
6048 * 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
|
6049 * 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
|
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 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
|
6052 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6053 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6054 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6055 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6056 * 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
|
6057 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6058 * 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
|
6059 * 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
|
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_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
|
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 |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
6070 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
|
6071 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6074 /* 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
|
6075 * 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
|
6076 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6077 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
|
6078 { |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6081 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6082 * 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
|
6083 * 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
|
6084 * 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
|
6085 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6086 * 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
|
6087 * 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
|
6088 * 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
|
6089 * Returns: |
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_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
|
6091 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6092 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
|
6093 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6094 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
|
6095 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6096 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
|
6097 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6098 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
|
6099 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6100 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
|
6101 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
|
6102 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
|
6103 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6104 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
|
6105 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6108 * 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
|
6109 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6110 * 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
|
6111 * 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
|
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 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
|
6114 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6115 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
|
6116 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
|
6117 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
|
6118 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
|
6119 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
|
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 |
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 * 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
|
6124 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6125 * 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
|
6126 * 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
|
6127 * 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
|
6128 * 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
|
6129 * 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
|
6130 * 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
|
6131 * 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
|
6132 * 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
|
6133 * 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
|
6134 * 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
|
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 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
|
6137 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6138 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
|
6139 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6140 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6141 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6142 * 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
|
6143 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6144 * 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
|
6145 * 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
|
6146 * 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
|
6147 * 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
|
6148 * 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
|
6149 * 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
|
6150 * 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
|
6151 * 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
|
6152 * 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
|
6153 * 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
|
6154 * 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
|
6155 * 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
|
6156 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6157 * 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
|
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 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
|
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 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
|
6162 int retval = 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
|
6163 GdkDrawingContext *dc = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6164 cairo_region_t *clip = NULL; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6165 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6166 if((!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
|
6167 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
|
6168 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6169 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
|
6170 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6171 /* 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
|
6172 #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
|
6173 GdkWindow *window = gtk_widget_get_window(dest); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6174 /* Safety check for non-existant windows */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6175 if(!window || !GDK_IS_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
|
6176 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
|
6177 clip = gdk_window_get_clip_region(window); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6178 dc = gdk_window_begin_draw_frame(window, clip); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6179 cr = gdk_drawing_context_get_cairo_context(dc); |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6180 #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
|
6181 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6182 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
|
6183 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
|
6184 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6185 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
|
6186 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6187 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
|
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 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
|
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 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
|
6192 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
|
6193 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
|
6194 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6195 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6196 if(src) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6197 ; |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6198 #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
|
6199 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
|
6200 #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
|
6201 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
|
6202 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
|
6203 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6204 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
|
6205 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
|
6206 if(clip) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6207 cairo_region_destroy(clip); |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6208 /* 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
|
6209 #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
|
6210 /* 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
|
6211 * 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
|
6212 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6213 if(dc) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6214 gdk_window_end_draw_frame(gtk_widget_get_window(dest), dc); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6215 else |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6216 #else |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6217 if(!dc) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
6218 #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
|
6219 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
|
6220 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
|
6221 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6222 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
|
6223 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6224 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6225 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6226 * 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
|
6227 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6228 * 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
|
6229 * 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
|
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 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
|
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 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
|
6234 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6235 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6236 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
|
6237 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6238 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
|
6239 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6240 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
|
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 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
|
6243 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
|
6244 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6245 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6246 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6247 /* 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
|
6248 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6249 * 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
|
6250 * 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
|
6251 * 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
|
6252 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6253 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
|
6254 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6255 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
|
6256 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
|
6257 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
|
6258 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6259 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6260 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
|
6261 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
|
6262 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6263 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
|
6264 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
|
6265 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6266 /* 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
|
6267 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
|
6268 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6269 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
|
6270 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
|
6271 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6272 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
|
6273 _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
|
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 *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
|
6276 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
|
6277 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6278 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
|
6279 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
|
6280 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
|
6281 *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
|
6282 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6283 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6284 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
|
6285 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6286 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
|
6287 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6288 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6289 /* 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
|
6290 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6291 * 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
|
6292 * 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
|
6293 * 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
|
6294 * 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
|
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 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
|
6297 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6298 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
|
6299 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
|
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(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
|
6302 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
|
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 *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
|
6305 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
|
6306 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6307 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6308 /* 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
|
6309 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6310 * 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
|
6311 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6312 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
|
6313 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6314 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
|
6315 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
|
6316 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
|
6317 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6318 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6319 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6320 * 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
|
6321 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6322 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
|
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 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
|
6325 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6326 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
|
6327 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
|
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 |
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 * 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
|
6332 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6333 * 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
|
6334 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6335 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
|
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 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
|
6338 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6339 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
|
6340 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
|
6341 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6342 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6343 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6344 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6345 * 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
|
6346 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6347 * 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
|
6348 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6349 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
|
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 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
|
6352 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6353 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6354 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6355 * 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
|
6356 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6357 * 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
|
6358 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6359 * 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
|
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 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
|
6362 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6363 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
|
6364 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
|
6365 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
|
6366 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6369 * 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
|
6370 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6371 * 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
|
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 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
|
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 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6378 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6379 * Returns 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
|
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 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
|
6382 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6383 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
|
6384 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6385 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
|
6386 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
|
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 /* 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
|
6389 * 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
|
6390 * 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
|
6391 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6392 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
|
6393 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
|
6394 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
|
6395 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6396 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
|
6397 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
|
6398 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
|
6399 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6400 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
|
6401 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6402 |
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 * 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
|
6405 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6406 * 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
|
6407 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6408 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
|
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 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
|
6411 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
|
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 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
|
6414 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
|
6415 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
|
6416 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
|
6417 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
|
6418 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
|
6419 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6420 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6421 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6422 * 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
|
6423 * 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
|
6424 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6425 * 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
|
6426 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6427 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
|
6428 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6429 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
|
6430 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
|
6431 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6432 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
|
6433 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
|
6434 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
|
6435 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
|
6436 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
|
6437 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6438 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6439 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6440 * 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
|
6441 * 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
|
6442 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6443 * 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
|
6444 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6445 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
|
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 rc; |
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(!eve) |
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 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
|
6451 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6452 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
|
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 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
|
6455 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6456 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
|
6457 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6460 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
|
6461 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6462 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
|
6463 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
|
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 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
|
6466 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
|
6467 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
|
6468 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
|
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 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6471 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
|
6472 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6473 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
|
6474 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
|
6475 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
|
6476 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
|
6477 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
|
6478 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6481 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6482 * 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
|
6483 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6484 * 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
|
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 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
|
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 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
|
6489 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
|
6490 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6491 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
|
6492 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
|
6493 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
|
6494 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
|
6495 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
|
6496 *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
|
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 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
|
6499 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6500 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6501 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
|
6502 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
|
6503 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
|
6504 }; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6505 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6506 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
|
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 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
|
6509 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
|
6510 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
|
6511 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
|
6512 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
|
6513 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
|
6514 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6515 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
|
6516 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
|
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 /* problems */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6519 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
|
6520 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6521 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
|
6522 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6523 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6524 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6525 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
|
6526 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
|
6527 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6528 /* 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
|
6529 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
|
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 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
|
6532 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6533 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
|
6534 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
|
6535 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
|
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 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
|
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 /* 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
|
6540 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
|
6541 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6542 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
|
6543 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
|
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 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
|
6546 } |
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 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
|
6549 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6550 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
|
6551 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6552 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6553 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6554 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
|
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 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
|
6557 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
|
6558 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6559 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
|
6560 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6561 /* 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
|
6562 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
|
6563 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
|
6564 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6565 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
|
6566 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
|
6567 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6568 connectcount++; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6569 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6570 /* 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
|
6571 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
|
6572 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6576 /* 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
|
6577 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
|
6578 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6579 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
|
6580 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6581 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
|
6582 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6583 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
|
6584 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6585 /* 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
|
6586 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
|
6587 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
|
6588 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
|
6589 else |
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 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
|
6592 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
|
6593 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
|
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 connectcount--; |
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 /* 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
|
6598 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
|
6599 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
|
6600 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6601 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
|
6602 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6603 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
|
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 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
|
6606 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6607 /* Reset */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6608 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
|
6609 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6610 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6611 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
|
6612 /* Post */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6613 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6614 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
|
6615 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
|
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 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
|
6618 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6619 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
|
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 /* 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
|
6622 * 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
|
6623 * continue. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6624 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6625 if(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
|
6626 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
|
6627 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6628 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6629 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6630 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
|
6631 /* Wait */ |
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 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
|
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 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
|
6636 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6637 /* 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
|
6638 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
|
6639 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
|
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 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6642 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
|
6643 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6644 /* 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
|
6645 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
|
6646 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6647 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6648 } |
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6651 } |
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6654 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6655 /* 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
|
6656 /* 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
|
6657 * 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
|
6658 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6659 * 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
|
6660 * 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
|
6661 * 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
|
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 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
|
6664 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6665 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
|
6666 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
|
6667 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
|
6668 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6669 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
|
6670 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
|
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 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
|
6673 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
|
6674 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
|
6675 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
|
6676 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
|
6677 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
|
6678 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
|
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 /* 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
|
6681 * 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
|
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 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
|
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 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
|
6686 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
|
6687 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
|
6688 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
|
6689 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6690 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
|
6691 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6692 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
|
6693 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
|
6694 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
|
6695 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
|
6696 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
|
6697 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
|
6698 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
|
6699 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
|
6700 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6701 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6702 /* 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
|
6703 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
|
6704 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
|
6705 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6706 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6707 /* 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
|
6708 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6709 * 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
|
6710 * 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
|
6711 * 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
|
6712 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6713 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
|
6714 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6715 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
|
6716 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
|
6717 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
|
6718 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
|
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 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
|
6721 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
|
6722 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
|
6723 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
|
6724 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
|
6725 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
|
6726 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6727 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6728 /* 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
|
6729 * 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
|
6730 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6731 * 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
|
6732 * 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
|
6733 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6734 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
|
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 /* 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
|
6737 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
|
6738 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6739 if(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
|
6740 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
|
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 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
|
6743 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
|
6744 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
|
6745 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6746 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6747 /* 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
|
6748 * 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
|
6749 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6750 * 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
|
6751 * 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
|
6752 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6753 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
|
6754 { |
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 /* 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
|
6757 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
|
6758 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6759 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
|
6760 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
|
6761 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6762 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
|
6763 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
|
6764 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
|
6765 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6766 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6767 /* 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
|
6768 * 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
|
6769 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6770 * 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
|
6771 * 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
|
6772 * 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
|
6773 * 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
|
6774 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6775 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
|
6776 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6777 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
|
6778 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
|
6779 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
|
6780 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
|
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 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
|
6783 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
|
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 /* 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
|
6786 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
|
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 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
|
6789 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
|
6790 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6791 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
|
6792 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6793 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6794 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
|
6795 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
|
6796 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6797 /* 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
|
6798 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
|
6799 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
|
6800 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6801 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
|
6802 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
|
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 /* 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
|
6805 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
|
6806 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
|
6807 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
|
6808 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6809 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
|
6810 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
|
6811 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
|
6812 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
|
6813 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6814 /* 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
|
6815 * 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
|
6816 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6817 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
|
6818 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
|
6819 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
|
6820 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6821 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6822 /* 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
|
6823 * 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
|
6824 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6825 * 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
|
6826 * 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
|
6827 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6828 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
|
6829 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6830 /* 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
|
6831 * 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
|
6832 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6833 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
|
6834 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
|
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6838 * 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
|
6839 * 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
|
6840 * 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
|
6841 * 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
|
6842 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6843 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
|
6844 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6845 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
|
6846 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6847 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
|
6848 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
|
6849 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
|
6850 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6851 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6852 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6853 * 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
|
6854 * 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
|
6855 * 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
|
6856 * 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
|
6857 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6858 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
|
6859 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6860 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
|
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 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
|
6863 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
|
6864 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
|
6865 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
|
6866 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6867 |
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 * 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
|
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 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
|
6872 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6873 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
|
6874 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
|
6875 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6876 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
|
6877 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6878 /* 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
|
6879 _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
|
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 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
|
6882 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
|
6883 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6884 /* 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
|
6885 _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
|
6886 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6889 * 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
|
6890 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6891 * 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
|
6892 * 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
|
6893 * 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
|
6894 * 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
|
6895 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6896 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
|
6897 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6898 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
|
6899 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
|
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 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
|
6902 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
|
6903 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6904 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
|
6905 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6906 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
|
6907 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
|
6908 } |
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 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
|
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 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
|
6913 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
|
6914 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
|
6915 } |
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 /* 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
|
6918 *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
|
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 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
|
6921 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6922 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
|
6923 *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
|
6924 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
|
6925 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
|
6926 } |
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 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
|
6929 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
|
6930 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
|
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 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
|
6933 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6934 |
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 * 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
|
6937 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6938 * 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
|
6939 * 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
|
6940 * 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
|
6941 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6942 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
|
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 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
|
6945 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
|
6946 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6947 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
|
6948 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
|
6949 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6950 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
|
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 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
|
6953 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
|
6954 } |
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 /* 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
|
6957 *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
|
6958 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6959 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
|
6960 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6961 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
|
6962 *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
|
6963 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
|
6964 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
|
6965 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6966 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6967 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
|
6968 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
|
6969 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
|
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 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6974 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6975 * 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
|
6976 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6977 * 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
|
6978 * 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
|
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 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
|
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 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
|
6983 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
|
6984 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6985 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
|
6986 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
|
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 /* 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
|
6989 * 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
|
6990 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6991 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
|
6992 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
|
6993 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
|
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 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
|
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6998 * 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
|
6999 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7000 * 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
|
7001 * 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
|
7002 * 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
|
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 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
|
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 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
|
7007 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
|
7008 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
|
7009 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7010 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
|
7011 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
|
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 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
|
7014 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
|
7015 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
|
7016 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
|
7017 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7020 * 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
|
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 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
|
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 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
|
7025 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7026 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7027 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7028 * 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
|
7029 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7030 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
|
7031 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7032 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
|
7033 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7034 |
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 * 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
|
7037 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7038 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
|
7039 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
7040 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
|
7041 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7042 |
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 * 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
|
7045 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7046 * 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
|
7047 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7048 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
|
7049 { |
2265
63bb97e94cd3
GTK4: More work on conversion... the amount of changes is really ridiculous.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2264
diff
changeset
|
7050 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
|
7051 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
|
7052 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7053 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7054 /* 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
|
7055 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
|
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 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
|
7058 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7059 *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
|
7060 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7061 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
|
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 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
|
7064 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7065 /* 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
|
7066 *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
|
7067 *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
|
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 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
|
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 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
|
7072 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
|
7073 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
|
7074 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
|
7075 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
|
7076 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
|
7077 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7078 *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
|
7079 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7080 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
|
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 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
|
7083 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
|
7084 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
|
7085 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
|
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 /* MLE */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7088 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
|
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 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
|
7091 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
|
7092 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
|
7093 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
|
7094 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7095 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
|
7096 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7097 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
|
7098 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7099 *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
|
7100 *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
|
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 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7103 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7104 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
|
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 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
|
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 *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
|
7109 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
|
7110 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7111 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7112 *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
|
7113 } |
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 *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
|
7116 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
|
7117 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
|
7118 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7119 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
|
7120 } |
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(hscrolled) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7122 *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
|
7123 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7124 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7125 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7126 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
|
7127 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
|
7128 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7129 *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
|
7130 *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
|
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 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
|
7134 *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
|
7135 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
|
7136 *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
|
7137 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
|
7138 *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
|
7139 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
|
7140 *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
|
7141 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7142 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7143 /* 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
|
7144 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
|
7145 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7146 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
|
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 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
|
7149 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7150 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7151 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7152 * 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
|
7153 * 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
|
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 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
|
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 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
|
7158 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7159 } |
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 /* 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
|
7162 * 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
|
7163 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7164 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
|
7165 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
|
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 /* 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
|
7168 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
|
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 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
|
7171 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
|
7172 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
|
7173 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7174 /* 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
|
7175 * 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
|
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 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
|
7178 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7179 /* TODO: Figure out how to do this in GTK4 since gtk_image_get_pixbif() is gone... |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7180 * Might need to save the pixbuf in the window data manually. |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7181 */ |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7182 #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
|
7183 GdkPixbuf *pixbuf = gtk_image_get_pixbuf(GTK_IMAGE(image)); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7184 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7185 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
|
7186 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7187 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
|
7188 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
|
7189 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7190 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
|
7191 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
|
7192 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
|
7193 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
|
7194 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7195 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
|
7196 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
|
7197 gtk_image_set_from_pixbuf(GTK_IMAGE(image), pixbuf); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7198 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7199 #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
|
7200 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7201 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7202 /* 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
|
7203 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
|
7204 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7205 /* 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
|
7206 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
|
7207 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7208 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
|
7209 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
|
7210 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7211 /* 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
|
7212 * 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
|
7213 * 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
|
7214 * 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
|
7215 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7216 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
|
7217 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7218 /* 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
|
7219 * 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
|
7220 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7221 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
|
7222 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7223 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7224 /* 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
|
7225 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
|
7226 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
|
7227 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
|
7228 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
|
7229 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7230 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
|
7231 /* 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
|
7232 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
|
7233 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
|
7234 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
|
7235 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
|
7236 /* 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
|
7237 _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
|
7238 /* 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
|
7239 * 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
|
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(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
|
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 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
|
7244 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
|
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 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7248 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
|
7249 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
|
7250 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7251 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
|
7252 /* 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
|
7253 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
|
7254 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7255 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
|
7256 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7257 /* 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
|
7258 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
|
7259 _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
|
7260 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7261 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
|
7262 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
|
7263 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
|
7264 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
|
7265 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
|
7266 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
|
7267 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
|
7268 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
|
7269 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7270 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7271 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7272 /* 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
|
7273 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
|
7274 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
|
7275 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
|
7276 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
|
7277 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7278 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
|
7279 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7280 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
|
7281 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7282 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
|
7283 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7284 if(groupstart) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7285 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
|
7286 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7287 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
|
7288 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7289 /* 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
|
7290 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
|
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 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
|
7293 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7297 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7298 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7299 * 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
|
7300 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7301 * 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
|
7302 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7303 * 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
|
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 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
|
7306 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7307 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
|
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 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
|
7310 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7311 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
|
7312 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
|
7313 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7314 /* Handle 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
|
7315 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
|
7316 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
|
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 /* 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
|
7319 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
|
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 /* 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
|
7322 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
|
7323 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
|
7324 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7325 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
|
7326 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7327 /* 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
|
7328 boxcount--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7329 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
|
7330 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7331 /* 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
|
7332 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
|
7333 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7334 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
|
7335 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
|
7336 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7337 /* 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
|
7338 /* 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
|
7339 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
|
7340 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7341 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
|
7342 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7343 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
|
7344 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7345 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
|
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 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
|
7348 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7349 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7350 } |
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 else |
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 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
|
7355 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7356 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
|
7357 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7358 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
|
7359 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7360 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
|
7361 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7362 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7363 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7364 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7365 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
|
7366 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7367 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7368 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
|
7369 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7370 |
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 * 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
|
7373 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7374 * 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
|
7375 * 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
|
7376 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7377 * 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
|
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 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
|
7380 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7381 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
|
7382 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7383 /* 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
|
7384 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
|
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 /* 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
|
7387 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
|
7388 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
|
7389 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
|
7390 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7391 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
|
7392 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7393 /* 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
|
7394 boxcount--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7395 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
|
7396 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7397 /* 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
|
7398 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
|
7399 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
|
7400 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
|
7401 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7402 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
|
7403 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7404 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
|
7405 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
|
7406 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7407 /* 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
|
7408 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
|
7409 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
|
7410 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
|
7411 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7412 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
|
7413 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7416 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
|
7417 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7418 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7419 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7420 * 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
|
7421 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7422 * 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
|
7423 * 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
|
7424 * 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
|
7425 * 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
|
7426 * 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
|
7427 * 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
|
7428 * 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
|
7429 * 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
|
7430 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7431 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
|
7432 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7433 _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
|
7434 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7437 * 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
|
7438 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7439 * 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
|
7440 * 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
|
7441 * 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
|
7442 * 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
|
7443 * 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
|
7444 * 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
|
7445 * 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
|
7446 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7447 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
|
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 /* 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
|
7450 * 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
|
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 _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
|
7453 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7454 |
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 * 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
|
7457 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7458 * 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
|
7459 * 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
|
7460 * 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
|
7461 * 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
|
7462 * 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
|
7463 * 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
|
7464 * 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
|
7465 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7466 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
|
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 _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
|
7469 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7470 |
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 * 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
|
7473 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7474 * 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
|
7475 * 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
|
7476 * 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
|
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 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
|
7479 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7480 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
|
7481 return; |
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 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
|
7484 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
|
7485 else |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7486 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
|
7487 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7490 * 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
|
7491 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7492 * 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
|
7493 * 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
|
7494 * 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
|
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 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
|
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 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
|
7499 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7500 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
|
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 _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
|
7503 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7504 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
|
7505 *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
|
7506 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
|
7507 *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
|
7508 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7509 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7510 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7511 if(width) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7512 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
|
7513 if(height) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7514 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
|
7515 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7516 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7517 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7518 /* 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
|
7519 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
|
7520 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7521 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
|
7522 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7523 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
|
7524 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7525 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
|
7526 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
|
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(monitor) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7529 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7530 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
|
7531 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
|
7532 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
|
7533 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7534 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7535 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
|
7536 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7537 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7538 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7539 * 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
|
7540 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7541 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
|
7542 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7543 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
|
7544 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7545 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7546 /* 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
|
7547 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
|
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 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
|
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 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
|
7552 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7553 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
|
7554 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
|
7555 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7556 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
|
7557 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7558 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
|
7559 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
|
7560 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7563 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
|
7564 } |
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 * 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
|
7568 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7569 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
|
7570 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7571 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
|
7572 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7573 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7574 /* 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
|
7575 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
|
7576 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7577 /* 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
|
7578 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7581 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7582 * 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
|
7583 * 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
|
7584 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7585 * 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
|
7586 * 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
|
7587 * 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
|
7588 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7589 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
|
7590 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7591 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
|
7592 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
|
7593 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7594 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7595 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7596 * 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
|
7597 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7598 * 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
|
7599 * 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
|
7600 * 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
|
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 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
|
7603 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7604 /* 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
|
7605 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
|
7606 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7607 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7610 * 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
|
7611 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7612 * 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
|
7613 * 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
|
7614 * 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
|
7615 * 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
|
7616 * 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
|
7617 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7618 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
|
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 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
|
7621 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
|
7622 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7623 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7624 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7625 * 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
|
7626 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7627 * 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
|
7628 * 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
|
7629 * 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
|
7630 * 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
|
7631 * 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
|
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 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
|
7634 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7635 /* 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
|
7636 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
|
7637 return; |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7638 |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7639 if(width) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7640 *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
|
7641 if(height) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7642 *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
|
7643 if(x) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7644 *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
|
7645 if(y) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7646 *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
|
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7650 * 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
|
7651 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7652 * 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
|
7653 * 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
|
7654 * 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
|
7655 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7656 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
|
7657 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7658 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
|
7659 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7660 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
|
7661 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7662 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
|
7663 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
|
7664 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
|
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 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
|
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 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
|
7669 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
|
7670 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
|
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 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
|
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 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
|
7675 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7676 /* 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
|
7677 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
|
7678 ; |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7679 else |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7680 ; |
2264
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 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7683 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
|
7684 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7685 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
|
7686 /* horizontal... */ |
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 ( 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
|
7688 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
|
7689 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
|
7690 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
|
7691 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
|
7692 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
|
7693 /* vertical... */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7694 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
|
7695 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
|
7696 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
|
7697 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
|
7698 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
|
7699 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
|
7700 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
|
7701 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
|
7702 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
|
7703 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
|
7704 } |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7705 /* 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
|
7706 #if GTK3 |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7707 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
|
7708 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7709 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
|
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 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
|
7712 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
|
7713 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7714 _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
|
7715 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
|
7716 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
|
7717 _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
|
7718 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7719 if((GTK_IS_CHECK_MENU_ITEM(handle2) || GTK_IS_MENU_ITEM(handle2)) && (mask & (DW_MIS_ENABLED | DW_MIS_DISABLED))) |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7720 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7721 _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
|
7722 if ( style & DW_MIS_ENABLED ) |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7723 gtk_widget_set_sensitive(handle2, 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
|
7724 else |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7725 gtk_widget_set_sensitive(handle2, 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
|
7726 _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
|
7727 } |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
7728 #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
|
7729 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7730 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7731 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7732 * 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
|
7733 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7734 * 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
|
7735 * 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
|
7736 * 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
|
7737 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7738 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
|
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 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
|
7741 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
|
7742 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7743 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
|
7744 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7745 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
|
7746 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7747 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
|
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 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
|
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 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
|
7752 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
|
7753 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7754 if(front) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7755 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
|
7756 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7757 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
|
7758 /* 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
|
7759 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
|
7760 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
|
7761 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7762 } |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7765 /* 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
|
7766 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
|
7767 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7768 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7769 /* 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
|
7770 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
|
7771 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7772 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
|
7773 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
|
7774 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7775 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
|
7776 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7777 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
|
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 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
|
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 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
|
7782 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
|
7783 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7784 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7785 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7786 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
|
7787 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7790 * 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
|
7791 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7792 * 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
|
7793 * 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
|
7794 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7795 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
|
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 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
|
7798 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
|
7799 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7800 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
|
7801 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
|
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 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
|
7804 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
|
7805 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
|
7806 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7807 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7808 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7809 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7810 * 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
|
7811 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7812 * 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
|
7813 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7814 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
|
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 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
|
7817 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7818 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
|
7819 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
|
7820 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
|
7821 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7822 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7823 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7824 * 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
|
7825 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7826 * 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
|
7827 * 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
|
7828 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7829 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
|
7830 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7831 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
|
7832 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7833 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
|
7834 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
|
7835 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
|
7836 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7837 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7838 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7839 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7840 * 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
|
7841 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7842 * 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
|
7843 * 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
|
7844 * 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
|
7845 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7846 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
|
7847 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7848 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
|
7849 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
|
7850 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7851 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
|
7852 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
|
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 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
|
7855 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
|
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 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
|
7858 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
|
7859 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
|
7860 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7861 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7862 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
|
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 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
|
7865 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
|
7866 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
|
7867 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7868 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7869 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7870 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7871 * 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
|
7872 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7873 * 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
|
7874 * 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
|
7875 * 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
|
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 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
|
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 /* 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
|
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 |
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 * 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
|
7884 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7885 * 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
|
7886 * 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
|
7887 * 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
|
7888 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7889 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
|
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 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
|
7892 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
|
7893 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
|
7894 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
|
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 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
|
7897 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
|
7898 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
|
7899 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
|
7900 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7901 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
|
7902 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7903 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7904 /* 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
|
7905 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
|
7906 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7907 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
|
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 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
|
7910 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
|
7911 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7912 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
|
7913 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
|
7914 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
|
7915 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
|
7916 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
|
7917 break; |
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 } |
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 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
|
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 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
|
7925 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7926 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
|
7927 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
|
7928 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
|
7929 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
|
7930 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7931 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
|
7932 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7935 * 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
|
7936 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7937 * 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
|
7938 * 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
|
7939 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7940 void 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
|
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 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7945 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7946 * 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
|
7947 * 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
|
7948 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7949 * 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
|
7950 * 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
|
7951 * 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
|
7952 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7953 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
|
7954 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7955 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
|
7956 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
|
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 /* 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
|
7959 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
|
7960 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7961 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
|
7962 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
|
7963 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
|
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 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
|
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 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
|
7968 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7969 /* 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
|
7970 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
|
7971 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
|
7972 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
|
7973 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
|
7974 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7975 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
|
7976 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7977 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7978 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
|
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 /* 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
|
7981 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
|
7982 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7983 else |
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 /* 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
|
7986 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
|
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 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
|
7989 } |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7992 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7993 * 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
|
7994 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7995 * 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
|
7996 * 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
|
7997 * 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
|
7998 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7999 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
|
8000 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8001 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
|
8002 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
|
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 /* 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
|
8005 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
|
8006 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8007 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
|
8008 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
|
8009 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
|
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 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
|
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 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
|
8014 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
|
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 /* 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
|
8017 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
|
8018 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
|
8019 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
|
8020 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
|
8021 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8022 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
|
8023 return; |
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 /* 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
|
8026 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
|
8027 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8028 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
|
8029 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
|
8030 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8031 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8032 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8033 |
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 * 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
|
8036 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8037 * handle: 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
|
8038 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8039 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
|
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 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
|
8042 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
|
8043 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8044 /* 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
|
8045 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
|
8046 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8047 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
|
8048 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
|
8049 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
|
8050 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8051 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
|
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 /* 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
|
8054 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
|
8055 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
|
8056 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
|
8057 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
|
8058 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8059 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
|
8060 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8061 /* 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
|
8062 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
|
8063 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8064 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8065 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8066 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8067 * 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
|
8068 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8069 * 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
|
8070 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8071 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
|
8072 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8073 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
|
8074 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
|
8075 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
|
8076 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8077 /* 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
|
8078 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
|
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 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
|
8081 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
|
8082 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
|
8083 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8084 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
|
8085 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8086 /* 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
|
8087 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
|
8088 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
|
8089 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
|
8090 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
|
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 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
|
8093 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8094 /* 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
|
8095 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
|
8096 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8097 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8098 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
|
8099 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8102 * 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
|
8103 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8104 * 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
|
8105 * 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
|
8106 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8107 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
|
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 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
|
8110 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8111 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
|
8112 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8113 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
|
8114 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
|
8115 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
|
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 /* 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
|
8118 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
|
8119 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8120 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
|
8121 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
|
8122 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8123 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
|
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 /* 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
|
8126 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
|
8127 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
|
8128 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
|
8129 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
|
8130 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
|
8131 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8132 /* 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
|
8133 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
|
8134 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8135 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8136 /* 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
|
8137 rowcount--; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8138 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
|
8139 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
|
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 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
|
8142 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8143 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
|
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 } |
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8148 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8149 * 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
|
8150 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8151 * 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
|
8152 * 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
|
8153 * 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
|
8154 * 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
|
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 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
|
8157 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8158 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
|
8159 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
|
8160 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8161 /* 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
|
8162 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
|
8163 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8164 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
|
8165 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
|
8166 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
|
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 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
|
8169 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8170 /* 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
|
8171 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
|
8172 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
|
8173 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
|
8174 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
|
8175 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8176 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
|
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 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
|
8179 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8180 /* 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
|
8181 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
|
8182 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8183 /* 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
|
8184 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
|
8185 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
|
8186 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
|
8187 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8188 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
|
8189 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
|
8190 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8191 return; |
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8194 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8195 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
|
8196 } |
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 * 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
|
8200 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8201 * 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
|
8202 * 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
|
8203 * 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
|
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 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8210 /* 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
|
8211 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
|
8212 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8213 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
|
8214 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
|
8215 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
|
8216 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8217 if(handle2) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8218 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8219 /* 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
|
8220 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
|
8221 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
|
8222 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
|
8223 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
|
8224 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8225 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
|
8226 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8227 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
|
8228 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8229 /* 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
|
8230 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
|
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 /* 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
|
8233 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8237 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8238 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8239 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8240 * 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
|
8241 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8242 * 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
|
8243 * 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
|
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 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
|
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 *handle2; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8248 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
|
8249 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
|
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 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
|
8252 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8253 /* 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
|
8254 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
|
8255 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) |
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 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
|
8260 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
|
8261 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8262 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
|
8263 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8264 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
|
8265 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
|
8266 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8267 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
|
8268 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8269 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
|
8270 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8271 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
|
8272 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8273 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
|
8274 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8275 } |
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 counter++; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8278 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
|
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 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
|
8282 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
|
8283 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8284 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8285 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
|
8286 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8287 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8288 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8289 * 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
|
8290 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8291 * 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
|
8292 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8293 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
|
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 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
|
8296 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
|
8297 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
|
8298 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8299 /* 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
|
8300 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
|
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 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
|
8303 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
|
8304 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
|
8305 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8306 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
|
8307 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8308 /* 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
|
8309 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
|
8310 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
|
8311 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
|
8312 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
|
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 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
|
8315 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8316 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
|
8317 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8318 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
|
8319 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
|
8320 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
|
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 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
|
8323 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
|
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 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
|
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 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8330 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
|
8331 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8334 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8335 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8336 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
|
8337 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
|
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 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
|
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 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
|
8342 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
|
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 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
|
8345 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8346 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
|
8347 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8348 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
|
8349 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8350 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
|
8351 } |
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8354 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8355 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8356 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
|
8357 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8358 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8359 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8360 * 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
|
8361 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8362 * 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
|
8363 * 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
|
8364 * 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
|
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 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
|
8367 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8368 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
|
8369 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
|
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 /* 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
|
8372 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
|
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 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
|
8375 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
|
8376 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
|
8377 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8378 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
|
8379 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8380 /* 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
|
8381 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
|
8382 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
|
8383 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
|
8384 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
|
8385 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8386 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
|
8387 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8388 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
|
8389 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8390 /* 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
|
8391 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
|
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 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
|
8394 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8395 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
|
8396 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8397 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8398 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8399 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
|
8400 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
|
8401 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8402 /* 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
|
8403 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
|
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 else |
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 /* 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
|
8408 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8412 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8413 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8414 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8415 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8416 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8417 * 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
|
8418 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8419 * 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
|
8420 * 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
|
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 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
|
8423 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8424 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
|
8425 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
|
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 /* 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
|
8428 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
|
8429 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8430 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
|
8431 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
|
8432 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
|
8433 } |
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(handle2) |
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 /* 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
|
8437 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
|
8438 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
|
8439 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
|
8440 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
|
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 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
|
8443 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8444 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
|
8445 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8446 /* 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
|
8447 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
|
8448 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8449 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
|
8450 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8451 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8452 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8453 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8454 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8455 /* Function to do delayed positioning */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8456 gboolean _splitbar_set_percent(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
|
8457 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8458 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
|
8459 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
|
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 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
|
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 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
|
8464 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8465 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
|
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 if(gtk_orientable_get_orientation(GTK_ORIENTABLE(widget)) == 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
|
8468 gtk_paned_set_position(GTK_PANED(widget), (int)(alloc.width * (*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
|
8469 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8470 gtk_paned_set_position(GTK_PANED(widget), (int)(alloc.height * (*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
|
8471 g_object_set_data(G_OBJECT(widget), "_dw_percent", NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8472 free(percent); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8473 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8474 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
|
8475 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8476 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8477 /* Reposition the bar according to the percentage */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8478 static gint _splitbar_size_allocate(GtkWidget *widget, GtkAllocation *event, 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
|
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 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
|
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 /* Prevent infinite recursion ;) */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8483 if(!percent || event->width < 20 || event->height < 20) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8484 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
|
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 g_idle_add(_splitbar_set_percent, widget); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8487 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
|
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8491 * 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
|
8492 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8493 * 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
|
8494 * 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
|
8495 * 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
|
8496 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8497 * 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
|
8498 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8499 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
|
8500 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8501 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
|
8502 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
|
8503 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8504 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
|
8505 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
|
8506 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
|
8507 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
|
8508 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
|
8509 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
|
8510 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
|
8511 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
|
8512 *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
|
8513 g_object_set_data(G_OBJECT(tmp), "_dw_percent", (gpointer)percent); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8514 g_signal_connect(G_OBJECT(tmp), "size-allocate", G_CALLBACK(_splitbar_size_allocate), NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8515 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
|
8516 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
|
8517 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8518 |
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 * 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
|
8521 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8522 * 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
|
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 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
|
8525 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8526 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
|
8527 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
|
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 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
|
8530 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
|
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 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
|
8533 |
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(mypercent) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8535 *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
|
8536 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8537 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
|
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 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
|
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 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
|
8542 } |
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 * 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
|
8547 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8548 * 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
|
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 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
|
8551 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8552 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
|
8553 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8554 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
|
8555 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
|
8556 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8559 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8560 * 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
|
8561 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8562 * 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
|
8563 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8564 * 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
|
8565 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8566 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
|
8567 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8568 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
|
8569 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
|
8570 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
|
8571 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8572 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
|
8573 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
|
8574 /* select today */ |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8575 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
|
8576 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
|
8577 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
|
8578 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
|
8579 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
|
8580 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
|
8581 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8584 * 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
|
8585 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8586 * 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
|
8587 * year... |
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 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
|
8590 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8591 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
|
8592 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8593 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
|
8594 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
|
8595 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
|
8596 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
|
8597 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8600 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8601 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8602 * 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
|
8603 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8604 * 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
|
8605 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8606 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
|
8607 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8608 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
|
8609 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8610 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
|
8611 if(year) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8612 *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
|
8613 if(month) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8614 *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
|
8615 if(day) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8616 *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
|
8617 } |
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 |
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 * 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
|
8622 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8623 * 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
|
8624 * Remarks: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8625 * 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
|
8626 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8627 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
|
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 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
|
8630 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8631 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8632 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
|
8633 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8634 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8635 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8636 * 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
|
8637 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8638 * 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
|
8639 * 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
|
8640 * Remarks: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8641 * 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
|
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 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
|
8644 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8645 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
|
8646 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8647 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8648 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
|
8649 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8650 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8651 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8652 * 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
|
8653 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8654 * 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
|
8655 * 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
|
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 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
|
8658 { |
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
|
8659 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
|
8660 { |
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
|
8661 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
|
8662 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
|
8663 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
|
8664 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8665 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8666 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8667 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8668 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8669 * 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
|
8670 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8671 * 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
|
8672 * 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
|
8673 * 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
|
8674 * 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
|
8675 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8676 * 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
|
8677 * 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
|
8678 * Remarks: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8679 * 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
|
8680 * 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
|
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 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
|
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 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
|
8685 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8686 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
|
8687 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8688 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
|
8689 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8690 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
|
8691 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
|
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 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
|
8694 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
|
8695 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
|
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 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
|
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 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
|
8700 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8701 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
|
8702 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
|
8703 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8704 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
|
8705 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8706 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
|
8707 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8708 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
|
8709 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
|
8710 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8711 } |
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_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
|
8713 (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
|
8714 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8715 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
|
8716 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8717 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8718 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8719 * 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
|
8720 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8721 * 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
|
8722 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8723 * 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
|
8724 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8725 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
|
8726 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8727 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
|
8728 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8729 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
|
8730 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8731 /* 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
|
8732 * 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
|
8733 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8734 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
|
8735 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
|
8736 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
|
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 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
|
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8742 * 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
|
8743 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8744 * 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
|
8745 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8746 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
|
8747 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8748 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
|
8749 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
|
8750 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8751 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
|
8752 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
|
8753 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
|
8754 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
|
8755 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8756 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
|
8757 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
|
8758 #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
|
8759 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
|
8760 #else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8761 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
|
8762 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8763 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
|
8764 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
|
8765 #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
|
8766 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
|
8767 #else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8768 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
|
8769 #endif |
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 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
|
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 *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
|
8774 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
|
8775 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
|
8776 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8777 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8778 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
|
8779 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8780 |
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 * 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
|
8783 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8784 * 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
|
8785 * 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
|
8786 * 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
|
8787 * 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
|
8788 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8789 * 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
|
8790 * 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
|
8791 * |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8792 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8793 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
|
8794 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8795 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
|
8796 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8797 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
|
8798 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
|
8799 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
|
8800 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
|
8801 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
|
8802 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
|
8803 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
|
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 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
|
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 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
|
8808 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
|
8809 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
|
8810 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8811 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
|
8812 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
|
8813 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
|
8814 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8815 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
|
8816 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
|
8817 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
|
8818 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8819 default: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8820 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
|
8821 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
|
8822 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8823 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8824 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8825 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
|
8826 NULL, |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8827 action, |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8828 _("_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
|
8829 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
|
8830 NULL); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8831 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8832 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
|
8833 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8834 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
|
8835 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
|
8836 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
|
8837 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
|
8838 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
|
8839 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
|
8840 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
|
8841 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
|
8842 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
|
8843 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
|
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 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8846 if(defpath) |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8847 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8848 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
|
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 /* 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
|
8851 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
|
8852 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8853 /* 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
|
8854 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
|
8855 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
|
8856 |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8857 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
|
8858 } |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8859 } |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8860 |
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
|
8861 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
|
8862 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
|
8863 |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8864 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
|
8865 { |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8866 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
|
8867 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
|
8868 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
|
8869 } |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8870 |
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
8871 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
|
8872 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
|
8873 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
|
8874 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8875 |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8878 * 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
|
8879 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8880 * 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
|
8881 * 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
|
8882 * 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
|
8883 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8884 * -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
|
8885 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8886 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
|
8887 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8888 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
|
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 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
|
8891 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8892 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
|
8893 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8894 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
|
8895 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
|
8896 setsid(); |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8897 if(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
|
8898 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8899 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
|
8900 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8901 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
|
8902 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8903 char **tmpargs; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8904 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8905 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
|
8906 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8907 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
|
8908 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
|
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 else |
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 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
|
8913 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8914 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
|
8915 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8916 z++; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8917 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8918 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
|
8919 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
|
8920 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
|
8921 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
|
8922 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
|
8923 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8924 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
|
8925 z++; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8926 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8927 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
|
8928 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8929 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
|
8930 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
|
8931 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8932 /* If 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
|
8933 _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
|
8934 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8935 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
|
8936 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8937 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8938 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8939 * 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
|
8940 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8941 * 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
|
8942 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8943 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
|
8944 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8945 /* 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
|
8946 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
|
8947 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
|
8948 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8949 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8950 #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
|
8951 /* 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
|
8952 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
|
8953 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8954 if(widget) |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8955 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8956 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
|
8957 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
|
8958 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
|
8959 #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
|
8960 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
|
8961 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
|
8962 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
|
8963 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8964 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8965 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
|
8966 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8967 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8968 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8969 * 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
|
8970 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8971 * 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
|
8972 * 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
|
8973 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8974 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
|
8975 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8976 #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
|
8977 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
|
8978 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8979 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
|
8980 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8981 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
|
8982 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8983 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
|
8984 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
|
8985 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8986 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
|
8987 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
|
8988 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8989 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
|
8990 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
|
8991 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8992 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
|
8993 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
|
8994 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8995 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
|
8996 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
|
8997 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8998 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
|
8999 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9000 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
|
9001 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
|
9002 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
|
9003 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9004 break; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9005 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9006 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9007 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9008 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9009 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9010 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9011 * 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
|
9012 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9013 * 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
|
9014 * 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
|
9015 * 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
|
9016 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9017 * 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
|
9018 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9019 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
|
9020 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9021 #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
|
9022 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
|
9023 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9024 if((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
|
9025 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9026 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
|
9027 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
|
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 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
|
9030 #else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9031 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
|
9032 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9033 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9034 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9035 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9036 * 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
|
9037 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9038 * 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
|
9039 * 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
|
9040 * 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
|
9041 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9042 * 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
|
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 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
|
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 #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
|
9047 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
|
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 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
|
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 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
|
9052 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
|
9053 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9054 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
|
9055 #else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9056 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
|
9057 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9058 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9059 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9060 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9061 * 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
|
9062 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9063 * 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
|
9064 * 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
|
9065 * 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
|
9066 * 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
|
9067 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9068 * 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
|
9069 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9070 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
|
9071 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9072 #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
|
9073 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
|
9074 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9075 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
|
9076 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
|
9077 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
|
9078 #else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9079 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
|
9080 #endif |
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 |
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 * 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
|
9085 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9086 * 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
|
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 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
|
9089 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9090 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
|
9091 #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
|
9092 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
|
9093 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
|
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 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
|
9096 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
|
9097 /* 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
|
9098 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
|
9099 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
|
9100 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
|
9101 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
|
9102 #else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9103 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
|
9104 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9105 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
|
9106 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9107 |
2274
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9108 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
|
9109 { |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9110 DWDialog *tmp = (DWDialog *)data; |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9111 |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9112 if(tmp && tmp->data) |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9113 { |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9114 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
|
9115 |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9116 dw_dialog_dismiss(tmp, text ? strdup(text) : text); |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9117 } |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9118 } |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9119 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9120 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9121 * 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
|
9122 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9123 * None. |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9124 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9125 * 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
|
9126 * 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
|
9127 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9128 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
|
9129 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9130 GdkDisplay *display = gdk_display_get_default(); |
2274
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9131 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
|
9132 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
|
9133 |
2274
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9134 if((clipboard = gdk_display_get_clipboard(display))) |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9135 { |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9136 DWDialog *tmp = dw_dialog_new(DW_POINTER(clipboard)); |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9137 |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9138 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
|
9139 |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9140 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
|
9141 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9142 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
|
9143 } |
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 * 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
|
9147 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9148 * Text. |
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 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
|
9151 { |
2266
bb0690c04413
GTK4: First buildable version... although tons still left to do.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2265
diff
changeset
|
9152 GdkDisplay *display = gdk_display_get_default(); |
2274
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9153 GdkClipboard *clipboard; |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9154 |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9155 if((clipboard = gdk_display_get_clipboard(display))) |
b0bdd54bb2e8
GTK4: Implemented clipboard.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2273
diff
changeset
|
9156 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9159 /* 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
|
9160 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
|
9161 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9162 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
|
9163 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
|
9164 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
|
9165 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
|
9166 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
|
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 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
|
9169 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9170 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
|
9171 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
|
9172 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
|
9173 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
|
9174 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
|
9175 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
|
9176 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
|
9177 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
|
9178 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9179 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9180 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9181 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9182 * 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
|
9183 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9184 * 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
|
9185 * 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
|
9186 * 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
|
9187 * 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
|
9188 * 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
|
9189 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9190 * 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
|
9191 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9192 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
|
9193 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9194 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
|
9195 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9196 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
|
9197 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
|
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 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
|
9200 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9201 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
|
9202 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
|
9203 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
|
9204 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
|
9205 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
|
9206 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9207 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
|
9208 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9209 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9210 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9211 * 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
|
9212 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9213 * 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
|
9214 * 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
|
9215 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9216 * 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
|
9217 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9218 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
|
9219 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9220 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
|
9221 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
|
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 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
|
9224 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
|
9225 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9226 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9227 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9228 * 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
|
9229 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9230 * 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
|
9231 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9232 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
|
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 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
|
9235 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9236 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
|
9237 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9238 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9239 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9240 * 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
|
9241 * 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
|
9242 * 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
|
9243 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9244 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
|
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 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
|
9247 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9248 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
|
9249 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9250 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
|
9251 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9252 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
|
9253 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
|
9254 else |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9255 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
|
9256 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9257 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
|
9258 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9261 * 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
|
9262 * 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
|
9263 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9264 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
|
9265 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9266 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
|
9267 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9268 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9269 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9270 * 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
|
9271 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9272 * 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
|
9273 * 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
|
9274 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9275 * 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
|
9276 * 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
|
9277 * 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
|
9278 * Remarks: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9279 * 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
|
9280 * 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
|
9281 * 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
|
9282 * 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
|
9283 * 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
|
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 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
|
9286 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9287 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
|
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 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
|
9290 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
|
9291 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9292 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
|
9293 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9294 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9295 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9296 * 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
|
9297 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9298 * 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
|
9299 * 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
|
9300 * 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
|
9301 */ |
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 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
|
9303 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9304 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
|
9305 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9306 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
|
9307 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9308 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
|
9309 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
|
9310 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9311 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9312 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9313 * 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
|
9314 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9315 * 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
|
9316 * 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
|
9317 * 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
|
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 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
|
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 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
|
9322 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9323 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
|
9324 return; |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9325 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9326 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
|
9327 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9328 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
|
9329 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9330 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
|
9331 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
|
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 |
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 * 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
|
9336 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9337 * 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
|
9338 * 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
|
9339 * 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
|
9340 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9341 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
|
9342 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9343 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
|
9344 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
|
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 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
|
9347 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
|
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 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
|
9350 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9351 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
|
9352 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9353 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
|
9354 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
|
9355 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
|
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 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9358 /* 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
|
9359 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
|
9360 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9361 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
|
9362 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
|
9363 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
|
9364 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
|
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 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
|
9367 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9368 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
|
9369 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
|
9370 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
|
9371 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
|
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 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
|
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 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
|
9376 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
|
9377 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
|
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 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
|
9380 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
|
9381 } |
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 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9384 * 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
|
9385 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9386 * 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
|
9387 * 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
|
9388 * 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
|
9389 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9390 * 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
|
9391 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9392 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
|
9393 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9394 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
|
9395 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
|
9396 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9397 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
|
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 *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
|
9400 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
|
9401 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
|
9402 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
|
9403 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
|
9404 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
|
9405 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9406 |
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 * 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
|
9409 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9410 * 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
|
9411 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9412 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
|
9413 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9414 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
|
9415 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9416 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
|
9417 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
|
9418 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
|
9419 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
|
9420 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9421 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9422 /* 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
|
9423 * 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
|
9424 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9425 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
|
9426 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9427 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
|
9428 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9429 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
|
9430 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
|
9431 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
|
9432 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
|
9433 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
|
9434 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
|
9435 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
|
9436 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9437 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9438 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9439 * 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
|
9440 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9441 * 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
|
9442 * 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
|
9443 * 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
|
9444 * 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
|
9445 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9446 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
|
9447 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9448 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
|
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 /* 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
|
9452 * 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
|
9453 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9454 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
|
9455 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9456 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
|
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 **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
|
9459 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
|
9460 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9461 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
|
9462 { |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
9463 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
|
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(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
|
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 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
|
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 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9470 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
|
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 #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
|
9475 |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9476 /* Signal setup functions */ |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9477 GObject *_dw_key_setup(struct _dw_signal_list *signal, GObject *object, void *params[], void *sigfunc, void *discfunc, void *data) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9478 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9479 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
|
9480 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9481 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
|
9482 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
|
9483 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
|
9484 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9485 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
|
9486 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9487 |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9488 GObject *_dw_button_setup(struct _dw_signal_list *signal, GObject *object, void *params[], void *sigfunc, void *discfunc, void *data) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9489 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9490 /* 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
|
9491 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
|
9492 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9493 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
|
9494 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
|
9495 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
|
9496 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
|
9497 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
|
9498 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
|
9499 } |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
9500 /* 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
|
9501 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
|
9502 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
|
9503 /* 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
|
9504 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
|
9505 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
9506 GSimpleAction *action = G_SIMPLE_ACTION(g_object_get_data(object, "_dw_action")); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
9507 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
9508 if(action) |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
9509 { |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
9510 int cid, sigid = _dw_set_signal_handler(G_OBJECT(action), (HWND)object, sigfunc, data, (gpointer)_dw_menu_handler, discfunc); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
9511 |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
9512 params[0] = DW_INT_TO_POINTER(sigid); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
9513 params[2] = DW_POINTER(object); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
9514 cid = g_signal_connect_data(G_OBJECT(action), "activate", G_CALLBACK(_dw_menu_handler), params, _dw_signal_disconnect, 0); |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
9515 _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
|
9516 } |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
9517 return NULL; |
95796965bb01
GTK4: More menu work, something still isn't working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2272
diff
changeset
|
9518 } |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
9519 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
|
9520 } |
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
9521 |
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
9522 GObject *_dw_mouse_setup(struct _dw_signal_list *signal, GObject *object, void *params[], void *sigfunc, void *discfunc, void *data) |
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
9523 { |
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
9524 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
|
9525 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9526 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
|
9527 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
|
9528 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
|
9529 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9530 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
|
9531 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9532 |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9533 GObject *_dw_motion_setup(struct _dw_signal_list *signal, GObject *object, void *params[], void *sigfunc, void *discfunc, void *data) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9534 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9535 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
|
9536 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9537 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
|
9538 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
|
9539 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
|
9540 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9541 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
|
9542 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9543 |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9544 GObject *_dw_draw_setup(struct _dw_signal_list *signal, GObject *object, void *params[], void *sigfunc, void *discfunc, void *data) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9545 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9546 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
|
9547 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9548 /* TODO: Might need to use the disconnect paramater since this isn't a normal signal handler */ |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9549 gtk_drawing_area_set_draw_func(GTK_DRAWING_AREA(object), signal->func, data, 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
|
9550 _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
|
9551 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
|
9552 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9553 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
|
9554 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9555 |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9556 GObject *_dw_tree_setup(struct _dw_signal_list *signal, GObject *object, void *params[], void *sigfunc, void *discfunc, void *data) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9557 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9558 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
|
9559 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9560 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
|
9561 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9562 /* 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
|
9563 * 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
|
9564 */ |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
9565 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
|
9566 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
|
9567 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
|
9568 } |
2270
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
9569 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
|
9570 { |
819f2492c85f
GTK4: More signal cleanup, fix various issues with windows and dialogs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2269
diff
changeset
|
9571 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
|
9572 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
|
9573 } |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9574 else |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9575 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9576 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
|
9577 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
|
9578 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
|
9579 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9580 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9581 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
|
9582 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9583 |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9584 GObject *_dw_value_setup(struct _dw_signal_list *signal, GObject *object, void *params[], void *sigfunc, void *discfunc, void *data) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9585 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9586 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
|
9587 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
|
9588 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
|
9589 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9590 |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9591 GObject *_dw_focus_setup(struct _dw_signal_list *signal, GObject *object, void *params[], void *sigfunc, void *discfunc, void *data) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9592 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9593 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
|
9594 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
|
9595 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
|
9596 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9597 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
9598 #ifdef USE_WEBKIT |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9599 GObject *_dw_html_setup(struct _dw_signal_list *signal, GObject *object, void *params[], void *sigfunc, void *discfunc, void *data) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9600 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9601 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
|
9602 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9603 /* 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
|
9604 * 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
|
9605 */ |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
9606 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
|
9607 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
|
9608 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
|
9609 } |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
9610 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
|
9611 } |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9612 #endif |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9613 |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9614 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9615 * 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
|
9616 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9617 * 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
|
9618 * 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
|
9619 * 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
|
9620 * 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
|
9621 * 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
|
9622 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9623 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
|
9624 { |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
9625 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
|
9626 |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
9627 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
|
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 GObject *object = (GObject *)window; |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9630 void **params = calloc(_DW_INTERNAL_CALLBACK_PARAMS, sizeof(void *)); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9631 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
|
9632 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
|
9633 |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9634 /* Save the disconnect function pointer */ |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9635 params[1] = discfunc; |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9636 |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9637 /* |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9638 * 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
|
9639 * 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
|
9640 */ |
2268
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9641 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
|
9642 #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
|
9643 && !(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
|
9644 #endif |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9645 ) |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9646 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
|
9647 |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9648 /* 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
|
9649 if(signal.setup) |
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
9650 object = signal.setup(&signal, object, params, 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
|
9651 |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9652 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
|
9653 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9654 free(params); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9655 return; |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9656 } |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9657 |
2271
1c52cd5a817f
GTK4: More refactoring, and started working on menus, but not entirely sure
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2270
diff
changeset
|
9658 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
|
9659 params[0] = DW_INT_TO_POINTER(sigid); |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9660 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
|
9661 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
|
9662 _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
|
9663 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9664 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9665 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9666 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9667 * 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
|
9668 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9669 * 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
|
9670 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9671 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
|
9672 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9673 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
|
9674 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
|
9675 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
|
9676 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9677 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
|
9678 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
|
9679 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
|
9680 |
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
9681 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
|
9682 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9683 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
|
9684 { |
fefeb5b4e512
GTK4: Complete refactoring of the signal system to be more simple and
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2267
diff
changeset
|
9685 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
|
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 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
|
9688 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
|
9689 |
2269
a26cfd4bbffe
GTK4: More work on signal handlers, and disable the font CSS override.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2268
diff
changeset
|
9690 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
|
9691 _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
|
9692 } |
2264
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9693 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9694 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9695 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9696 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9697 * 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
|
9698 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9699 * 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
|
9700 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9701 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
|
9702 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9703 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
|
9704 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
|
9705 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9706 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
|
9707 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
|
9708 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9709 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
|
9710 _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
|
9711 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
|
9712 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9713 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9714 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9715 * 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
|
9716 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9717 * 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
|
9718 * 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
|
9719 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9720 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
|
9721 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9722 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
|
9723 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
|
9724 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9725 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
|
9726 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
|
9727 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9728 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
|
9729 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9730 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
|
9731 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9732 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
|
9733 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
|
9734 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9735 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
|
9736 _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
|
9737 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9738 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9739 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9740 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9741 * 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
|
9742 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9743 * 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
|
9744 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9745 * 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
|
9746 * 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
|
9747 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9748 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
|
9749 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9750 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
|
9751 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9752 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
|
9753 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
|
9754 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
|
9755 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
|
9756 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
|
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 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
|
9759 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
|
9760 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9761 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
|
9762 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9763 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9764 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9765 * 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
|
9766 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9767 * 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
|
9768 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9769 * 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
|
9770 * 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
|
9771 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9772 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
|
9773 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9774 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
|
9775 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9776 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
|
9777 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
|
9778 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
|
9779 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
|
9780 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
|
9781 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9782 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
|
9783 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
|
9784 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9785 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
|
9786 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9787 |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9788 /* |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9789 * 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
|
9790 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9791 * 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
|
9792 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9793 * 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
|
9794 * 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
|
9795 * 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
|
9796 * 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
|
9797 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9798 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
|
9799 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9800 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
|
9801 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9802 #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
|
9803 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
|
9804 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
|
9805 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9806 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
|
9807 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
|
9808 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
|
9809 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
|
9810 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
|
9811 default: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9812 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
|
9813 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9814 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9815 |
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 * 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
|
9818 * Parameters: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9819 * 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
|
9820 * 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
|
9821 * Returns: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9822 * 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
|
9823 * 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
|
9824 * 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
|
9825 * Remarks: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9826 * 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
|
9827 * 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
|
9828 */ |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9829 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
|
9830 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9831 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
|
9832 { |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9833 /* 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
|
9834 #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
|
9835 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
|
9836 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
|
9837 #endif |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9838 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
|
9839 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
|
9840 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
|
9841 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
|
9842 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
|
9843 /* 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
|
9844 default: |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9845 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
|
9846 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9847 } |
5c981407b0f3
GTK4: Add experimental support for GTK4... This is in progress and doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9848 |