Mercurial > dwindows
annotate gtk3/dw.c @ 1453:4b516ef23b62
Boxes need to default to vertical on Mac.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Wed, 14 Dec 2011 08:48:37 +0000 |
parents | dbe16031ffb4 |
children | 77f530f95826 |
rev | line source |
---|---|
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2 * Dynamic Windows: |
1386
fd1de4e9e542
Updated the readme and comments in the source files
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1384
diff
changeset
|
3 * A GTK like cross-platform GUI |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4 * GTK3 forwarder module for portabilty. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5 * |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6 * (C) 2000-2011 Brian Smith <brian@dbsoft.org> |
1386
fd1de4e9e542
Updated the readme and comments in the source files
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1384
diff
changeset
|
7 * (C) 2003-2011 Mark Hessling <mark@rexx.org> |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8 * (C) 2002 Nickolay V. Shmyrev <shmyrev@yandex.ru> |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10 #include "config.h" |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
11 #include "dw.h" |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
12 #include <string.h> |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
13 #include <stdlib.h> |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
14 #if !defined(GDK_WINDOWING_WIN32) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
15 # include <sys/utsname.h> |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
16 # include <sys/socket.h> |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
17 # include <sys/un.h> |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
18 # include <sys/mman.h> |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
19 #endif |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
20 #include <stdarg.h> |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
21 #include <stdio.h> |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
22 #include <unistd.h> |
1001
4ef0e878fe06
Added support for Dynamic Windows style font names for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
998
diff
changeset
|
23 #include <ctype.h> |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
24 #include <errno.h> |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
25 #include <sys/time.h> |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
26 #include <dirent.h> |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
27 #include <sys/stat.h> |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
28 #include <signal.h> |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
29 #include <fcntl.h> |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
30 #include <unistd.h> |
1261
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
31 #include <math.h> |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
32 #include <gdk/gdkkeysyms.h> |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
33 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
34 #ifdef USE_WEBKIT |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
35 #include <webkit/webkit.h> |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
36 #endif |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
37 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
38 #include <gdk-pixbuf/gdk-pixbuf.h> |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
39 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
40 #if __STDC_VERSION__ < 199901L |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
41 # if __GNUC__ >= 2 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
42 # define __func__ __FUNCTION__ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
43 # else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
44 # define __func__ "<unknown>" |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
45 # endif |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
46 #endif |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
47 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
48 #include "gtk/messagebox_error.xpm" |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
49 #include "gtk/messagebox_warning.xpm" |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
50 #include "gtk/messagebox_information.xpm" |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
51 #include "gtk/messagebox_question.xpm" |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
52 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
53 /* These are used for resource management */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
54 #if defined(DW_RESOURCES) && !defined(BUILD_DLL) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
55 extern DWResources _resources; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
56 #endif |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
57 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
58 GdkColor _colors[] = |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
59 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
60 { 0, 0x0000, 0x0000, 0x0000 }, /* 0 black */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
61 { 0, 0xbbbb, 0x0000, 0x0000 }, /* 1 red */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
62 { 0, 0x0000, 0xbbbb, 0x0000 }, /* 2 green */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
63 { 0, 0xaaaa, 0xaaaa, 0x0000 }, /* 3 yellow */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
64 { 0, 0x0000, 0x0000, 0xcccc }, /* 4 blue */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
65 { 0, 0xbbbb, 0x0000, 0xbbbb }, /* 5 magenta */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
66 { 0, 0x0000, 0xbbbb, 0xbbbb }, /* 6 cyan */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
67 { 0, 0xbbbb, 0xbbbb, 0xbbbb }, /* 7 white */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
68 { 0, 0x7777, 0x7777, 0x7777 }, /* 8 grey */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
69 { 0, 0xffff, 0x0000, 0x0000 }, /* 9 bright red */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
70 { 0, 0x0000, 0xffff, 0x0000 }, /* 10 bright green */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
71 { 0, 0xeeee, 0xeeee, 0x0000 }, /* 11 bright yellow */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
72 { 0, 0x0000, 0x0000, 0xffff }, /* 12 bright blue */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
73 { 0, 0xffff, 0x0000, 0xffff }, /* 13 bright magenta */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
74 { 0, 0x0000, 0xeeee, 0xeeee }, /* 14 bright cyan */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
75 { 0, 0xffff, 0xffff, 0xffff }, /* 15 bright white */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
76 }; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
77 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
78 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
79 * List those icons that have transparency first |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
80 */ |
1258
3df86772b625
Updated the list of supported image formats for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1245
diff
changeset
|
81 #define NUM_EXTS 9 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
82 char *image_exts[NUM_EXTS] = |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
83 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
84 ".xpm", |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
85 ".png", |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
86 ".ico", |
1258
3df86772b625
Updated the list of supported image formats for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1245
diff
changeset
|
87 ".icns", |
3df86772b625
Updated the list of supported image formats for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1245
diff
changeset
|
88 ".gif", |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
89 ".jpg", |
1258
3df86772b625
Updated the list of supported image formats for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1245
diff
changeset
|
90 ".jpeg", |
3df86772b625
Updated the list of supported image formats for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1245
diff
changeset
|
91 ".tiff", |
3df86772b625
Updated the list of supported image formats for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1245
diff
changeset
|
92 ".bmp" |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
93 }; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
94 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
95 #ifndef max |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
96 # define max(a,b) (((a) > (b)) ? (a) : (b)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
97 #endif |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
98 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
99 #ifndef min |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
100 # define min(a,b) (((a) < (b)) ? (a) : (b)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
101 #endif |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
102 |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
103 pthread_key_t _dw_fg_color_key; |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
104 pthread_key_t _dw_bg_color_key; |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
105 pthread_key_t _dw_mutex_key; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
106 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
107 GtkWidget *last_window = NULL, *popup = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
108 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
109 static int _dw_ignore_click = 0, _dw_ignore_expand = 0, _dw_color_active = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
110 static pthread_t _dw_thread = (pthread_t)-1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
111 /* Use default border size for the default enlightenment theme */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
112 static int _dw_border_width = 12, _dw_border_height = 28; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
113 |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
114 #define DW_MUTEX_LOCK { if(pthread_self() != _dw_thread && !pthread_getspecific(_dw_mutex_key)) { gdk_threads_enter(); pthread_setspecific(_dw_mutex_key, (void *)1); _locked_by_me = TRUE; } } |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
115 #define DW_MUTEX_UNLOCK { if(pthread_self() != _dw_thread && _locked_by_me == TRUE) { gdk_threads_leave(); pthread_setspecific(_dw_mutex_key, NULL); _locked_by_me = FALSE; } } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
116 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
117 #define DEFAULT_SIZE_WIDTH 12 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
118 #define DEFAULT_SIZE_HEIGHT 6 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
119 #define DEFAULT_TITLEBAR_HEIGHT 22 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
120 |
780
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
121 #define _DW_TREE_TYPE_CONTAINER 1 |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
122 #define _DW_TREE_TYPE_TREE 2 |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
123 #define _DW_TREE_TYPE_LISTBOX 3 |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
124 #define _DW_TREE_TYPE_COMBOBOX 4 |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
125 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
126 /* Signal forwarder prototypes */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
127 static gint _button_press_event(GtkWidget *widget, GdkEventButton *event, gpointer data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
128 static gint _button_release_event(GtkWidget *widget, GdkEventButton *event, gpointer data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
129 static gint _motion_notify_event(GtkWidget *widget, GdkEventMotion *event, gpointer data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
130 static gint _delete_event(GtkWidget *widget, GdkEvent *event, gpointer data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
131 static gint _key_press_event(GtkWidget *widget, GdkEventKey *event, gpointer data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
132 static gint _generic_event(GtkWidget *widget, gpointer data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
133 static gint _configure_event(GtkWidget *widget, GdkEventConfigure *event, gpointer data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
134 static gint _activate_event(GtkWidget *widget, gpointer data); |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
135 static gint _container_enter_event(GtkWidget *widget, GdkEventAny *event, gpointer data); |
785
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
136 static gint _combobox_select_event(GtkWidget *widget, gpointer data); |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
137 static gint _expose_event(GtkWidget *widget, cairo_t *cr, gpointer data); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
138 static gint _set_focus_event(GtkWindow *window, GtkWidget *widget, gpointer data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
139 static gint _tree_context_event(GtkWidget *widget, GdkEventButton *event, gpointer data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
140 static gint _value_changed_event(GtkAdjustment *adjustment, gpointer user_data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
141 static gint _tree_select_event(GtkTreeSelection *sel, gpointer data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
142 static gint _tree_expand_event(GtkTreeView *treeview, GtkTreeIter *arg1, GtkTreePath *arg2, gpointer data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
143 static gint _switch_page_event(GtkNotebook *notebook, GtkWidget *page, guint page_num, gpointer data); |
786
0e251c2f5d08
Implemented the column click event handler...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
785
diff
changeset
|
144 static gint _column_click_event(GtkWidget *widget, gpointer data); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
145 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
146 #ifdef USE_WEBKIT |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
147 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
148 * we need to add these equivalents from webkitwebview.h so we can refer to |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
149 * our own pointers to functions (we don't link with the webkit libraries |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
150 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
151 # define DW_WEBKIT_TYPE_WEB_VIEW (_webkit_web_view_get_type()) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
152 # define DW_WEBKIT_WEB_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), DW_WEBKIT_TYPE_WEB_VIEW, WebKitWebView)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
153 WEBKIT_API GType (*_webkit_web_view_get_type)(void) = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
154 WEBKIT_API void (*_webkit_web_view_load_html_string)(WebKitWebView *, const gchar *, const gchar *) = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
155 WEBKIT_API void (*_webkit_web_view_open)(WebKitWebView *, const gchar *) = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
156 WEBKIT_API GtkWidget *(*_webkit_web_view_new)(void) = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
157 WEBKIT_API void (*_webkit_web_view_go_back)(WebKitWebView *) = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
158 WEBKIT_API void (*_webkit_web_view_go_forward)(WebKitWebView *) = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
159 WEBKIT_API void (*_webkit_web_view_reload)(WebKitWebView *) = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
160 WEBKIT_API void (*_webkit_web_view_stop_loading)(WebKitWebView *) = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
161 WEBKIT_API void (*_webkit_web_frame_print)(WebKitWebFrame *) = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
162 WEBKIT_API WebKitWebFrame *(*_webkit_web_view_get_focused_frame)(WebKitWebView *) = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
163 #endif |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
164 |
874
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
165 GObject *_DWObject = NULL; |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
166 char *_DWDefaultFont = NULL; |
1384
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
167 static char _dw_share_path[PATH_MAX+1] = { 0 }; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
168 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
169 typedef struct |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
170 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
171 void *func; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
172 char name[30]; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
173 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
174 } SignalList; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
175 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
176 typedef struct |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
177 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
178 HWND window; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
179 void *func; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
180 gpointer data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
181 gint cid; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
182 void *intfunc; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
183 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
184 } SignalHandler; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
185 |
836
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
186 #define SIGNALMAX 18 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
187 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
188 /* A list of signal forwarders, to account for paramater differences. */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
189 static SignalList SignalTranslate[SIGNALMAX] = { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
190 { _configure_event, DW_SIGNAL_CONFIGURE }, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
191 { _key_press_event, DW_SIGNAL_KEY_PRESS }, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
192 { _button_press_event, DW_SIGNAL_BUTTON_PRESS }, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
193 { _button_release_event, DW_SIGNAL_BUTTON_RELEASE }, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
194 { _motion_notify_event, DW_SIGNAL_MOTION_NOTIFY }, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
195 { _delete_event, DW_SIGNAL_DELETE }, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
196 { _expose_event, DW_SIGNAL_EXPOSE }, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
197 { _activate_event, "activate" }, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
198 { _generic_event, DW_SIGNAL_CLICKED }, |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
199 { _container_enter_event, DW_SIGNAL_ITEM_ENTER }, |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
200 { _tree_context_event, DW_SIGNAL_ITEM_CONTEXT }, |
785
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
201 { _combobox_select_event, DW_SIGNAL_LIST_SELECT }, |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
202 { _tree_select_event, DW_SIGNAL_ITEM_SELECT }, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
203 { _set_focus_event, DW_SIGNAL_SET_FOCUS }, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
204 { _value_changed_event, DW_SIGNAL_VALUE_CHANGED }, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
205 { _switch_page_event, DW_SIGNAL_SWITCH_PAGE }, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
206 { _column_click_event, DW_SIGNAL_COLUMN_CLICK }, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
207 { _tree_expand_event, DW_SIGNAL_TREE_EXPAND } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
208 }; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
209 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
210 /* Alignment flags */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
211 #define DW_CENTER 0.5f |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
212 #define DW_LEFT 0.0f |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
213 #define DW_RIGHT 1.0f |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
214 #define DW_TOP 0.0f |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
215 #define DW_BOTTOM 1.0f |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
216 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
217 /* MDI Support Code */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
218 #define GTK_MDI(obj) G_TYPE_CHECK_INSTANCE_CAST (obj, gtk_mdi_get_type (), GtkMdi) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
219 #define GTK_MDI_CLASS(klass) G_TYPE_CHECK_CLASS_CAST (klass, gtk_mdi_get_type (), GtkMdiClass) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
220 #define GTK_IS_MDI(obj) G_TYPE_CHECK_INSTANCE_TYPE (obj, gtk_mdi_get_type ()) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
221 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
222 typedef struct _GtkMdi GtkMdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
223 typedef struct _GtkMdiClass GtkMdiClass; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
224 typedef struct _GtkMdiDragInfo GtkMdiDragInfo; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
225 typedef enum _GtkMdiChildState GtkMdiChildState; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
226 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
227 enum _GtkMdiChildState |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
228 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
229 CHILD_NORMAL, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
230 CHILD_MAXIMIZED, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
231 CHILD_ICONIFIED |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
232 }; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
233 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
234 struct _GtkMdi |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
235 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
236 GtkContainer container; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
237 GList *children; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
238 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
239 GdkPoint drag_start; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
240 gint drag_button; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
241 }; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
242 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
243 struct _GtkMdiClass |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
244 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
245 GtkContainerClass parent_class; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
246 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
247 void (*mdi) (GtkMdi * mdi); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
248 }; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
249 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
250 #include "gtk/maximize.xpm" |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
251 #include "gtk/minimize.xpm" |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
252 #include "gtk/kill.xpm" |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
253 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
254 #define GTK_MDI_BACKGROUND "Grey70" |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
255 #define GTK_MDI_LABEL_BACKGROUND "RoyalBlue4" |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
256 #define GTK_MDI_LABEL_FOREGROUND "white" |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
257 #define GTK_MDI_DEFAULT_WIDTH 0 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
258 #define GTK_MDI_DEFAULT_HEIGHT 0 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
259 #define GTK_MDI_MIN_HEIGHT 22 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
260 #define GTK_MDI_MIN_WIDTH 55 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
261 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
262 typedef struct _GtkMdiChild GtkMdiChild; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
263 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
264 struct _GtkMdiChild |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
265 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
266 GtkWidget *widget; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
267 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
268 GtkWidget *child; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
269 GtkMdi *mdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
270 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
271 gint x; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
272 gint y; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
273 gint width; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
274 gint height; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
275 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
276 GtkMdiChildState state; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
277 }; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
278 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
279 static void gtk_mdi_class_init(GtkMdiClass *klass); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
280 static void gtk_mdi_init(GtkMdi *mdi); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
281 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
282 static void gtk_mdi_realize(GtkWidget *widget); |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
283 static void gtk_mdi_size_allocate(GtkWidget *widget, GtkAllocation *allocation); |
877
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
284 static gboolean gtk_mdi_draw(GtkWidget *widget, cairo_t *cr); |
836
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
285 static void gtk_mdi_get_preferred_width (GtkWidget *widget, gint *minimum_width, gint *natural_width); |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
286 static void gtk_mdi_get_preferred_height (GtkWidget *widget, gint *minimum_height, gint *natural_height); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
287 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
288 /* Callbacks */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
289 static gboolean move_child_callback(GtkWidget *widget, GdkEvent *event, gpointer data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
290 static gboolean resize_child_callback(GtkWidget *widget, GdkEvent *event, gpointer data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
291 static gboolean iconify_child_callback(GtkWidget *widget, GdkEvent *event, gpointer data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
292 static gboolean maximize_child_callback(GtkWidget *widget, GdkEvent *event, gpointer data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
293 static gboolean kill_child_callback(GtkWidget *widget, GdkEvent *event, gpointer data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
294 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
295 static void gtk_mdi_add(GtkContainer *container, GtkWidget *widget); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
296 static void gtk_mdi_remove_true(GtkContainer *container, GtkWidget *widget); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
297 static void gtk_mdi_forall(GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
298 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
299 static GtkMdiChild *get_child(GtkMdi *mdi, GtkWidget * widget); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
300 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
301 static GType gtk_mdi_get_type(void) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
302 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
303 static GType mdi_type = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
304 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
305 if (!mdi_type) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
306 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
307 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
308 static const GTypeInfo mdi_info = |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
309 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
310 sizeof (GtkMdiClass), |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
311 NULL, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
312 NULL, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
313 (GClassInitFunc) gtk_mdi_class_init, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
314 NULL, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
315 NULL, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
316 sizeof (GtkMdi), |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
317 0, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
318 (GInstanceInitFunc) gtk_mdi_init, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
319 }; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
320 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
321 mdi_type = g_type_register_static (GTK_TYPE_CONTAINER, "GtkMdi", &mdi_info, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
322 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
323 return mdi_type; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
324 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
325 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
326 /* Local data */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
327 static GtkWidgetClass *parent_class = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
328 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
329 static void gtk_mdi_class_init(GtkMdiClass *class) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
330 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
331 GtkWidgetClass *widget_class; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
332 GtkContainerClass *container_class; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
333 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
334 widget_class = (GtkWidgetClass *) class; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
335 container_class = (GtkContainerClass *) class; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
336 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
337 parent_class = g_type_class_ref (GTK_TYPE_CONTAINER); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
338 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
339 widget_class->realize = gtk_mdi_realize; |
877
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
340 widget_class->draw = gtk_mdi_draw; |
836
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
341 widget_class->get_preferred_height = gtk_mdi_get_preferred_height; |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
342 widget_class->get_preferred_width = gtk_mdi_get_preferred_width; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
343 widget_class->size_allocate = gtk_mdi_size_allocate; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
344 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
345 container_class->add = gtk_mdi_add; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
346 container_class->remove = gtk_mdi_remove_true; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
347 container_class->forall = gtk_mdi_forall; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
348 class->mdi = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
349 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
350 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
351 static void gtk_mdi_init(GtkMdi *mdi) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
352 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
353 mdi->drag_button = -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
354 mdi->children = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
355 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
356 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
357 static GtkWidget *gtk_mdi_new(void) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
358 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
359 GtkWidget *mdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
360 GdkColor background; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
361 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
362 mdi = GTK_WIDGET (g_object_new (gtk_mdi_get_type (), NULL)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
363 gdk_color_parse (GTK_MDI_BACKGROUND, &background); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
364 gtk_widget_modify_bg (mdi, GTK_STATE_NORMAL, &background); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
365 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
366 return mdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
367 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
368 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
369 static void gtk_mdi_put(GtkMdi *mdi, GtkWidget *child_widget, gint x, gint y, GtkWidget *label) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
370 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
371 GtkMdiChild *child; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
372 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
373 GtkWidget *table; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
374 GtkWidget *button[3]; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
375 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
376 GtkWidget *child_box; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
377 GtkWidget *top_event_box; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
378 GtkWidget *bottom_event_box; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
379 GtkWidget *child_widget_box; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
380 GtkWidget *image; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
381 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
382 GdkColor color; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
383 gint i, j; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
384 GdkCursor *cursor; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
385 GdkPixbuf *pixbuf; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
386 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
387 child_box = gtk_event_box_new (); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
388 child_widget_box = gtk_event_box_new (); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
389 top_event_box = gtk_event_box_new (); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
390 bottom_event_box = gtk_event_box_new (); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
391 table = gtk_table_new (4, 7, FALSE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
392 gtk_table_set_row_spacings (GTK_TABLE (table), 1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
393 gtk_table_set_col_spacings (GTK_TABLE (table), 1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
394 gtk_table_set_row_spacing (GTK_TABLE (table), 3, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
395 gtk_table_set_col_spacing (GTK_TABLE (table), 6, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
396 gtk_table_set_row_spacing (GTK_TABLE (table), 2, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
397 gtk_table_set_col_spacing (GTK_TABLE (table), 5, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
398 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
399 for (i = 0; i < 3; i++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
400 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
401 button[i] = gtk_event_box_new (); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
402 gtk_widget_set_events (button[0], GDK_BUTTON_PRESS_MASK); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
403 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
404 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
405 gdk_color_parse (GTK_MDI_LABEL_BACKGROUND, &color); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
406 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
407 gtk_widget_modify_bg (top_event_box, GTK_STATE_NORMAL, &color); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
408 gtk_widget_modify_bg (bottom_event_box, GTK_STATE_NORMAL, &color); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
409 gtk_widget_modify_bg (child_box, GTK_STATE_NORMAL, &color); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
410 for (i = GTK_STATE_NORMAL; i < GTK_STATE_ACTIVE; i++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
411 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
412 for (j = 0; j < 3; j++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
413 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
414 gtk_widget_modify_bg (button[j], i, &color); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
415 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
416 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
417 gdk_color_parse (GTK_MDI_LABEL_FOREGROUND, &color); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
418 gtk_widget_modify_fg (label, GTK_STATE_NORMAL, &color); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
419 gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
420 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
421 gtk_container_add (GTK_CONTAINER (top_event_box), label); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
422 gtk_container_add (GTK_CONTAINER (child_widget_box), child_widget); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
423 gtk_widget_set_size_request (bottom_event_box, 2, 2); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
424 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
425 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
426 pixbuf = gdk_pixbuf_new_from_xpm_data((const gchar **)minimize_xpm); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
427 image = gtk_image_new_from_pixbuf(pixbuf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
428 gtk_widget_show(image); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
429 gtk_container_add (GTK_CONTAINER (button[0]), image); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
430 pixbuf = gdk_pixbuf_new_from_xpm_data((const gchar **) maximize_xpm); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
431 image = gtk_image_new_from_pixbuf(pixbuf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
432 gtk_widget_show(image); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
433 gtk_container_add (GTK_CONTAINER (button[1]), image); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
434 pixbuf = gdk_pixbuf_new_from_xpm_data((const gchar **) kill_xpm); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
435 image = gtk_image_new_from_pixbuf(pixbuf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
436 gtk_widget_show(image); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
437 gtk_container_add (GTK_CONTAINER (button[2]), image); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
438 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
439 gtk_table_attach (GTK_TABLE (table), child_widget_box, 1, 6, 2, 3, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
440 GTK_EXPAND | GTK_SHRINK | GTK_FILL, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
441 GTK_EXPAND | GTK_SHRINK | GTK_FILL, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
442 0, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
443 gtk_table_attach (GTK_TABLE (table), top_event_box, 1, 2, 1, 2, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
444 GTK_FILL | GTK_EXPAND | GTK_SHRINK, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
445 0, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
446 0, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
447 gtk_table_attach (GTK_TABLE (table), bottom_event_box, 6, 7, 3, 4, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
448 0, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
449 0, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
450 0, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
451 gtk_table_attach (GTK_TABLE (table), button[0], 2, 3, 1, 2, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
452 0, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
453 0, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
454 0, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
455 gtk_table_attach (GTK_TABLE (table), button[1], 3, 4, 1, 2, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
456 0, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
457 0, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
458 0, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
459 gtk_table_attach (GTK_TABLE (table), button[2], 4, 5, 1, 2, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
460 0, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
461 0, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
462 0, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
463 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
464 gtk_container_add (GTK_CONTAINER (child_box), table); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
465 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
466 child = g_new (GtkMdiChild, 1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
467 child->widget = child_box; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
468 child->x = x; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
469 child->y = y; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
470 child->width = -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
471 child->height = -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
472 child->child = child_widget; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
473 child->mdi = mdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
474 child->state = CHILD_NORMAL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
475 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
476 gtk_widget_set_parent (child_box, GTK_WIDGET (mdi)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
477 mdi->children = g_list_append (mdi->children, child); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
478 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
479 gtk_widget_show (child_box); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
480 gtk_widget_show (table); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
481 gtk_widget_show (top_event_box); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
482 gtk_widget_show (bottom_event_box); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
483 gtk_widget_show (child_widget_box); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
484 for (i = 0; i < 3; i++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
485 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
486 gtk_widget_show (button[i]); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
487 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
488 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
489 cursor = gdk_cursor_new (GDK_HAND1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
490 gtk_widget_realize (top_event_box); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
491 gdk_window_set_cursor (gtk_widget_get_window(top_event_box), cursor); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
492 cursor = gdk_cursor_new (GDK_BOTTOM_RIGHT_CORNER); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
493 gtk_widget_realize (bottom_event_box); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
494 gdk_window_set_cursor (gtk_widget_get_window(bottom_event_box), cursor); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
495 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
496 g_signal_connect (G_OBJECT (top_event_box), "event", |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
497 G_CALLBACK (move_child_callback), |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
498 child); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
499 g_signal_connect (G_OBJECT (bottom_event_box), "event", |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
500 G_CALLBACK (resize_child_callback), |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
501 child); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
502 g_signal_connect (G_OBJECT (button[0]), "button_press_event", |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
503 G_CALLBACK (iconify_child_callback), |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
504 child); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
505 g_signal_connect (G_OBJECT (button[1]), "button_press_event", |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
506 G_CALLBACK (maximize_child_callback), |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
507 child); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
508 g_signal_connect (G_OBJECT (button[2]), "button_press_event", |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
509 G_CALLBACK (kill_child_callback), |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
510 child); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
511 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
512 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
513 static void gtk_mdi_move(GtkMdi *mdi, GtkWidget *widget, gint x, gint y) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
514 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
515 GtkMdiChild *child; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
516 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
517 g_return_if_fail(GTK_IS_MDI(mdi)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
518 g_return_if_fail(GTK_IS_WIDGET(widget)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
519 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
520 child = get_child(mdi, widget); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
521 g_return_if_fail(child); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
522 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
523 child->x = x; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
524 child->y = y; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
525 if (gtk_widget_get_visible(widget) && gtk_widget_get_visible(GTK_WIDGET(mdi))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
526 gtk_widget_queue_resize(GTK_WIDGET(widget)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
527 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
528 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
529 static void gtk_mdi_get_pos(GtkMdi *mdi, GtkWidget *widget, gint *x, gint *y) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
530 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
531 GtkMdiChild *child; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
532 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
533 g_return_if_fail(GTK_IS_MDI (mdi)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
534 g_return_if_fail(GTK_IS_WIDGET (widget)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
535 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
536 child = get_child(mdi, widget); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
537 g_return_if_fail(child); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
538 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
539 *x = child->x; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
540 *y = child->y; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
541 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
542 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
543 static void gtk_mdi_set_state(GtkMdi *mdi, GtkWidget *widget, GtkMdiChildState state) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
544 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
545 GtkMdiChild *child; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
546 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
547 g_return_if_fail (GTK_IS_MDI (mdi)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
548 g_return_if_fail (GTK_IS_WIDGET (widget)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
549 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
550 child = get_child (mdi, widget); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
551 g_return_if_fail (child); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
552 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
553 child->state = state; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
554 if (gtk_widget_get_visible(child->widget) && gtk_widget_get_visible(GTK_WIDGET(mdi))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
555 gtk_widget_queue_resize(GTK_WIDGET(child->widget)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
556 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
557 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
558 static void gtk_mdi_remove(GtkMdi *mdi, GtkWidget *widget) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
559 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
560 GtkMdiChild *child; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
561 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
562 g_return_if_fail (GTK_IS_MDI (mdi)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
563 child = get_child (mdi, widget); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
564 g_return_if_fail (child); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
565 gtk_mdi_remove_true (GTK_CONTAINER (mdi), child->widget); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
566 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
567 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
568 static void gtk_mdi_realize(GtkWidget *widget) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
569 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
570 GtkMdi *mdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
571 GdkWindowAttr attributes; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
572 gint attributes_mask; |
1185
415c25f87d57
Fix for MDI support for GTK3. Haven't tested completely...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1177
diff
changeset
|
573 GdkWindow *thiswindow; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
574 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
575 mdi = GTK_MDI (widget); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
576 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
577 g_return_if_fail (widget != NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
578 g_return_if_fail (GTK_IS_MDI (mdi)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
579 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
580 gtk_widget_set_realized(widget, TRUE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
581 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
582 GtkAllocation allocation; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
583 gtk_widget_get_allocation(widget, &allocation); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
584 attributes.x = allocation.x; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
585 attributes.y = allocation.y; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
586 attributes.width = allocation.width; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
587 attributes.height = allocation.height; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
588 attributes.wclass = GDK_INPUT_OUTPUT; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
589 attributes.window_type = GDK_WINDOW_CHILD; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
590 attributes.event_mask = gtk_widget_get_events (widget) | |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
591 GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
592 GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
593 GDK_POINTER_MOTION_HINT_MASK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
594 attributes.visual = gtk_widget_get_visual (widget); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
595 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
596 attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; |
1185
415c25f87d57
Fix for MDI support for GTK3. Haven't tested completely...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1177
diff
changeset
|
597 thiswindow = gdk_window_new (gtk_widget_get_parent_window(widget), &attributes, attributes_mask); |
415c25f87d57
Fix for MDI support for GTK3. Haven't tested completely...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1177
diff
changeset
|
598 gtk_widget_set_window(widget, thiswindow); |
415c25f87d57
Fix for MDI support for GTK3. Haven't tested completely...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1177
diff
changeset
|
599 |
415c25f87d57
Fix for MDI support for GTK3. Haven't tested completely...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1177
diff
changeset
|
600 gtk_widget_set_style(widget, gtk_style_attach (gtk_widget_get_style(widget), thiswindow)); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
601 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
602 gdk_window_set_user_data (gtk_widget_get_window(widget), widget); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
603 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
604 gtk_style_set_background (gtk_widget_get_style(widget), gtk_widget_get_window(widget), GTK_STATE_NORMAL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
605 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
606 |
836
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
607 static void gtk_mdi_get_preferred_width (GtkWidget *widget, gint *minimum_width, gint *natural_width) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
608 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
609 GtkMdi *mdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
610 GtkMdiChild *child; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
611 GList *children; |
836
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
612 gint child_minimum_width, child_natural_width; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
613 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
614 mdi = GTK_MDI (widget); |
836
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
615 *natural_width = *minimum_width = GTK_MDI_DEFAULT_WIDTH; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
616 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
617 children = mdi->children; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
618 while(children) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
619 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
620 child = children->data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
621 children = children->next; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
622 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
623 if(gtk_widget_get_visible(child->widget)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
624 { |
836
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
625 gtk_widget_get_preferred_width(child->widget, &child_minimum_width, &child_natural_width); |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
626 } |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
627 } |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
628 } |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
629 |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
630 static void gtk_mdi_get_preferred_height (GtkWidget *widget, gint *minimum_height, gint *natural_height) |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
631 { |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
632 GtkMdi *mdi; |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
633 GtkMdiChild *child; |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
634 GList *children; |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
635 gint child_minimum_height, child_natural_height; |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
636 |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
637 mdi = GTK_MDI (widget); |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
638 *natural_height = *minimum_height = GTK_MDI_DEFAULT_HEIGHT; |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
639 |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
640 children = mdi->children; |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
641 while(children) |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
642 { |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
643 child = children->data; |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
644 children = children->next; |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
645 |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
646 if(gtk_widget_get_visible(child->widget)) |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
647 { |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
648 gtk_widget_get_preferred_height(child->widget, &child_minimum_height, &child_natural_height); |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
649 } |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
650 } |
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
651 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
652 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
653 static void gtk_mdi_size_allocate(GtkWidget *widget, GtkAllocation *allocation) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
654 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
655 GtkMdi *mdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
656 GtkMdiChild *child; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
657 GtkAllocation child_allocation; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
658 GtkRequisition child_requisition; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
659 GList *children; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
660 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
661 mdi = GTK_MDI (widget); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
662 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
663 gtk_widget_set_allocation(widget, allocation); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
664 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
665 if(gtk_widget_get_realized(widget)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
666 gdk_window_move_resize (gtk_widget_get_window(widget), |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
667 allocation->x, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
668 allocation->y, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
669 allocation->width, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
670 allocation->height); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
671 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
672 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
673 children = mdi->children; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
674 while(children) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
675 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
676 child = children->data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
677 children = children->next; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
678 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
679 if(gtk_widget_get_visible(child->widget)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
680 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
681 gtk_widget_get_child_requisition (child->widget, &child_requisition); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
682 child_allocation.x = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
683 child_allocation.y = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
684 switch (child->state) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
685 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
686 case CHILD_NORMAL: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
687 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
688 if ((child->width < 0) && (child->height < 0)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
689 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
690 child_allocation.width = child_requisition.width; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
691 child_allocation.height = child_requisition.height; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
692 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
693 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
694 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
695 child_allocation.width = child->width; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
696 child_allocation.height = child->height; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
697 child->width = -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
698 child->height = -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
699 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
700 child_allocation.x += child->x; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
701 child_allocation.y += child->y; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
702 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
703 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
704 case CHILD_MAXIMIZED: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
705 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
706 if ((child->width < 0) && (child->height < 0)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
707 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
708 child->width = child_requisition.width; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
709 child->height = child_requisition.height; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
710 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
711 child_allocation.width = allocation->width; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
712 child_allocation.height = allocation->height; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
713 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
714 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
715 case CHILD_ICONIFIED: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
716 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
717 if ((child->width < 0) && (child->height < 0)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
718 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
719 child->width = child_requisition.width; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
720 child->height = child_requisition.height; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
721 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
722 child_allocation.x += child->x; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
723 child_allocation.y += child->y; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
724 child_allocation.width = child_requisition.width; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
725 child_allocation.height = GTK_MDI_MIN_HEIGHT; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
726 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
727 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
728 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
729 gtk_widget_size_allocate (child->widget, &child_allocation); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
730 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
731 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
732 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
733 |
877
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
734 static gboolean gtk_mdi_draw(GtkWidget *widget, cairo_t *cr) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
735 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
736 GtkMdiChild *child; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
737 GList *children; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
738 GtkMdi *mdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
739 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
740 g_return_val_if_fail (widget != NULL, FALSE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
741 g_return_val_if_fail (GTK_IS_MDI (widget), FALSE); |
836
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
742 g_return_val_if_fail (cr != NULL, FALSE); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
743 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
744 mdi = GTK_MDI (widget); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
745 for (children = mdi->children; children; children = children->next) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
746 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
747 child = (GtkMdiChild *) children->data; |
836
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
748 gtk_container_propagate_draw (GTK_CONTAINER (mdi), |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
749 child->widget, |
836
28f9810dfebc
More work on getting MDI working again.... still doesn't work right unfortunately.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
835
diff
changeset
|
750 cr); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
751 } |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
752 return FALSE; |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
753 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
754 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
755 static void gtk_mdi_add(GtkContainer *container, GtkWidget *widget) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
756 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
757 GtkWidget *label; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
758 label = gtk_label_new (""); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
759 gtk_mdi_put (GTK_MDI (container), widget, 0, 0, label); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
760 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
761 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
762 static void gtk_mdi_remove_true(GtkContainer *container, GtkWidget *widget) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
763 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
764 GtkMdi *mdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
765 GtkMdiChild *child = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
766 GList *children; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
767 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
768 mdi = GTK_MDI (container); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
769 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
770 children = mdi->children; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
771 while (children) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
772 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
773 child = children->data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
774 if (child->widget == widget) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
775 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
776 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
777 children = children->next; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
778 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
779 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
780 if(child) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
781 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
782 gtk_widget_unparent (child->widget); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
783 g_free (child); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
784 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
785 mdi->children = g_list_remove_link (mdi->children, children); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
786 g_list_free (children); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
787 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
788 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
789 static void gtk_mdi_forall(GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
790 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
791 GtkMdi *mdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
792 GtkMdiChild *child; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
793 GList *children; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
794 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
795 g_return_if_fail (callback != NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
796 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
797 mdi = GTK_MDI (container); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
798 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
799 children = mdi->children; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
800 while (children) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
801 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
802 child = children->data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
803 children = children->next; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
804 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
805 (*callback) (child->widget, callback_data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
806 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
807 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
808 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
809 static gboolean move_child_callback(GtkWidget *widget, GdkEvent *event, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
810 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
811 GtkMdi *mdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
812 GtkMdiChild *child; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
813 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
814 child = (GtkMdiChild *) data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
815 mdi = child->mdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
816 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
817 g_return_val_if_fail (GTK_IS_MDI (mdi), FALSE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
818 g_return_val_if_fail (GTK_IS_EVENT_BOX (widget), FALSE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
819 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
820 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
821 switch (event->type) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
822 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
823 case GDK_2BUTTON_PRESS: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
824 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
825 gdk_window_raise (gtk_widget_get_window(child->widget)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
826 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
827 case GDK_BUTTON_PRESS: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
828 if (child->state == CHILD_MAXIMIZED) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
829 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
830 if (mdi->drag_button < 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
831 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
832 if (gdk_pointer_grab (event->button.window, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
833 FALSE, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
834 GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
835 GDK_BUTTON_RELEASE_MASK, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
836 NULL, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
837 NULL, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
838 event->button.time) != GDK_GRAB_SUCCESS) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
839 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
840 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
841 mdi->drag_button = event->button.button; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
842 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
843 mdi->drag_start.x = event->button.x; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
844 mdi->drag_start.y = event->button.y; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
845 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
846 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
847 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
848 case GDK_BUTTON_RELEASE: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
849 if (mdi->drag_button < 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
850 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
851 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
852 if (mdi->drag_button == event->button.button) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
853 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
854 int x, y; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
855 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
856 gdk_pointer_ungrab (event->button.time); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
857 mdi->drag_button = -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
858 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
859 x = event->button.x + child->x - mdi->drag_start.x; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
860 y = event->button.y + child->y - mdi->drag_start.y; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
861 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
862 gtk_mdi_move (mdi, child->child, x, y); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
863 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
864 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
865 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
866 case GDK_MOTION_NOTIFY: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
867 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
868 int x, y; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
869 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
870 if (mdi->drag_button < 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
871 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
872 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
873 gdk_window_get_pointer (gtk_widget_get_window(widget), &x, &y, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
874 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
875 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
876 x = x - mdi->drag_start.x + child->x; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
877 y = y - mdi->drag_start.y + child->y; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
878 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
879 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
880 gtk_mdi_move (mdi, child->child, x, y); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
881 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
882 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
883 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
884 default: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
885 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
886 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
887 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
888 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
889 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
890 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
891 static gboolean resize_child_callback(GtkWidget *widget, GdkEvent *event, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
892 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
893 GtkMdi *mdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
894 GtkMdiChild *child; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
895 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
896 child = (GtkMdiChild *) data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
897 mdi = child->mdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
898 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
899 g_return_val_if_fail (GTK_IS_MDI (mdi), FALSE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
900 g_return_val_if_fail (GTK_IS_EVENT_BOX (widget), FALSE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
901 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
902 switch (event->type) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
903 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
904 case GDK_BUTTON_PRESS: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
905 if (mdi->drag_button < 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
906 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
907 if (gdk_pointer_grab (event->button.window, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
908 FALSE, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
909 GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
910 GDK_BUTTON_RELEASE_MASK, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
911 NULL, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
912 NULL, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
913 event->button.time) != GDK_GRAB_SUCCESS) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
914 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
915 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
916 mdi->drag_button = event->button.button; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
917 if ((child->state == CHILD_MAXIMIZED) || (child->state == CHILD_ICONIFIED)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
918 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
919 GtkAllocation allocation; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
920 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
921 child->state = CHILD_NORMAL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
922 gtk_widget_get_allocation(child->widget, &allocation); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
923 child->x = allocation.x; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
924 child->y = allocation.y; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
925 child->width = allocation.width; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
926 child->height = allocation.height; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
927 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
928 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
929 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
930 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
931 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
932 case GDK_BUTTON_RELEASE: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
933 if (mdi->drag_button < 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
934 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
935 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
936 if (mdi->drag_button == event->button.button) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
937 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
938 int width, height; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
939 GtkAllocation allocation; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
940 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
941 gdk_pointer_ungrab (event->button.time); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
942 mdi->drag_button = -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
943 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
944 gtk_widget_get_allocation(widget, &allocation); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
945 width = event->button.x + allocation.x; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
946 height = event->button.y + allocation.y; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
947 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
948 width = MAX (width, GTK_MDI_MIN_WIDTH); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
949 height = MAX (height, GTK_MDI_MIN_HEIGHT); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
950 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
951 gtk_widget_set_size_request (child->widget, width, height); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
952 gtk_widget_queue_resize (child->widget); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
953 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
954 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
955 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
956 case GDK_MOTION_NOTIFY: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
957 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
958 int x, y; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
959 int width, height; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
960 GtkAllocation allocation; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
961 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
962 if (mdi->drag_button < 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
963 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
964 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
965 gdk_window_get_pointer (gtk_widget_get_window(widget), &x, &y, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
966 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
967 gtk_widget_get_allocation(widget, &allocation); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
968 width = x + allocation.x; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
969 height = y + allocation.y; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
970 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
971 width = MAX (width, GTK_MDI_MIN_WIDTH); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
972 height = MAX (height, GTK_MDI_MIN_HEIGHT); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
973 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
974 gtk_widget_set_size_request (child->widget, width, height); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
975 gtk_widget_queue_resize (child->widget); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
976 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
977 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
978 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
979 default: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
980 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
981 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
982 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
983 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
984 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
985 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
986 static gboolean iconify_child_callback (GtkWidget *widget, GdkEvent *event, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
987 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
988 GtkMdiChild *child; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
989 child = (GtkMdiChild *) data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
990 if(child->state == CHILD_ICONIFIED) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
991 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
992 child->state = CHILD_NORMAL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
993 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
994 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
995 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
996 child->state = CHILD_ICONIFIED; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
997 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
998 if(gtk_widget_get_visible(child->widget)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
999 gtk_widget_queue_resize(GTK_WIDGET (child->widget)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1000 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1001 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1002 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1003 static gboolean maximize_child_callback (GtkWidget *widget, GdkEvent * event, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1004 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1005 GtkMdiChild *child; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1006 child = (GtkMdiChild *) data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1007 if (child->state == CHILD_MAXIMIZED) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1008 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1009 child->state = CHILD_NORMAL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1010 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1011 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1012 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1013 child->state = CHILD_MAXIMIZED; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1014 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1015 if(gtk_widget_get_visible(child->widget)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1016 gtk_widget_queue_resize(GTK_WIDGET (child->widget)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1017 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1018 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1019 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1020 static gboolean kill_child_callback (GtkWidget *widget, GdkEvent *event, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1021 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1022 GtkMdiChild *child; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1023 GtkMdi *mdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1024 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1025 child = (GtkMdiChild *) data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1026 mdi = child->mdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1027 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1028 g_return_val_if_fail (GTK_IS_MDI (mdi), FALSE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1029 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1030 gtk_mdi_remove_true (GTK_CONTAINER (mdi), child->widget); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1031 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1032 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1033 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1034 static GtkMdiChild *get_child (GtkMdi *mdi, GtkWidget *widget) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1035 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1036 GList *children; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1037 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1038 children = mdi->children; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1039 while (children) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1040 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1041 GtkMdiChild *child; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1042 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1043 child = children->data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1044 children = children->next; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1045 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1046 if (child->child == widget) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1047 return child; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1048 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1049 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1050 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1051 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1052 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1053 static void _dw_msleep(long period) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1054 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1055 #ifdef __sun__ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1056 /* usleep() isn't threadsafe on Solaris */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1057 struct timespec req; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1058 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1059 req.tv_sec = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1060 req.tv_nsec = period * 10000000; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1061 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1062 nanosleep(&req, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1063 #else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1064 usleep(period * 1000); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1065 #endif |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1066 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1067 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1068 /* Finds the translation function for a given signal name */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1069 static void *_findsigfunc(char *signame) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1070 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1071 int z; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1072 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1073 for(z=0;z<SIGNALMAX;z++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1074 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1075 if(strcasecmp(signame, SignalTranslate[z].name) == 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1076 return SignalTranslate[z].func; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1077 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1078 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1079 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1080 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1081 static SignalHandler _get_signal_handler(GtkWidget *widget, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1082 { |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
1083 int counter = GPOINTER_TO_INT(data); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1084 SignalHandler sh; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1085 char text[100]; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1086 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1087 sprintf(text, "_dw_sigwindow%d", counter); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1088 sh.window = (HWND)g_object_get_data(G_OBJECT(widget), text); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1089 sprintf(text, "_dw_sigfunc%d", counter); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1090 sh.func = (void *)g_object_get_data(G_OBJECT(widget), text); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1091 sprintf(text, "_dw_intfunc%d", counter); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1092 sh.intfunc = (void *)g_object_get_data(G_OBJECT(widget), text); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1093 sprintf(text, "_dw_sigdata%d", counter); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1094 sh.data = g_object_get_data(G_OBJECT(widget), text); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1095 sprintf(text, "_dw_sigcid%d", counter); |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
1096 sh.cid = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), text)); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1097 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1098 return sh; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1099 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1100 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1101 static void _remove_signal_handler(GtkWidget *widget, int counter) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1102 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1103 char text[100]; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1104 gint cid; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1105 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1106 sprintf(text, "_dw_sigcid%d", counter); |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
1107 cid = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), text)); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1108 g_signal_handler_disconnect(G_OBJECT(widget), cid); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1109 g_object_set_data(G_OBJECT(widget), text, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1110 sprintf(text, "_dw_sigwindow%d", counter); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1111 g_object_set_data(G_OBJECT(widget), text, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1112 sprintf(text, "_dw_sigfunc%d", counter); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1113 g_object_set_data(G_OBJECT(widget), text, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1114 sprintf(text, "_dw_intfunc%d", counter); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1115 g_object_set_data(G_OBJECT(widget), text, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1116 sprintf(text, "_dw_sigdata%d", counter); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1117 g_object_set_data(G_OBJECT(widget), text, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1118 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1119 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1120 static int _set_signal_handler(GtkWidget *widget, HWND window, void *func, gpointer data, void *intfunc) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1121 { |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
1122 int counter = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "_dw_sigcounter")); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1123 char text[100]; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1124 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1125 sprintf(text, "_dw_sigwindow%d", counter); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1126 g_object_set_data(G_OBJECT(widget), text, (gpointer)window); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1127 sprintf(text, "_dw_sigfunc%d", counter); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1128 g_object_set_data(G_OBJECT(widget), text, (gpointer)func); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1129 sprintf(text, "_dw_intfunc%d", counter); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1130 g_object_set_data(G_OBJECT(widget), text, (gpointer)intfunc); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1131 sprintf(text, "_dw_sigdata%d", counter); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1132 g_object_set_data(G_OBJECT(widget), text, (gpointer)data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1133 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1134 counter++; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1135 g_object_set_data(G_OBJECT(widget), "_dw_sigcounter", GINT_TO_POINTER(counter)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1136 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1137 return counter - 1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1138 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1139 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1140 static void _set_signal_handler_id(GtkWidget *widget, int counter, gint cid) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1141 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1142 char text[100]; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1143 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1144 sprintf(text, "_dw_sigcid%d", counter); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1145 g_object_set_data(G_OBJECT(widget), text, GINT_TO_POINTER(cid)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1146 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1147 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1148 static gint _set_focus_event(GtkWindow *window, GtkWidget *widget, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1149 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1150 SignalHandler work = _get_signal_handler((GtkWidget *)window, data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1151 int retval = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1152 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1153 if(work.window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1154 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1155 int (*setfocusfunc)(HWND, void *) = work.func; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1156 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1157 retval = setfocusfunc(work.window, work.data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1158 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1159 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1160 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1161 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1162 static gint _button_press_event(GtkWidget *widget, GdkEventButton *event, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1163 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1164 SignalHandler work = _get_signal_handler(widget, data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1165 int retval = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1166 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1167 if(work.window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1168 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1169 int (*buttonfunc)(HWND, int, int, int, void *) = work.func; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1170 int mybutton = event->button; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1171 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1172 if(event->button == 3) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1173 mybutton = 2; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1174 else if(event->button == 2) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1175 mybutton = 3; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1176 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1177 retval = buttonfunc(work.window, event->x, event->y, mybutton, work.data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1178 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1179 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1180 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1181 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1182 static gint _button_release_event(GtkWidget *widget, GdkEventButton *event, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1183 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1184 SignalHandler work = _get_signal_handler(widget, data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1185 int retval = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1186 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1187 if(work.window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1188 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1189 int (*buttonfunc)(HWND, int, int, int, void *) = work.func; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1190 int mybutton = event->button; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1191 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1192 if(event->button == 3) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1193 mybutton = 2; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1194 else if(event->button == 2) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1195 mybutton = 3; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1196 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1197 retval = buttonfunc(work.window, event->x, event->y, mybutton, work.data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1198 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1199 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1200 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1201 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1202 static gint _motion_notify_event(GtkWidget *widget, GdkEventMotion *event, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1203 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1204 SignalHandler work = _get_signal_handler(widget, data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1205 int retval = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1206 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1207 if(work.window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1208 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1209 int (*motionfunc)(HWND, int, int, int, void *) = work.func; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1210 int keys = 0, x, y; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1211 GdkModifierType state; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1212 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1213 if (event->is_hint) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1214 gdk_window_get_pointer (event->window, &x, &y, &state); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1215 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1216 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1217 x = event->x; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1218 y = event->y; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1219 state = event->state; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1220 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1221 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1222 if (state & GDK_BUTTON1_MASK) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1223 keys = DW_BUTTON1_MASK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1224 if (state & GDK_BUTTON3_MASK) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1225 keys |= DW_BUTTON2_MASK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1226 if (state & GDK_BUTTON2_MASK) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1227 keys |= DW_BUTTON3_MASK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1228 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1229 retval = motionfunc(work.window, x, y, keys, work.data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1230 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1231 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1232 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1233 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1234 static gint _delete_event(GtkWidget *widget, GdkEvent *event, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1235 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1236 SignalHandler work = _get_signal_handler(widget, data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1237 int retval = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1238 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1239 if(work.window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1240 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1241 int (*closefunc)(HWND, void *) = work.func; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1242 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1243 retval = closefunc(work.window, work.data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1244 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1245 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1246 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1247 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1248 static gint _key_press_event(GtkWidget *widget, GdkEventKey *event, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1249 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1250 SignalHandler work = _get_signal_handler(widget, data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1251 int retval = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1252 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1253 if(work.window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1254 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1255 int (*keypressfunc)(HWND, char, int, int, void *) = work.func; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1256 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1257 retval = keypressfunc(work.window, *event->string, event->keyval, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1258 event->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK), work.data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1259 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1260 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1261 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1262 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1263 static gint _generic_event(GtkWidget *widget, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1264 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1265 SignalHandler work = _get_signal_handler(widget, data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1266 int retval = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1267 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1268 if(work.window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1269 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1270 int (*genericfunc)(HWND, void *) = work.func; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1271 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1272 retval = genericfunc(work.window, work.data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1273 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1274 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1275 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1276 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1277 static gint _activate_event(GtkWidget *widget, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1278 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1279 SignalHandler work = _get_signal_handler(widget, data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1280 int retval = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1281 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1282 if(work.window && !_dw_ignore_click) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1283 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1284 int (*activatefunc)(HWND, void *) = work.func; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1285 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1286 retval = activatefunc(popup ? popup : work.window, work.data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1287 popup = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1288 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1289 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1290 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1291 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1292 static gint _configure_event(GtkWidget *widget, GdkEventConfigure *event, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1293 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1294 SignalHandler work = _get_signal_handler(widget, data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1295 int retval = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1296 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1297 if(work.window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1298 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1299 int (*sizefunc)(HWND, int, int, void *) = work.func; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1300 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1301 retval = sizefunc(work.window, event->width, event->height, work.data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1302 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1303 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1304 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1305 |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
1306 static gint _expose_event(GtkWidget *widget, cairo_t *cr, gpointer data) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1307 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1308 SignalHandler work = _get_signal_handler(widget, data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1309 int retval = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1310 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1311 if(work.window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1312 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1313 DWExpose exp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1314 int (*exposefunc)(HWND, DWExpose *, void *) = work.func; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1315 |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
1316 exp.x = exp.y = 0; |
780
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
1317 exp.width = gtk_widget_get_allocated_width(widget); |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
1318 exp.height = gtk_widget_get_allocated_height(widget); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1319 retval = exposefunc(work.window, &exp, work.data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1320 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1321 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1322 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1323 |
785
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1324 static gint _combobox_select_event(GtkWidget *widget, gpointer data) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1325 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1326 SignalHandler work = _get_signal_handler(widget, data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1327 static int _dw_recursing = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1328 int retval = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1329 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1330 if(_dw_recursing) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1331 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1332 |
785
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1333 if(work.window && GTK_IS_COMBO_BOX(widget)) |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1334 { |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1335 GtkTreeModel *store = gtk_combo_box_get_model(GTK_COMBO_BOX(widget)); |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1336 |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1337 if(store) |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1338 { |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1339 GtkTreeIter iter; |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1340 GtkTreePath *path; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1341 |
785
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1342 _dw_recursing = 1; |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1343 |
787
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
1344 if(gtk_combo_box_get_active_iter(GTK_COMBO_BOX(widget), &iter)) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1345 { |
787
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
1346 path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iter); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1347 |
787
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
1348 if(path) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1349 { |
787
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
1350 gint *indices = gtk_tree_path_get_indices(path); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1351 |
787
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
1352 if(indices) |
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
1353 { |
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
1354 int (*selectfunc)(HWND, int, void *) = work.func; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1355 |
787
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
1356 retval = selectfunc(work.window, indices[0], work.data); |
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
1357 } |
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
1358 gtk_tree_path_free(path); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1359 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1360 } |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1361 |
785
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1362 _dw_recursing = 0; |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1363 } |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1364 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1365 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1366 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1367 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1368 static gint _tree_context_event(GtkWidget *widget, GdkEventButton *event, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1369 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1370 SignalHandler work = _get_signal_handler(widget, data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1371 int retval = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1372 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1373 if(work.window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1374 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1375 if(event->button == 3) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1376 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1377 int (*contextfunc)(HWND, char *, int, int, void *, void *) = work.func; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1378 char *text = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1379 void *itemdata = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1380 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1381 if(widget && GTK_IS_TREE_VIEW(widget)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1382 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1383 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(widget)); |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1384 GtkTreeModel *store = (GtkTreeModel *)gtk_tree_view_get_model(GTK_TREE_VIEW(widget)); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1385 GtkTreeIter iter; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1386 |
780
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
1387 if(sel && gtk_tree_selection_get_mode(sel) != GTK_SELECTION_MULTIPLE && |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
1388 gtk_tree_selection_get_selected(sel, NULL, &iter)) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1389 { |
780
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
1390 if(g_object_get_data(G_OBJECT(widget), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_TREE)) |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
1391 { |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
1392 gtk_tree_model_get(store, &iter, 0, &text, 2, &itemdata, -1); |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
1393 } |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
1394 else |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
1395 { |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
1396 gtk_tree_model_get(store, &iter, 0, &text, -1); |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
1397 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1398 } |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1399 else |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1400 { |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1401 GtkTreePath *path; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1402 |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1403 gtk_tree_view_get_cursor(GTK_TREE_VIEW(widget), &path, NULL); |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1404 if(path) |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1405 { |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1406 GtkTreeIter iter; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1407 |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1408 if(gtk_tree_model_get_iter(GTK_TREE_MODEL(store), &iter, path)) |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1409 { |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1410 if(g_object_get_data(G_OBJECT(widget), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_TREE)) |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1411 { |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1412 gtk_tree_model_get(store, &iter, 0, &text, 2, &itemdata, -1); |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1413 } |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1414 else |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1415 { |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1416 gtk_tree_model_get(store, &iter, 0, &text, -1); |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1417 } |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1418 } |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1419 gtk_tree_path_free(path); |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1420 } |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1421 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1422 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1423 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1424 retval = contextfunc(work.window, text, event->x, event->y, work.data, itemdata); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1425 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1426 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1427 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1428 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1429 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1430 static gint _tree_select_event(GtkTreeSelection *sel, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1431 { |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
1432 GtkWidget *item = NULL, *widget = (GtkWidget *)gtk_tree_selection_get_tree_view(sel); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1433 int retval = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1434 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1435 if(widget) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1436 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1437 SignalHandler work = _get_signal_handler(widget, data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1438 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1439 if(work.window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1440 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1441 int (*treeselectfunc)(HWND, HTREEITEM, char *, void *, void *) = work.func; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1442 GtkTreeIter iter; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1443 char *text = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1444 void *itemdata = NULL; |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1445 GtkTreeModel *store = (GtkTreeModel *)gtk_tree_view_get_model(GTK_TREE_VIEW(widget)); |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1446 |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1447 if(g_object_get_data(G_OBJECT(widget), "_dw_double_click")) |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1448 { |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1449 g_object_set_data(G_OBJECT(widget), "_dw_double_click", GINT_TO_POINTER(0)); |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1450 return TRUE; |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1451 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1452 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
1453 if(gtk_tree_selection_get_mode(sel) != GTK_SELECTION_MULTIPLE && |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
1454 gtk_tree_selection_get_selected(sel, NULL, &iter)) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1455 { |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
1456 if(g_object_get_data(G_OBJECT(widget), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_TREE)) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
1457 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
1458 gtk_tree_model_get(store, &iter, 0, &text, 2, &itemdata, 3, &item, -1); |
785
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1459 retval = treeselectfunc(work.window, (HTREEITEM)item, text, work.data, itemdata); |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1460 } |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1461 else if(g_object_get_data(G_OBJECT(widget), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1462 { |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1463 gtk_tree_model_get(store, &iter, 0, &text, -1); |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1464 retval = treeselectfunc(work.window, (HTREEITEM)item, text, work.data, itemdata); |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
1465 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
1466 else |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
1467 { |
785
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1468 GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iter); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1469 |
785
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1470 if(path) |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1471 { |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1472 gint *indices = gtk_tree_path_get_indices(path); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1473 |
785
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1474 if(indices) |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1475 { |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1476 int (*selectfunc)(HWND, int, void *) = work.func; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1477 |
785
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1478 retval = selectfunc(work.window, indices[0], work.data); |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1479 } |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1480 gtk_tree_path_free(path); |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1481 } |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
1482 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1483 } |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1484 else |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1485 { |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1486 GtkTreePath *path; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1487 |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1488 gtk_tree_view_get_cursor(GTK_TREE_VIEW(widget), &path, NULL); |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1489 if(path) |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1490 { |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1491 GtkTreeIter iter; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1492 |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1493 if(gtk_tree_model_get_iter(GTK_TREE_MODEL(store), &iter, path)) |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1494 { |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1495 if(g_object_get_data(G_OBJECT(widget), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_TREE)) |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1496 { |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1497 gtk_tree_model_get(store, &iter, 0, &text, 2, &itemdata, 3, &item, -1); |
785
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1498 retval = treeselectfunc(work.window, (HTREEITEM)item, text, work.data, itemdata); |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1499 } |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1500 else if(g_object_get_data(G_OBJECT(widget), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1501 { |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1502 gtk_tree_model_get(store, &iter, 0, &text, -1); |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1503 retval = treeselectfunc(work.window, (HTREEITEM)item, text, work.data, itemdata); |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1504 } |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1505 else |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1506 { |
785
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1507 gint *indices = gtk_tree_path_get_indices(path); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1508 |
785
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1509 if(indices) |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1510 { |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1511 int (*selectfunc)(HWND, int, void *) = work.func; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1512 |
785
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1513 retval = selectfunc(work.window, indices[0], work.data); |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
1514 } |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1515 } |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1516 } |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1517 gtk_tree_path_free(path); |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1518 } |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1519 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1520 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1521 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1522 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1523 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1524 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1525 static gint _tree_expand_event(GtkTreeView *widget, GtkTreeIter *iter, GtkTreePath *path, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1526 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1527 SignalHandler work = _get_signal_handler((GtkWidget *)widget, data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1528 int retval = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1529 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1530 if(!_dw_ignore_expand && work.window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1531 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1532 int (*treeexpandfunc)(HWND, HTREEITEM, void *) = work.func; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1533 retval = treeexpandfunc(work.window, (HTREEITEM)iter, work.data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1534 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1535 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1536 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1537 |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1538 static gint _container_enter_event(GtkWidget *widget, GdkEventAny *event, gpointer data) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1539 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1540 SignalHandler work = _get_signal_handler(widget, data); |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1541 GdkEventKey *keyevent = (GdkEventKey *)event; |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1542 GdkEventButton *buttonevent = (GdkEventButton *)event; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1543 int retval = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1544 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1545 if(work.window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1546 { |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1547 /* Handle both key and button events together */ |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1548 if((event->type == GDK_2BUTTON_PRESS && buttonevent->button == 1) || |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1549 (event->type == GDK_KEY_PRESS && keyevent->keyval == VK_RETURN)) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1550 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1551 int (*contextfunc)(HWND, char *, void *) = work.func; |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1552 char *text = NULL; |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1553 |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1554 /* Prevent some double events from happening */ |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1555 if(event->type == GDK_2BUTTON_PRESS) |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1556 { |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1557 g_object_set_data(G_OBJECT(widget), "_dw_double_click", GINT_TO_POINTER(1)); |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1558 } |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1559 |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1560 /* Sanity check */ |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1561 if(GTK_IS_TREE_VIEW(widget)) |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1562 { |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1563 GtkTreePath *path; |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1564 GtkTreeModel *store = (GtkTreeModel *)gtk_tree_view_get_model(GTK_TREE_VIEW(widget)); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1565 |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1566 gtk_tree_view_get_cursor(GTK_TREE_VIEW(widget), &path, NULL); |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1567 if(path) |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1568 { |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1569 GtkTreeIter iter; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1570 |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1571 if(gtk_tree_model_get_iter(GTK_TREE_MODEL(store), &iter, path)) |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1572 { |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1573 if(g_object_get_data(G_OBJECT(widget), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1574 { |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1575 gtk_tree_model_get(store, &iter, 0, &text, -1); |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1576 retval = contextfunc(work.window, text, work.data); |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1577 } |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1578 } |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1579 gtk_tree_path_free(path); |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1580 } |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1581 } |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1582 } |
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
1583 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1584 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1585 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1586 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1587 /* Return the logical page id from the physical page id */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1588 int _get_logical_page(HWND handle, unsigned long pageid) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1589 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1590 int z; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1591 GtkWidget **pagearray = g_object_get_data(G_OBJECT(handle), "_dw_pagearray"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1592 GtkWidget *thispage = gtk_notebook_get_nth_page(GTK_NOTEBOOK(handle), pageid); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1593 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1594 if(pagearray && thispage) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1595 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1596 for(z=0;z<256;z++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1597 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1598 if(thispage == pagearray[z]) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1599 return z; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1600 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1601 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1602 return 256; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1603 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1604 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1605 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1606 static gint _switch_page_event(GtkNotebook *notebook, GtkWidget *page, guint page_num, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1607 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1608 SignalHandler work = _get_signal_handler((GtkWidget *)notebook, data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1609 int retval = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1610 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1611 if(work.window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1612 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1613 int (*switchpagefunc)(HWND, unsigned long, void *) = work.func; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1614 retval = switchpagefunc(work.window, _get_logical_page(GTK_WIDGET(notebook), page_num), work.data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1615 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1616 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1617 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1618 |
786
0e251c2f5d08
Implemented the column click event handler...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
785
diff
changeset
|
1619 static gint _column_click_event(GtkWidget *widget, gpointer data) |
0e251c2f5d08
Implemented the column click event handler...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
785
diff
changeset
|
1620 { |
0e251c2f5d08
Implemented the column click event handler...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
785
diff
changeset
|
1621 GtkWidget *tree = data; |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
1622 gint handlerdata = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(tree), "_dw_column_click_id")); |
788
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
1623 SignalHandler work; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1624 int retval = FALSE; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1625 |
788
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
1626 if(handlerdata) |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
1627 { |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
1628 work = _get_signal_handler(tree, GINT_TO_POINTER(handlerdata-1)); |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
1629 |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
1630 if(work.window) |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
1631 { |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
1632 int column_num = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "_dw_column")); |
788
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
1633 int (*clickcolumnfunc)(HWND, int, void *) = work.func; |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
1634 retval = clickcolumnfunc(work.window, column_num, work.data); |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
1635 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1636 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1637 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1638 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1639 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1640 static int _round_value(gfloat val) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1641 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1642 int newval = (int)val; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1643 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1644 if(val >= 0.5 + (gfloat)newval) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1645 newval++; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1646 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1647 return newval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1648 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1649 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1650 static gint _value_changed_event(GtkAdjustment *adjustment, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1651 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1652 int max = _round_value(gtk_adjustment_get_upper(adjustment)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1653 int val = _round_value(gtk_adjustment_get_value(adjustment)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1654 GtkWidget *slider = (GtkWidget *)g_object_get_data(G_OBJECT(adjustment), "_dw_slider"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1655 GtkWidget *spinbutton = (GtkWidget *)g_object_get_data(G_OBJECT(adjustment), "_dw_spinbutton"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1656 GtkWidget *scrollbar = (GtkWidget *)g_object_get_data(G_OBJECT(adjustment), "_dw_scrollbar"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1657 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1658 if (slider) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1659 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1660 SignalHandler work = _get_signal_handler((GtkWidget *)adjustment, data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1661 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1662 if (work.window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1663 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1664 int (*valuechangedfunc)(HWND, int, void *) = work.func; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1665 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1666 if(GTK_IS_VSCALE(slider)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1667 valuechangedfunc(work.window, (max - val) - 1, work.data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1668 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1669 valuechangedfunc(work.window, val, work.data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1670 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1671 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1672 else if (scrollbar || spinbutton) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1673 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1674 SignalHandler work = _get_signal_handler((GtkWidget *)adjustment, data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1675 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1676 if (work.window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1677 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1678 int (*valuechangedfunc)(HWND, int, void *) = work.func; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1679 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1680 valuechangedfunc(work.window, val, work.data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1681 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1682 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1683 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1684 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1685 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1686 static gint _default_key_press_event(GtkWidget *widget, GdkEventKey *event, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1687 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1688 GtkWidget *next = (GtkWidget *)data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1689 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1690 if(next) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1691 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1692 if(event->keyval == GDK_KEY_Return) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1693 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1694 if(GTK_IS_BUTTON(next)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1695 g_signal_emit_by_name(G_OBJECT(next), "clicked"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1696 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1697 gtk_widget_grab_focus(next); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1698 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1699 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1700 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1701 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1702 |
976
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
1703 static GdkPixbuf *_find_pixbuf(HICN icon, unsigned long *userwidth, unsigned long *userheight) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1704 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1705 char *data = NULL; |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
1706 int z, id = GPOINTER_TO_INT(icon); |
976
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
1707 |
1289
5fb54aeba5e0
Allow removing icons from containers on GTK2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1287
diff
changeset
|
1708 /* Quick dropout for non-handle */ |
5fb54aeba5e0
Allow removing icons from containers on GTK2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1287
diff
changeset
|
1709 if(!icon) |
5fb54aeba5e0
Allow removing icons from containers on GTK2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1287
diff
changeset
|
1710 return NULL; |
5fb54aeba5e0
Allow removing icons from containers on GTK2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1287
diff
changeset
|
1711 |
976
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
1712 if(id > 65535) |
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
1713 { |
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
1714 GdkPixbuf *icon_pixbuf = icon; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1715 |
976
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
1716 if(userwidth) |
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
1717 *userwidth = gdk_pixbuf_get_width(icon_pixbuf); |
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
1718 if(userheight) |
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
1719 *userheight = gdk_pixbuf_get_height(icon_pixbuf); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1720 |
976
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
1721 return icon; |
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
1722 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1723 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1724 for(z=0;z<_resources.resource_max;z++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1725 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1726 if(_resources.resource_id[z] == id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1727 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1728 data = _resources.resource_data[z]; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1729 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1730 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1731 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1732 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1733 if(data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1734 { |
1327
e4ef8d86dfc4
Added support for GdkPixbuf inline data in GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1322
diff
changeset
|
1735 GdkPixbuf *icon_pixbuf; |
e4ef8d86dfc4
Added support for GdkPixbuf inline data in GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1322
diff
changeset
|
1736 |
e4ef8d86dfc4
Added support for GdkPixbuf inline data in GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1322
diff
changeset
|
1737 if(data[0] == 'G' && data[1] == 'd' && data[2] == 'k' && data[3] == 'P') |
e4ef8d86dfc4
Added support for GdkPixbuf inline data in GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1322
diff
changeset
|
1738 icon_pixbuf = gdk_pixbuf_new_from_inline(-1, (const guint8 *)data, FALSE, NULL); |
e4ef8d86dfc4
Added support for GdkPixbuf inline data in GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1322
diff
changeset
|
1739 else |
e4ef8d86dfc4
Added support for GdkPixbuf inline data in GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1322
diff
changeset
|
1740 icon_pixbuf = gdk_pixbuf_new_from_xpm_data((const char **)data); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1741 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1742 if(userwidth) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1743 *userwidth = gdk_pixbuf_get_width(icon_pixbuf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1744 if(userheight) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1745 *userheight = gdk_pixbuf_get_height(icon_pixbuf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1746 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1747 return icon_pixbuf; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1748 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1749 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1750 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1751 |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
1752 void _init_thread(void) |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
1753 { |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
1754 GdkColor *foreground = malloc(sizeof(GdkColor)); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1755 |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
1756 foreground->pixel = foreground->red = foreground->green = foreground->blue = 0; |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
1757 pthread_setspecific(_dw_fg_color_key, foreground); |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
1758 pthread_setspecific(_dw_bg_color_key, NULL); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1759 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1760 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1761 /* Try to load the WebKitGtk shared libary */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1762 #ifdef USE_WEBKIT |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1763 void init_webkit(void) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1764 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1765 char libname[100]; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1766 void *handle = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1767 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1768 sprintf( libname, "lib%s.so", WEBKIT_LIB); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1769 handle = dlopen( libname, RTLD_LAZY ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1770 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1771 /* If we loaded it, grab the symbols we want */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1772 if ( handle ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1773 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1774 _webkit_web_view_get_type = dlsym( handle, "webkit_web_view_get_type" ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1775 _webkit_web_view_load_html_string = dlsym( handle, "webkit_web_view_load_html_string" ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1776 _webkit_web_view_open = dlsym( handle, "webkit_web_view_open" ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1777 _webkit_web_view_new = dlsym( handle, "webkit_web_view_new" ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1778 _webkit_web_view_go_back = dlsym( handle, "webkit_web_view_go_back" ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1779 _webkit_web_view_go_forward = dlsym( handle, "webkit_web_view_go_forward" ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1780 _webkit_web_view_reload = dlsym( handle, "webkit_web_view_reload" ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1781 _webkit_web_view_stop_loading = dlsym( handle, "webkit_web_view_stop_loading" ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1782 _webkit_web_frame_print = dlsym( handle, "webkit_web_frame_print" ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1783 _webkit_web_view_get_focused_frame = dlsym( handle, "webkit_web_view_get_focused_frame" ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1784 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1785 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1786 #endif |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1787 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1788 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1789 * Initializes the Dynamic Windows engine. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1790 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1791 * newthread: True if this is the only thread. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1792 * False if there is already a message loop running. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1793 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1794 int dw_int_init(DWResources *res, int newthread, int *argc, char **argv[]) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1795 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1796 char *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1797 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1798 if(res) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1799 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1800 _resources.resource_max = res->resource_max; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1801 _resources.resource_id = res->resource_id; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1802 _resources.resource_data = res->resource_data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1803 } |
1384
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1804 |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1805 /* Setup the private data directory */ |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1806 if(argc && argv && *argc > 0 && (*argv)[0]) |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1807 { |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1808 char *pathcopy = strdup((*argv)[0]); |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1809 char *pos = strrchr(pathcopy, '/'); |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1810 |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1811 if(pos) |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1812 { |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1813 char *binname = pos + 1; |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1814 |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1815 *pos = 0; |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1816 if(*binname) |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1817 { |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1818 char *binpos = strstr(pathcopy, "/bin"); |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1819 |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1820 if(binpos) |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1821 strncpy(_dw_share_path, pathcopy, (size_t)(binpos - pathcopy)); |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1822 else |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1823 strcpy(_dw_share_path, "/usr/local"); |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1824 strcat(_dw_share_path, "/share/"); |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1825 strcat(_dw_share_path, binname); |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1826 } |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1827 } |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1828 if(pathcopy) |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1829 free(pathcopy); |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1830 } |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1831 /* If that failed... just get the current directory */ |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1832 if(!_dw_share_path[0] && !getcwd(_dw_share_path, PATH_MAX)) |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1833 _dw_share_path[0] = '/'; |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
1834 |
1355
dd252596227b
Removed a now unused variable on GTK in dw_html_new().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1354
diff
changeset
|
1835 #if !GLIB_CHECK_VERSION(2,32,0) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1836 g_thread_init(NULL); |
1355
dd252596227b
Removed a now unused variable on GTK in dw_html_new().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1354
diff
changeset
|
1837 #endif |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1838 gdk_threads_init(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1839 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1840 gtk_init(argc, argv); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1841 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1842 tmp = getenv("DW_BORDER_WIDTH"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1843 if(tmp) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1844 _dw_border_width = atoi(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1845 tmp = getenv("DW_BORDER_HEIGHT"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1846 if(tmp) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1847 _dw_border_height = atoi(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1848 |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
1849 pthread_key_create(&_dw_fg_color_key, NULL); |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
1850 pthread_key_create(&_dw_bg_color_key, NULL); |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
1851 pthread_key_create(&_dw_mutex_key, NULL); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1852 |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
1853 _init_thread(); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
1854 |
874
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
1855 /* Create a global object for glib activities */ |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
1856 _DWObject = g_object_new(G_TYPE_OBJECT, NULL); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1857 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1858 gtk_rc_parse_string("style \"gtk-tooltips-style\" { bg[NORMAL] = \"#eeee00\" } widget \"gtk-tooltips\" style \"gtk-tooltips-style\""); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1859 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1860 #ifdef USE_WEBKIT |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1861 init_webkit(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1862 #endif |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1863 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1864 return TRUE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1865 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1866 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1867 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1868 * Runs a message loop for Dynamic Windows. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1869 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1870 void dw_main(void) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1871 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1872 gdk_threads_enter(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1873 _dw_thread = pthread_self(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1874 gtk_main(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1875 _dw_thread = (pthread_t)-1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1876 gdk_threads_leave(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1877 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1878 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1879 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1880 * Runs a message loop for Dynamic Windows, for a period of milliseconds. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1881 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1882 * milliseconds: Number of milliseconds to run the loop for. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1883 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1884 void dw_main_sleep(int milliseconds) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1885 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1886 struct timeval tv, start; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1887 pthread_t curr = pthread_self(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1888 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1889 gettimeofday(&start, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1890 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1891 if(_dw_thread == (pthread_t)-1 || _dw_thread == curr) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1892 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1893 pthread_t orig = _dw_thread; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1894 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1895 gettimeofday(&tv, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1896 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1897 while(((tv.tv_sec - start.tv_sec)*1000) + ((tv.tv_usec - start.tv_usec)/1000) <= milliseconds) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1898 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1899 if(orig == (pthread_t)-1) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1900 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1901 gdk_threads_enter(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1902 _dw_thread = curr; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1903 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1904 if(gtk_events_pending()) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1905 gtk_main_iteration(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1906 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1907 _dw_msleep(1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1908 if(orig == (pthread_t)-1) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1909 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1910 _dw_thread = orig; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1911 gdk_threads_leave(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1912 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1913 gettimeofday(&tv, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1914 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1915 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1916 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1917 _dw_msleep(milliseconds); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1918 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1919 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1920 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1921 * Processes a single message iteration and returns. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1922 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1923 void dw_main_iteration(void) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1924 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1925 gdk_threads_enter(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1926 _dw_thread = pthread_self(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1927 gtk_main_iteration(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1928 _dw_thread = (pthread_t)-1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1929 gdk_threads_leave(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1930 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1931 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1932 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1933 * Free's memory allocated by dynamic windows. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1934 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1935 * ptr: Pointer to dynamic windows allocated |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1936 * memory to be free()'d. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1937 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1938 void dw_free(void *ptr) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1939 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1940 free(ptr); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1941 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1942 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1943 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1944 * Allocates and initializes a dialog struct. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1945 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1946 * data: User defined data to be passed to functions. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1947 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1948 DWDialog *dw_dialog_new(void *data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1949 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1950 DWDialog *tmp = malloc(sizeof(DWDialog)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1951 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1952 if ( tmp ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1953 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1954 tmp->eve = dw_event_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1955 dw_event_reset(tmp->eve); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1956 tmp->data = data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1957 tmp->done = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1958 tmp->method = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1959 tmp->result = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1960 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1961 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1962 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1963 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1964 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1965 * Accepts a dialog struct and returns the given data to the |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1966 * initial called of dw_dialog_wait(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1967 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1968 * dialog: Pointer to a dialog struct aquired by dw_dialog_new). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1969 * result: Data to be returned by dw_dialog_wait(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1970 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1971 int dw_dialog_dismiss(DWDialog *dialog, void *result) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1972 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1973 dialog->result = result; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1974 if(dialog->method) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1975 gtk_main_quit(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1976 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1977 dw_event_post(dialog->eve); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1978 dialog->done = TRUE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1979 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1980 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1981 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1982 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1983 * Accepts a dialog struct waits for dw_dialog_dismiss() to be |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1984 * called by a signal handler with the given dialog struct. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1985 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1986 * dialog: Pointer to a dialog struct aquired by dw_dialog_new). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1987 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1988 void *dw_dialog_wait(DWDialog *dialog) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1989 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1990 void *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1991 int newprocess = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1992 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1993 /* _dw_thread will be -1 if dw_main hasn't been run yet. */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1994 if(_dw_thread == (pthread_t)-1) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1995 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1996 _dw_thread = pthread_self(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1997 newprocess = 1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1998 gdk_threads_enter(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
1999 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2000 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2001 if(pthread_self() == _dw_thread) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2002 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2003 dialog->method = TRUE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2004 gtk_main(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2005 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2006 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2007 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2008 dialog->method = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2009 dw_event_wait(dialog->eve, -1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2010 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2011 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2012 if(newprocess) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2013 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2014 _dw_thread = (pthread_t)-1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2015 gdk_threads_leave(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2016 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2017 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2018 dw_event_close(&dialog->eve); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2019 tmp = dialog->result; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2020 free(dialog); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2021 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2022 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2023 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2024 static int _dw_ok_func(HWND window, void *data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2025 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2026 DWDialog *dwwait = (DWDialog *)data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2027 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2028 if(!dwwait) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2029 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2030 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2031 dw_window_destroy((HWND)dwwait->data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2032 dw_dialog_dismiss((DWDialog *)data, (void *)DW_MB_RETURN_OK); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2033 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2034 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2035 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2036 int _dw_yes_func(HWND window, void *data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2037 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2038 DWDialog *dwwait = (DWDialog *)data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2039 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2040 if(!dwwait) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2041 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2042 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2043 dw_window_destroy((HWND)dwwait->data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2044 dw_dialog_dismiss((DWDialog *)data, (void *)DW_MB_RETURN_YES); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2045 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2046 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2047 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2048 int _dw_no_func(HWND window, void *data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2049 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2050 DWDialog *dwwait = (DWDialog *)data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2051 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2052 if(!dwwait) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2053 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2054 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2055 dw_window_destroy((HWND)dwwait->data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2056 dw_dialog_dismiss((DWDialog *)data, (void *)DW_MB_RETURN_NO); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2057 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2058 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2059 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2060 int _dw_cancel_func(HWND window, void *data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2061 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2062 DWDialog *dwwait = (DWDialog *)data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2063 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2064 if(!dwwait) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2065 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2066 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2067 dw_window_destroy((HWND)dwwait->data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2068 dw_dialog_dismiss((DWDialog *)data, (void *)DW_MB_RETURN_CANCEL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2069 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2070 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2071 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2072 /* |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
2073 * Displays a debug message on the console... |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
2074 * Parameters: |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
2075 * format: printf style format string. |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
2076 * ...: Additional variables for use in the format. |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
2077 */ |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
2078 void API dw_debug(char *format, ...) |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
2079 { |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
2080 va_list args; |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
2081 char outbuf[1025] = {0}; |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
2082 |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
2083 va_start(args, format); |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
2084 vsnprintf(outbuf, 1024, format, args); |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
2085 va_end(args); |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
2086 |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
2087 fprintf(stderr, "%s", outbuf); |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
2088 } |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
2089 |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
2090 /* |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2091 * Displays a Message Box with given text and title.. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2092 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2093 * title: The title of the message box. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2094 * flags: Defines buttons and icons to display |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2095 * format: printf style format string. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2096 * ...: Additional variables for use in the format. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2097 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2098 int dw_messagebox(char *title, int flags, char *format, ...) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2099 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2100 HWND entrywindow, texttargetbox, imagetextbox, mainbox, okbutton, nobutton, yesbutton, cancelbutton, buttonbox, stext; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2101 ULONG flStyle = DW_FCF_TITLEBAR | DW_FCF_SHELLPOSITION | DW_FCF_SIZEBORDER; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2102 DWDialog *dwwait; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2103 va_list args; |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
2104 char outbuf[1025] = {0}; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2105 char **xpm_data = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2106 int x, y, extra_width=0,text_width,text_height; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2107 int width,height; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2108 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2109 va_start(args, format); |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
2110 vsnprintf(outbuf, 1024, format, args); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2111 va_end(args); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2112 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2113 entrywindow = dw_window_new(HWND_DESKTOP, title, flStyle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2114 mainbox = dw_box_new(DW_VERT, 10); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2115 dw_box_pack_start(entrywindow, mainbox, 0, 0, TRUE, TRUE, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2116 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2117 /* determine if an icon is to be used - if so we need another HORZ box */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2118 if((flags & DW_MB_ERROR) | (flags & DW_MB_WARNING) | (flags & DW_MB_INFORMATION) | (flags & DW_MB_QUESTION)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2119 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2120 imagetextbox = dw_box_new(DW_HORZ, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2121 dw_box_pack_start(mainbox, imagetextbox, 0, 0, TRUE, TRUE, 2); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2122 texttargetbox = imagetextbox; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2123 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2124 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2125 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2126 imagetextbox = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2127 texttargetbox = mainbox; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2128 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2129 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2130 if(flags & DW_MB_ERROR) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2131 xpm_data = (char **)_dw_messagebox_error; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2132 else if(flags & DW_MB_WARNING) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2133 xpm_data = (char **)_dw_messagebox_warning; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2134 else if(flags & DW_MB_INFORMATION) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2135 xpm_data = (char **)_dw_messagebox_information; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2136 else if(flags & DW_MB_QUESTION) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2137 xpm_data = (char **)_dw_messagebox_question; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2138 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2139 if(xpm_data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2140 extra_width = 32; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2141 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2142 if(texttargetbox == imagetextbox) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2143 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2144 HWND handle = dw_bitmap_new( 100 ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2145 GdkPixbuf *icon_pixbuf = gdk_pixbuf_new_from_xpm_data((const char **)xpm_data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2146 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2147 gtk_image_set_from_pixbuf(GTK_IMAGE(handle), icon_pixbuf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2148 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2149 dw_box_pack_start( texttargetbox, handle, 32, 32, FALSE, FALSE, 2); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2150 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2151 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2152 /* Create text */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2153 text_width = 240; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2154 text_height = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2155 stext = dw_text_new(outbuf, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2156 dw_window_set_style(stext, DW_DT_WORDBREAK, DW_DT_WORDBREAK); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2157 dw_font_text_extents_get(stext, NULL, outbuf, &width, &height); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
2158 |
784
fb21fdd6b839
Slight code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
783
diff
changeset
|
2159 text_width = min( width, dw_screen_width() - extra_width - 100 ); |
fb21fdd6b839
Slight code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
783
diff
changeset
|
2160 text_height = min( height, dw_screen_height() ); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
2161 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2162 dw_box_pack_start(texttargetbox, stext, text_width, text_height, TRUE, TRUE, 2); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2163 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2164 /* Buttons */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2165 buttonbox = dw_box_new(DW_HORZ, 10); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2166 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2167 dw_box_pack_start(mainbox, buttonbox, 0, 0, TRUE, FALSE, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2168 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2169 dwwait = dw_dialog_new((void *)entrywindow); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2170 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2171 /* which buttons ? */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2172 if(flags & DW_MB_OK) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2173 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2174 okbutton = dw_button_new("Ok", 1001L); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2175 dw_box_pack_start(buttonbox, okbutton, 50, 30, TRUE, FALSE, 2); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2176 dw_signal_connect(okbutton, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(_dw_ok_func), (void *)dwwait); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2177 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2178 else if(flags & DW_MB_OKCANCEL) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2179 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2180 okbutton = dw_button_new("Ok", 1001L); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2181 dw_box_pack_start(buttonbox, okbutton, 50, 30, TRUE, FALSE, 2); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2182 dw_signal_connect(okbutton, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(_dw_ok_func), (void *)dwwait); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2183 cancelbutton = dw_button_new("Cancel", 1002L); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2184 dw_box_pack_start(buttonbox, cancelbutton, 50, 30, TRUE, FALSE, 2); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2185 dw_signal_connect(cancelbutton, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(_dw_cancel_func), (void *)dwwait); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2186 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2187 else if(flags & DW_MB_YESNO) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2188 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2189 yesbutton = dw_button_new("Yes", 1001L); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2190 dw_box_pack_start(buttonbox, yesbutton, 50, 30, TRUE, FALSE, 2); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2191 dw_signal_connect(yesbutton, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(_dw_yes_func), (void *)dwwait); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2192 nobutton = dw_button_new("No", 1002L); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2193 dw_box_pack_start(buttonbox, nobutton, 50, 30, TRUE, FALSE, 2); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2194 dw_signal_connect(nobutton, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(_dw_no_func), (void *)dwwait); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2195 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2196 else if(flags & DW_MB_YESNOCANCEL) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2197 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2198 yesbutton = dw_button_new("Yes", 1001L); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2199 dw_box_pack_start(buttonbox, yesbutton, 50, 30, TRUE, FALSE, 2); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2200 dw_signal_connect(yesbutton, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(_dw_yes_func), (void *)dwwait); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2201 nobutton = dw_button_new("No", 1002L); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2202 dw_box_pack_start(buttonbox, nobutton, 50, 30, TRUE, FALSE, 2); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2203 dw_signal_connect(nobutton, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(_dw_no_func), (void *)dwwait); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2204 cancelbutton = dw_button_new("Cancel", 1003L); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2205 dw_box_pack_start(buttonbox, cancelbutton, 50, 30, TRUE, FALSE, 2); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2206 dw_signal_connect(cancelbutton, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(_dw_cancel_func), (void *)dwwait); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2207 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2208 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2209 height = max(50,text_height)+100; |
1121
fb92778105b2
Fixes some major window positioning problems in GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1118
diff
changeset
|
2210 x = (dw_screen_width() - (text_width+60+extra_width))/2; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2211 y = (dw_screen_height() - height)/2; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2212 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2213 dw_window_set_pos_size(entrywindow, x, y, (text_width+60+extra_width), height); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2214 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2215 dw_window_show(entrywindow); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2216 |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
2217 return GPOINTER_TO_INT(dw_dialog_wait(dwwait)); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2218 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2219 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2220 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2221 * Minimizes or Iconifies a top-level window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2222 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2223 * handle: The window handle to minimize. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2224 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2225 int dw_window_minimize(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2226 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2227 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2228 GtkWidget *mdi = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2229 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2230 if(!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2231 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2232 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2233 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2234 if((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2235 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2236 gtk_mdi_set_state(GTK_MDI(mdi), handle, CHILD_ICONIFIED); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2237 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2238 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2239 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2240 gtk_window_iconify( GTK_WINDOW(handle) ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2241 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2242 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2243 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2244 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2245 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2246 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2247 * Makes the window topmost. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2248 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2249 * handle: The window handle to make topmost. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2250 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2251 int dw_window_raise(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2252 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2253 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2254 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2255 if(!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2256 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2257 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2258 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2259 gdk_window_raise(gtk_widget_get_window(GTK_WIDGET(handle))); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2260 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2261 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2262 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2263 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2264 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2265 * Makes the window bottommost. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2266 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2267 * handle: The window handle to make bottommost. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2268 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2269 int dw_window_lower(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2270 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2271 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2272 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2273 if(!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2274 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2275 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2276 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2277 gdk_window_lower(gtk_widget_get_window(GTK_WIDGET(handle))); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2278 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2279 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2280 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2281 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2282 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2283 * Makes the window visible. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2284 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2285 * handle: The window handle to make visible. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2286 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2287 int dw_window_show(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2288 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2289 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2290 GtkWidget *defaultitem; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2291 GtkWidget *mdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2292 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2293 if (!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2294 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2295 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2296 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2297 gtk_widget_show(handle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2298 if ((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2299 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2300 gtk_mdi_set_state(GTK_MDI(mdi), handle, CHILD_NORMAL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2301 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2302 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2303 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2304 if (gtk_widget_get_window(GTK_WIDGET(handle))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2305 { |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
2306 int width = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(handle), "_dw_width")); |
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
2307 int height = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(handle), "_dw_height")); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2308 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2309 if (width && height) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2310 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2311 gtk_widget_set_size_request(handle, width, height); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2312 g_object_set_data(G_OBJECT(handle), "_dw_width", GINT_TO_POINTER(0)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2313 g_object_set_data(G_OBJECT(handle), "_dw_height", GINT_TO_POINTER(0)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2314 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2315 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2316 gdk_window_raise(gtk_widget_get_window(GTK_WIDGET(handle))); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2317 gdk_flush(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2318 gdk_window_show(gtk_widget_get_window(GTK_WIDGET(handle))); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2319 gdk_flush(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2320 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2321 defaultitem = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_defaultitem"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2322 if (defaultitem) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2323 gtk_widget_grab_focus(defaultitem); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2324 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2325 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2326 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2327 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2328 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2329 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2330 * Makes the window invisible. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2331 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2332 * handle: The window handle to make visible. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2333 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2334 int dw_window_hide(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2335 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2336 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2337 GtkWidget *mdi = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2338 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2339 if(!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2340 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2341 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2342 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2343 if((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2344 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2345 gtk_mdi_set_state(GTK_MDI(mdi), handle, CHILD_ICONIFIED); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2346 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2347 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2348 gtk_widget_hide(handle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2349 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2350 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2351 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2352 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2353 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2354 * Destroys a window and all of it's children. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2355 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2356 * handle: The window handle to destroy. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2357 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2358 int dw_window_destroy(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2359 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2360 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2361 GtkWidget *mdi = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2362 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2363 if(!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2364 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2365 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2366 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2367 if((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2368 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2369 gtk_mdi_remove(GTK_MDI(mdi), handle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2370 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2371 if(GTK_IS_WIDGET(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2372 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2373 GtkWidget *eventbox = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_eventbox"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2374 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2375 if(eventbox && GTK_IS_WIDGET(eventbox)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2376 gtk_widget_destroy(eventbox); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2377 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2378 gtk_widget_destroy(handle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2379 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2380 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2381 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2382 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2383 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2384 /* Causes entire window to be invalidated and redrawn. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2385 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2386 * handle: Toplevel window handle to be redrawn. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2387 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2388 void dw_window_redraw(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2389 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2390 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2391 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2392 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2393 * Changes a window's parent to newparent. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2394 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2395 * handle: The window handle to destroy. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2396 * newparent: The window's new parent window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2397 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2398 void dw_window_reparent(HWND handle, HWND newparent) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2399 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2400 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2401 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2402 DW_MUTEX_LOCK; |
1124
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
2403 gdk_window_reparent(gtk_widget_get_window(GTK_WIDGET(handle)), newparent ? gtk_widget_get_window(GTK_WIDGET(newparent)) : gdk_get_default_root_window(), 0, 0); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2404 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2405 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2406 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2407 /* |
1076
dbaf1b11c301
Added stub dw_font_set_default() functions for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1072
diff
changeset
|
2408 * Sets the default font used on text based widgets. |
dbaf1b11c301
Added stub dw_font_set_default() functions for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1072
diff
changeset
|
2409 * Parameters: |
dbaf1b11c301
Added stub dw_font_set_default() functions for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1072
diff
changeset
|
2410 * fontname: Font name in Dynamic Windows format. |
dbaf1b11c301
Added stub dw_font_set_default() functions for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1072
diff
changeset
|
2411 */ |
dbaf1b11c301
Added stub dw_font_set_default() functions for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1072
diff
changeset
|
2412 void API dw_font_set_default(char *fontname) |
dbaf1b11c301
Added stub dw_font_set_default() functions for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1072
diff
changeset
|
2413 { |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
2414 char *oldfont = _DWDefaultFont; |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
2415 |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
2416 _DWDefaultFont = strdup(fontname); |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
2417 |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
2418 if(oldfont) |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
2419 free(oldfont); |
1076
dbaf1b11c301
Added stub dw_font_set_default() functions for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1072
diff
changeset
|
2420 } |
dbaf1b11c301
Added stub dw_font_set_default() functions for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1072
diff
changeset
|
2421 |
1240
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
2422 /* Convert DW style font to pango style */ |
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
2423 void _convert_font(char *font) |
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
2424 { |
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
2425 char *name = strchr(font, '.'); |
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
2426 |
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
2427 /* Detect Dynamic Windows style font name... |
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
2428 * Format: ##.Fontname |
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
2429 * and convert to a Pango name |
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
2430 */ |
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
2431 if(name && isdigit(*font)) |
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
2432 { |
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
2433 int size = atoi(font); |
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
2434 *name = 0; |
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
2435 name++; |
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
2436 sprintf(font, "%s %d", name, size); |
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
2437 } |
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
2438 } |
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
2439 |
1076
dbaf1b11c301
Added stub dw_font_set_default() functions for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1072
diff
changeset
|
2440 /* |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2441 * Sets the font used by a specified window (widget) handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2442 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2443 * handle: The window (widget) handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2444 * fontname: Name and size of the font in the form "size.fontname" |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2445 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2446 int dw_window_set_font(HWND handle, char *fontname) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2447 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2448 PangoFontDescription *pfont; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2449 GtkWidget *handle2 = handle; |
1001
4ef0e878fe06
Added support for Dynamic Windows style font names for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
998
diff
changeset
|
2450 char *font = strdup(fontname); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2451 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2452 gpointer data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2453 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2454 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2455 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2456 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2457 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2458 if(tmp) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2459 handle2 = tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2460 } |
1038
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2461 /* If it is a groupox we want to operate on the frame label */ |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2462 else if(GTK_IS_FRAME(handle)) |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2463 { |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2464 GtkWidget *tmp = gtk_frame_get_label_widget(GTK_FRAME(handle)); |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2465 if(tmp) |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2466 handle2 = tmp; |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2467 } |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
2468 else if(GTK_IS_COMBO_BOX(handle) || GTK_IS_BUTTON(handle)) |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
2469 { |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
2470 GtkWidget *tmp = gtk_bin_get_child(GTK_BIN(handle)); |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
2471 if(tmp) |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
2472 handle2 = tmp; |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
2473 } |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
2474 |
1240
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
2475 _convert_font(font); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2476 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2477 /* Free old font name if one is allocated */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2478 data = g_object_get_data(G_OBJECT(handle2), "_dw_fontname"); |
1240
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
2479 g_object_set_data(G_OBJECT(handle2), "_dw_fontname", (gpointer)font); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2480 if(data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2481 free(data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2482 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2483 pfont = pango_font_description_from_string(fontname); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2484 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2485 if(pfont) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2486 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2487 gtk_widget_modify_font(handle2, pfont); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2488 pango_font_description_free(pfont); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2489 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2490 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2491 return TRUE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2492 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2493 |
1053
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2494 static int _dw_font_active = 0; |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2495 |
1054
818698b4a0df
Added dw_font_choose() on GTK2 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1053
diff
changeset
|
2496 /* Internal function to handle the font OK press */ |
1053
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2497 static gint _gtk_font_ok(GtkWidget *widget, DWDialog *dwwait) |
1052
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2498 { |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2499 GtkFontSelectionDialog *fd; |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2500 char *retfont = NULL; |
1053
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2501 gchar *fontname; |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2502 int len, x; |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2503 |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2504 if(!dwwait) |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2505 return FALSE; |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2506 |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2507 fd = dwwait->data; |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2508 fontname = gtk_font_selection_dialog_get_font_name(fd); |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2509 if(fontname && (retfont = strdup(fontname))) |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
2510 { |
1052
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2511 len = strlen(fontname); |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2512 /* Convert to Dynamic Windows format if we can... */ |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2513 if(len > 0 && isdigit(fontname[len-1])) |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2514 { |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2515 int size; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
2516 |
1052
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2517 x=len-1; |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2518 while(x > 0 && fontname[x] != ' ') |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2519 { |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2520 x--; |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2521 } |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2522 size = atoi(&fontname[x]); |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2523 /* If we were able to find a valid size... */ |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2524 if(size > 0) |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2525 { |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2526 /* Null terminate after the name... |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2527 * and create the Dynamic Windows style font. |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2528 */ |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2529 fontname[x] = 0; |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2530 snprintf(retfont, len+1, "%d.%s", size, fontname); |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2531 } |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2532 } |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2533 dw_free(fontname); |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2534 } |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2535 gtk_widget_destroy(GTK_WIDGET(fd)); |
1054
818698b4a0df
Added dw_font_choose() on GTK2 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1053
diff
changeset
|
2536 _dw_font_active = 0; |
1053
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2537 dw_dialog_dismiss(dwwait, (void *)retfont); |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2538 return FALSE; |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2539 } |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2540 |
1054
818698b4a0df
Added dw_font_choose() on GTK2 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1053
diff
changeset
|
2541 /* Internal function to handle the font Cancel press */ |
1053
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2542 static gint _gtk_font_cancel(GtkWidget *widget, DWDialog *dwwait) |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2543 { |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2544 if(!dwwait) |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2545 return FALSE; |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2546 |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2547 gtk_widget_destroy(GTK_WIDGET(dwwait->data)); |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2548 _dw_font_active = 0; |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2549 dw_dialog_dismiss(dwwait, NULL); |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2550 return FALSE; |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2551 } |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2552 |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2553 /* Allows the user to choose a font using the system's font chooser dialog. |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2554 * Parameters: |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2555 * currfont: current font |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2556 * Returns: |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2557 * A malloced buffer with the selected font or NULL on error. |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2558 */ |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2559 char * API dw_font_choose(char *currfont) |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2560 { |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2561 GtkFontSelectionDialog *fd; |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2562 GtkWidget *ok_button, *cancel_button; |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2563 char *font = currfont ? strdup(currfont) : NULL; |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2564 char *name = font ? strchr(font, '.') : NULL; |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2565 int _locked_by_me = FALSE; |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2566 char *retfont = NULL; |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2567 DWDialog *dwwait; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
2568 |
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
2569 /* Detect Dynamic Windows style font name... |
1053
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2570 * Format: ##.Fontname |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2571 * and convert to a Pango name |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2572 */ |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2573 if(name && isdigit(*font)) |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2574 { |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2575 int size = atoi(font); |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2576 *name = 0; |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2577 name++; |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2578 sprintf(font, "%s %d", name, size); |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2579 } |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2580 |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2581 DW_MUTEX_LOCK; |
1054
818698b4a0df
Added dw_font_choose() on GTK2 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1053
diff
changeset
|
2582 /* The DW mutex should be sufficient for |
818698b4a0df
Added dw_font_choose() on GTK2 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1053
diff
changeset
|
2583 * insuring no thread changes this unknowingly. |
818698b4a0df
Added dw_font_choose() on GTK2 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1053
diff
changeset
|
2584 */ |
818698b4a0df
Added dw_font_choose() on GTK2 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1053
diff
changeset
|
2585 if(_dw_font_active) |
818698b4a0df
Added dw_font_choose() on GTK2 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1053
diff
changeset
|
2586 { |
818698b4a0df
Added dw_font_choose() on GTK2 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1053
diff
changeset
|
2587 DW_MUTEX_UNLOCK; |
1057
0cd0089ee17d
Fix issue with using/freeing the wrong variable in GTK3 font chooser.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1054
diff
changeset
|
2588 if(font) |
0cd0089ee17d
Fix issue with using/freeing the wrong variable in GTK3 font chooser.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1054
diff
changeset
|
2589 free(font); |
1054
818698b4a0df
Added dw_font_choose() on GTK2 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1053
diff
changeset
|
2590 return NULL; |
818698b4a0df
Added dw_font_choose() on GTK2 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1053
diff
changeset
|
2591 } |
1053
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2592 fd = (GtkFontSelectionDialog *)gtk_font_selection_dialog_new("Choose font"); |
1057
0cd0089ee17d
Fix issue with using/freeing the wrong variable in GTK3 font chooser.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1054
diff
changeset
|
2593 if(font) |
0cd0089ee17d
Fix issue with using/freeing the wrong variable in GTK3 font chooser.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1054
diff
changeset
|
2594 { |
0cd0089ee17d
Fix issue with using/freeing the wrong variable in GTK3 font chooser.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1054
diff
changeset
|
2595 gtk_font_selection_dialog_set_font_name(fd, font); |
0cd0089ee17d
Fix issue with using/freeing the wrong variable in GTK3 font chooser.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1054
diff
changeset
|
2596 free(font); |
1053
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2597 } |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
2598 |
1053
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2599 _dw_font_active = 1; |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2600 |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2601 dwwait = dw_dialog_new((void *)fd); |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2602 |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2603 ok_button = gtk_font_selection_dialog_get_ok_button(fd); |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2604 cancel_button = gtk_font_selection_dialog_get_cancel_button(fd); |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2605 g_signal_connect(G_OBJECT(ok_button), "clicked", G_CALLBACK(_gtk_font_ok), dwwait); |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2606 g_signal_connect(G_OBJECT(cancel_button), "clicked", G_CALLBACK(_gtk_font_cancel), dwwait); |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2607 |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2608 gtk_widget_show(GTK_WIDGET(fd)); |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2609 |
0725114533fe
Changes to the GTK3 font chooser... this version doesn't block the rest of the app.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1052
diff
changeset
|
2610 retfont = (char *)dw_dialog_wait(dwwait); |
1052
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2611 DW_MUTEX_UNLOCK; |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2612 return retfont; |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2613 } |
c008a186b735
Added dw_font_choose() on GTK3 for 2.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1046
diff
changeset
|
2614 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2615 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2616 * Gets the font used by a specified window (widget) handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2617 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2618 * handle: The window (widget) handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2619 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2620 char *dw_window_get_font(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2621 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2622 PangoFontDescription *pfont; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2623 PangoContext *pcontext; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2624 GtkWidget *handle2 = handle; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2625 char *font; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2626 char *retfont=NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2627 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2628 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2629 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2630 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2631 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2632 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2633 if(tmp) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2634 handle2 = tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2635 } |
1038
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2636 /* If it is a groupox we want to operate on the frame label */ |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2637 else if(GTK_IS_FRAME(handle)) |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2638 { |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2639 GtkWidget *tmp = gtk_frame_get_label_widget(GTK_FRAME(handle)); |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2640 if(tmp) |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2641 handle2 = tmp; |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2642 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2643 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2644 pcontext = gtk_widget_get_pango_context( handle2 ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2645 if ( pcontext ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2646 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2647 pfont = pango_context_get_font_description( pcontext ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2648 if ( pfont ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2649 { |
1038
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2650 int len, x; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
2651 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2652 font = pango_font_description_to_string( pfont ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2653 retfont = strdup(font); |
1038
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2654 len = strlen(font); |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2655 /* Convert to Dynamic Windows format if we can... */ |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2656 if(len > 0 && isdigit(font[len-1])) |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2657 { |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2658 int size; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
2659 |
1038
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2660 x=len-1; |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2661 while(x > 0 && font[x] != ' ') |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2662 { |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2663 x--; |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2664 } |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2665 size = atoi(&font[x]); |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2666 /* If we were able to find a valid size... */ |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2667 if(size > 0) |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2668 { |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2669 /* Null terminate after the name... |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2670 * and create the Dynamic Windows style font. |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2671 */ |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2672 font[x] = 0; |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2673 snprintf(retfont, len+1, "%d.%s", size, font); |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2674 } |
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
2675 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2676 g_free( font ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2677 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2678 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2679 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2680 return retfont; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2681 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2682 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2683 void _free_gdk_colors(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2684 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2685 GdkColor *old = (GdkColor *)g_object_get_data(G_OBJECT(handle), "_dw_foregdk"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2686 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2687 if(old) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2688 free(old); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2689 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2690 old = (GdkColor *)g_object_get_data(G_OBJECT(handle), "_dw_backgdk"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2691 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2692 if(old) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2693 free(old); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2694 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2695 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2696 /* Free old color pointers and allocate new ones */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2697 static void _save_gdk_colors(HWND handle, GdkColor fore, GdkColor back) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2698 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2699 GdkColor *foregdk = malloc(sizeof(GdkColor)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2700 GdkColor *backgdk = malloc(sizeof(GdkColor)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2701 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2702 _free_gdk_colors(handle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2703 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2704 *foregdk = fore; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2705 *backgdk = back; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2706 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2707 g_object_set_data(G_OBJECT(handle), "_dw_foregdk", (gpointer)foregdk); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2708 g_object_set_data(G_OBJECT(handle), "_dw_backgdk", (gpointer)backgdk); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2709 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2710 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2711 static int _set_color(HWND handle, unsigned long fore, unsigned long back) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2712 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2713 /* Remember that each color component in X11 use 16 bit no matter |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2714 * what the destination display supports. (and thus GDK) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2715 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2716 GdkColor forecolor, backcolor; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2717 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2718 if(fore & DW_RGB_COLOR) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2719 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2720 forecolor.pixel = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2721 forecolor.red = DW_RED_VALUE(fore) << 8; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2722 forecolor.green = DW_GREEN_VALUE(fore) << 8; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2723 forecolor.blue = DW_BLUE_VALUE(fore) << 8; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2724 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2725 gtk_widget_modify_text(handle, 0, &forecolor); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2726 gtk_widget_modify_text(handle, 1, &forecolor); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2727 gtk_widget_modify_fg(handle, 0, &forecolor); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2728 gtk_widget_modify_fg(handle, 1, &forecolor); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2729 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2730 else if(fore != DW_CLR_DEFAULT) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2731 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2732 forecolor = _colors[fore]; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2733 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2734 gtk_widget_modify_text(handle, 0, &_colors[fore]); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2735 gtk_widget_modify_text(handle, 1, &_colors[fore]); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2736 gtk_widget_modify_fg(handle, 0, &_colors[fore]); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2737 gtk_widget_modify_fg(handle, 1, &_colors[fore]); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2738 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2739 if(back & DW_RGB_COLOR) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2740 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2741 backcolor.pixel = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2742 backcolor.red = DW_RED_VALUE(back) << 8; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2743 backcolor.green = DW_GREEN_VALUE(back) << 8; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2744 backcolor.blue = DW_BLUE_VALUE(back) << 8; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2745 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2746 gtk_widget_modify_base(handle, 0, &backcolor); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2747 gtk_widget_modify_base(handle, 1, &backcolor); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2748 gtk_widget_modify_bg(handle, 0, &backcolor); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2749 gtk_widget_modify_bg(handle, 1, &backcolor); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2750 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2751 else if(back != DW_CLR_DEFAULT) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2752 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2753 backcolor = _colors[back]; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2754 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2755 gtk_widget_modify_base(handle, 0, &_colors[back]); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2756 gtk_widget_modify_base(handle, 1, &_colors[back]); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2757 gtk_widget_modify_bg(handle, 0, &_colors[back]); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2758 gtk_widget_modify_bg(handle, 1, &_colors[back]); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2759 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2760 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2761 _save_gdk_colors(handle, forecolor, backcolor); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2762 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2763 return TRUE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2764 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2765 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2766 * Sets the colors used by a specified window (widget) handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2767 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2768 * handle: The window (widget) handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2769 * fore: Foreground color in RGB format. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2770 * back: Background color in RGB format. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2771 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2772 int dw_window_set_color(HWND handle, unsigned long fore, unsigned long back) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2773 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2774 GtkWidget *handle2 = handle; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2775 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2776 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2777 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2778 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2779 if(GTK_IS_SCROLLED_WINDOW(handle) || GTK_IS_BOX(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2780 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2781 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2782 if(tmp) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2783 handle2 = tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2784 } |
1124
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
2785 else if(GTK_IS_GRID(handle)) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2786 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2787 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_eventbox"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2788 if(tmp) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2789 handle2 = tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2790 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2791 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2792 _set_color(handle2, fore, back); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2793 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2794 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2795 return TRUE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2796 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2797 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2798 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2799 * Sets the font used by a specified window (widget) handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2800 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2801 * handle: The window (widget) handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2802 * border: Size of the window border in pixels. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2803 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2804 int dw_window_set_border(HWND handle, int border) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2805 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2806 /* TODO */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2807 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2808 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2809 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2810 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2811 * Captures the mouse input to this window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2812 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2813 * handle: Handle to receive mouse input. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2814 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2815 void dw_window_capture(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2816 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2817 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2818 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2819 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2820 gdk_pointer_grab(gtk_widget_get_window(handle), TRUE, GDK_BUTTON_RELEASE_MASK | GDK_BUTTON_PRESS_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK, NULL, NULL, GDK_CURRENT_TIME); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2821 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2822 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2823 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2824 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2825 * Changes the appearance of the mouse pointer. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2826 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2827 * handle: Handle to widget for which to change. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2828 * cursortype: ID of the pointer you want. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2829 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2830 void dw_window_set_pointer(HWND handle, int pointertype) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2831 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2832 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2833 GdkCursor *cursor; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2834 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2835 DW_MUTEX_LOCK; |
976
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
2836 if(pointertype > 65535) |
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
2837 { |
1106
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
2838 GdkPixbuf *pixbuf = _find_pixbuf(GINT_TO_POINTER(pointertype), NULL, NULL); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2839 cursor = gdk_cursor_new_from_pixbuf(gdk_display_get_default(), pixbuf, 8, 8); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2840 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2841 else if(!pointertype) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2842 cursor = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2843 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2844 cursor = gdk_cursor_new(pointertype); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2845 if(handle && gtk_widget_get_window(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2846 gdk_window_set_cursor(gtk_widget_get_window(handle), cursor); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2847 if(cursor) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2848 gdk_cursor_unref(cursor); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2849 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2850 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2851 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2852 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2853 * Releases previous mouse capture. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2854 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2855 void dw_window_release(void) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2856 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2857 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2858 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2859 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2860 gdk_pointer_ungrab(GDK_CURRENT_TIME); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2861 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2862 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2863 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2864 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2865 * Create a new Window Frame. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2866 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2867 * owner: The Owner's window handle or HWND_DESKTOP. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2868 * title: The Window title. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2869 * flStyle: Style flags, see the PM reference. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2870 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2871 HWND dw_window_new(HWND hwndOwner, char *title, unsigned long flStyle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2872 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2873 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2874 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2875 int flags = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2876 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2877 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2878 if(hwndOwner && GTK_IS_MDI(hwndOwner)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2879 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2880 GtkWidget *label; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2881 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2882 tmp = dw_box_new(DW_VERT, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2883 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2884 label = gtk_label_new(title); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2885 gtk_widget_show(label); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2886 g_object_set_data(G_OBJECT(tmp), "_dw_mdi_child", GINT_TO_POINTER(1)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2887 g_object_set_data(G_OBJECT(tmp), "_dw_mdi_title", (gpointer)label); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2888 g_object_set_data(G_OBJECT(tmp), "_dw_mdi", (gpointer)hwndOwner); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2889 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2890 gtk_mdi_put(GTK_MDI(hwndOwner), tmp, 100, 75, label); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2891 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2892 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2893 { |
1451
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
2894 GtkWidget *box = dw_box_new(DW_VERT, 0); |
1452
dbe16031ffb4
Changes for GTK to make top-level windows act more like on other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1451
diff
changeset
|
2895 GtkWidget *grid = gtk_grid_new(); |
dbe16031ffb4
Changes for GTK to make top-level windows act more like on other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1451
diff
changeset
|
2896 |
dbe16031ffb4
Changes for GTK to make top-level windows act more like on other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1451
diff
changeset
|
2897 gtk_widget_show_all(grid); |
dbe16031ffb4
Changes for GTK to make top-level windows act more like on other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1451
diff
changeset
|
2898 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2899 last_window = tmp = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2900 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2901 gtk_window_set_title(GTK_WINDOW(tmp), title); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2902 if(!(flStyle & DW_FCF_SIZEBORDER)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2903 gtk_window_set_resizable(GTK_WINDOW(tmp), FALSE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2904 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2905 gtk_widget_realize(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2906 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2907 if(flStyle & DW_FCF_TITLEBAR) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2908 flags |= GDK_DECOR_TITLE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2909 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2910 if(flStyle & DW_FCF_MINMAX) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2911 flags |= GDK_DECOR_MINIMIZE | GDK_DECOR_MAXIMIZE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2912 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2913 if(flStyle & DW_FCF_SIZEBORDER) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2914 flags |= GDK_DECOR_RESIZEH | GDK_DECOR_BORDER; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2915 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2916 if(flStyle & DW_FCF_BORDER || flStyle & DW_FCF_DLGBORDER) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2917 flags |= GDK_DECOR_BORDER; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2918 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2919 if(flStyle & DW_FCF_MAXIMIZE) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2920 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2921 flags &= ~DW_FCF_MAXIMIZE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2922 gtk_window_maximize(GTK_WINDOW(tmp)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2923 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2924 if(flStyle & DW_FCF_MINIMIZE) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2925 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2926 flags &= ~DW_FCF_MINIMIZE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2927 gtk_window_iconify(GTK_WINDOW(tmp)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2928 } |
1388
8fe15c1648c9
Fix windows on GTK that aren't supposed to have a close button..
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1386
diff
changeset
|
2929 /* Either the CLOSEBUTTON or SYSMENU flags should make it deletable */ |
8fe15c1648c9
Fix windows on GTK that aren't supposed to have a close button..
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1386
diff
changeset
|
2930 if(!(flStyle & (DW_FCF_CLOSEBUTTON | DW_FCF_SYSMENU))) |
8fe15c1648c9
Fix windows on GTK that aren't supposed to have a close button..
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1386
diff
changeset
|
2931 gtk_window_set_deletable(GTK_WINDOW(tmp), FALSE); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2932 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2933 gdk_window_set_decorations(gtk_widget_get_window(tmp), flags); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2934 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2935 if(hwndOwner) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2936 gdk_window_reparent(gtk_widget_get_window(GTK_WIDGET(tmp)), gtk_widget_get_window(GTK_WIDGET(hwndOwner)), 0, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2937 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2938 if(flStyle & DW_FCF_SIZEBORDER) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2939 g_object_set_data(G_OBJECT(tmp), "_dw_size", GINT_TO_POINTER(1)); |
1451
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
2940 |
1452
dbe16031ffb4
Changes for GTK to make top-level windows act more like on other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1451
diff
changeset
|
2941 gtk_grid_attach(GTK_GRID(grid), box, 0, 1, 1, 1); |
dbe16031ffb4
Changes for GTK to make top-level windows act more like on other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1451
diff
changeset
|
2942 gtk_container_add(GTK_CONTAINER(tmp), grid); |
1451
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
2943 g_object_set_data(G_OBJECT(tmp), "_dw_boxhandle", (gpointer)box); |
1452
dbe16031ffb4
Changes for GTK to make top-level windows act more like on other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1451
diff
changeset
|
2944 g_object_set_data(G_OBJECT(tmp), "_dw_grid", (gpointer)grid); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2945 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2946 g_object_set_data(G_OBJECT(tmp), "_dw_style", GINT_TO_POINTER(flStyle)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2947 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2948 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2949 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2950 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2951 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2952 * Create a new Box to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2953 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2954 * type: Either DW_VERT (vertical) or DW_HORZ (horizontal). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2955 * pad: Number of pixels to pad around the box. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2956 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2957 HWND dw_box_new(int type, int pad) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2958 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2959 GtkWidget *tmp, *eventbox; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2960 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2961 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2962 DW_MUTEX_LOCK; |
1124
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
2963 tmp = gtk_grid_new(); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2964 eventbox = gtk_event_box_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2965 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2966 gtk_widget_show(eventbox); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2967 g_object_set_data(G_OBJECT(tmp), "_dw_eventbox", (gpointer)eventbox); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2968 g_object_set_data(G_OBJECT(tmp), "_dw_boxtype", GINT_TO_POINTER(type)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2969 g_object_set_data(G_OBJECT(tmp), "_dw_boxpad", GINT_TO_POINTER(pad)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2970 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2971 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2972 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2973 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2974 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2975 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2976 * Create a new scrollable Box to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2977 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2978 * type: Either DW_VERT (vertical) or DW_HORZ (horizontal). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2979 * pad: Number of pixels to pad around the box. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2980 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2981 HWND dw_scrollbox_new( int type, int pad ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2982 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2983 GtkWidget *tmp, *box, *eventbox; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2984 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2985 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2986 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2987 tmp = gtk_scrolled_window_new(NULL, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2988 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (tmp), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2989 |
1124
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
2990 box = gtk_grid_new(); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2991 eventbox = gtk_event_box_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2992 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2993 gtk_widget_show(eventbox); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2994 g_object_set_data(G_OBJECT(box), "_dw_eventbox", (gpointer)eventbox); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2995 g_object_set_data(G_OBJECT(box), "_dw_boxtype", GINT_TO_POINTER(type)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2996 g_object_set_data(G_OBJECT(box), "_dw_boxpad", GINT_TO_POINTER(pad)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2997 g_object_set_data(G_OBJECT(tmp), "_dw_boxhandle", (gpointer)box); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2998 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
2999 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(tmp),box); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3000 g_object_set_data(G_OBJECT(tmp), "_dw_user", box); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3001 gtk_widget_show(box); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3002 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3003 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3004 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3005 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3006 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3007 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3008 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3009 * Returns the position of the scrollbar in the scrollbox |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3010 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3011 * handle: Handle to the scrollbox to be queried. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3012 * orient: The vertical or horizontal scrollbar. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3013 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3014 int dw_scrollbox_get_pos(HWND handle, int orient) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3015 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3016 int val = -1, _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3017 GtkAdjustment *adjustment; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3018 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3019 if (!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3020 return -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3021 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3022 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3023 if ( orient == DW_HORZ ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3024 adjustment = gtk_scrolled_window_get_hadjustment( GTK_SCROLLED_WINDOW(handle) ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3025 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3026 adjustment = gtk_scrolled_window_get_vadjustment( GTK_SCROLLED_WINDOW(handle) ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3027 if (adjustment) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3028 val = _round_value(gtk_adjustment_get_value(adjustment)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3029 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3030 return val; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3031 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3032 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3033 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3034 * Gets the range for the scrollbar in the scrollbox. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3035 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3036 * handle: Handle to the scrollbox to be queried. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3037 * orient: The vertical or horizontal scrollbar. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3038 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3039 int API dw_scrollbox_get_range(HWND handle, int orient) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3040 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3041 int range = -1, _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3042 GtkAdjustment *adjustment; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3043 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3044 if (!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3045 return -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3046 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3047 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3048 if ( orient == DW_HORZ ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3049 adjustment = gtk_scrolled_window_get_hadjustment( GTK_SCROLLED_WINDOW(handle) ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3050 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3051 adjustment = gtk_scrolled_window_get_vadjustment( GTK_SCROLLED_WINDOW(handle) ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3052 if (adjustment) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3053 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3054 range = _round_value(gtk_adjustment_get_upper(adjustment)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3055 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3056 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3057 return range; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3058 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3059 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3060 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3061 * Create a new Group Box to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3062 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3063 * type: Either DW_VERT (vertical) or DW_HORZ (horizontal). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3064 * pad: Number of pixels to pad around the box. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3065 * title: Text to be displayined in the group outline. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3066 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3067 HWND dw_groupbox_new(int type, int pad, char *title) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3068 { |
1038
2c2fcfeeffcc
Attempt at making dw_window_get_font() return a Dynamic Windows style font name on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1022
diff
changeset
|
3069 GtkWidget *tmp, *frame; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3070 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3071 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3072 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3073 frame = gtk_frame_new(NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3074 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3075 gtk_frame_set_label(GTK_FRAME(frame), title && *title ? title : NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3076 |
1124
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
3077 tmp = gtk_grid_new(); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3078 gtk_container_set_border_width(GTK_CONTAINER(tmp), pad); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3079 g_object_set_data(G_OBJECT(tmp), "_dw_boxtype", GINT_TO_POINTER(type)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3080 g_object_set_data(G_OBJECT(tmp), "_dw_boxpad", GINT_TO_POINTER(pad)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3081 g_object_set_data(G_OBJECT(frame), "_dw_boxhandle", (gpointer)tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3082 gtk_container_add(GTK_CONTAINER(frame), tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3083 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3084 gtk_widget_show(frame); |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
3085 if(_DWDefaultFont) |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
3086 dw_window_set_font(frame, _DWDefaultFont); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3087 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3088 return frame; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3089 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3090 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3091 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3092 * Create a new MDI Frame to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3093 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3094 * id: An ID to be used with dw_window_from_id or 0L. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3095 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3096 HWND dw_mdi_new(unsigned long id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3097 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3098 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3099 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3100 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3101 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3102 tmp = gtk_mdi_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3103 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3104 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3105 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3106 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3107 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3108 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3109 * Create a bitmap object to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3110 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3111 * id: An ID to be used with dw_window_from_id() or 0L. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3112 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3113 HWND dw_bitmap_new(unsigned long id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3114 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3115 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3116 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3117 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3118 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3119 tmp = gtk_image_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3120 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3121 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3122 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3123 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3124 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3125 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3126 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3127 * Create a notebook object to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3128 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3129 * id: An ID to be used for getting the resource from the |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3130 * resource file. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3131 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3132 HWND dw_notebook_new(unsigned long id, int top) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3133 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3134 GtkWidget *tmp, **pagearray = calloc(sizeof(GtkWidget *), 256); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3135 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3136 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3137 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3138 tmp = gtk_notebook_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3139 if(top) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3140 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(tmp), GTK_POS_TOP); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3141 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3142 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(tmp), GTK_POS_BOTTOM); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3143 gtk_notebook_set_scrollable(GTK_NOTEBOOK(tmp), TRUE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3144 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3145 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3146 g_object_set_data(G_OBJECT(tmp), "_dw_pagearray", (gpointer)pagearray); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3147 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3148 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3149 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3150 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3151 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3152 * Create a menu object to be popped up. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3153 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3154 * id: An ID to be used for getting the resource from the |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3155 * resource file. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3156 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3157 HMENUI dw_menu_new(unsigned long id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3158 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3159 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3160 GtkAccelGroup *accel_group; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3161 HMENUI tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3162 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3163 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3164 tmp = gtk_menu_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3165 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3166 accel_group = gtk_accel_group_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3167 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3168 g_object_set_data(G_OBJECT(tmp), "_dw_accel", (gpointer)accel_group); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3169 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3170 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3171 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3172 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3173 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3174 * Create a menubar on a window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3175 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3176 * location: Handle of a window frame to be attached to. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3177 * If there is no box already packed into the "location", the menu will not appear |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3178 * so tell the user. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3179 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3180 HMENUI dw_menubar_new(HWND location) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3181 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3182 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3183 GtkAccelGroup *accel_group; |
1451
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
3184 GtkWidget *box; |
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
3185 HMENUI tmp = 0; |
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
3186 |
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
3187 DW_MUTEX_LOCK; |
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
3188 if(GTK_IS_WINDOW(location) && |
1452
dbe16031ffb4
Changes for GTK to make top-level windows act more like on other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1451
diff
changeset
|
3189 (box = (GtkWidget *)g_object_get_data(G_OBJECT(location), "_dw_grid"))) |
1451
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
3190 { |
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
3191 /* If there is an existing menu bar, remove it */ |
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
3192 GtkWidget *oldmenu = (GtkWidget *)g_object_get_data(G_OBJECT(location), "_dw_menubar"); |
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
3193 if(oldmenu) |
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
3194 gtk_widget_destroy(oldmenu); |
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
3195 /* Create a new menu bar */ |
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
3196 tmp = gtk_menu_bar_new(); |
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
3197 gtk_widget_show(tmp); |
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
3198 accel_group = gtk_accel_group_new(); |
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
3199 g_object_set_data(G_OBJECT(tmp), "_dw_accel", (gpointer)accel_group); |
1452
dbe16031ffb4
Changes for GTK to make top-level windows act more like on other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1451
diff
changeset
|
3200 /* Save pointers to each other */ |
1451
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
3201 g_object_set_data(G_OBJECT(location), "_dw_menubar", (gpointer)tmp); |
1452
dbe16031ffb4
Changes for GTK to make top-level windows act more like on other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1451
diff
changeset
|
3202 g_object_set_data(G_OBJECT(tmp), "_dw_window", (gpointer)location); |
dbe16031ffb4
Changes for GTK to make top-level windows act more like on other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1451
diff
changeset
|
3203 gtk_grid_attach(GTK_GRID(box), tmp, 0, 0, 1, 1); |
1451
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
3204 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3205 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3206 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3207 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3208 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3209 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3210 * Destroys a menu created with dw_menubar_new or dw_menu_new. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3211 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3212 * menu: Handle of a menu. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3213 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3214 void dw_menu_destroy(HMENUI *menu) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3215 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3216 if(menu && *menu) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3217 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3218 int _locked_by_me = FALSE; |
1452
dbe16031ffb4
Changes for GTK to make top-level windows act more like on other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1451
diff
changeset
|
3219 GtkWidget *window; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3220 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3221 DW_MUTEX_LOCK; |
1452
dbe16031ffb4
Changes for GTK to make top-level windows act more like on other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1451
diff
changeset
|
3222 /* If it is a menu bar, try to delete the reference to it */ |
dbe16031ffb4
Changes for GTK to make top-level windows act more like on other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1451
diff
changeset
|
3223 if(GTK_IS_MENU_BAR(*menu) && |
dbe16031ffb4
Changes for GTK to make top-level windows act more like on other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1451
diff
changeset
|
3224 (window = (GtkWidget *)g_object_get_data(G_OBJECT(*menu), "_dw_window"))) |
dbe16031ffb4
Changes for GTK to make top-level windows act more like on other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1451
diff
changeset
|
3225 g_object_set_data(G_OBJECT(window), "_dw_menubar", NULL); |
dbe16031ffb4
Changes for GTK to make top-level windows act more like on other platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1451
diff
changeset
|
3226 /* Actually destroy the menu */ |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3227 gtk_widget_destroy(*menu); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3228 *menu = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3229 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3230 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3231 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3232 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3233 char _removetilde(char *dest, char *src) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3234 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3235 int z, cur=0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3236 char accel = '\0'; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3237 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3238 for(z=0;z<strlen(src);z++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3239 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3240 if(src[z] != '~') |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3241 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3242 dest[cur] = src[z]; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3243 cur++; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3244 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3245 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3246 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3247 dest[cur] = '_'; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3248 accel = src[z+1]; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3249 cur++; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3250 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3251 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3252 dest[cur] = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3253 return accel; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3254 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3255 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3256 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3257 * Adds a menuitem or submenu to an existing menu. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3258 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3259 * menu: The handle to the existing menu. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3260 * title: The title text on the menu item to be added. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3261 * id: An ID to be used for message passing. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3262 * flags: Extended attributes to set on the menu. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3263 * end: If TRUE memu is positioned at the end of the menu. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3264 * check: If TRUE menu is "check"able. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3265 * submenu: Handle to an existing menu to be a submenu or NULL. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3266 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3267 HWND dw_menu_append_item(HMENUI menu, char *title, unsigned long id, unsigned long flags, int end, int check, HMENUI submenu) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3268 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3269 GtkWidget *tmphandle; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3270 char accel, *tempbuf = malloc(strlen(title)+1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3271 int _locked_by_me = FALSE, submenucount; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3272 GtkAccelGroup *accel_group; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3273 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3274 if (!menu) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3275 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3276 free(tempbuf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3277 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3278 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3279 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3280 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3281 accel = _removetilde(tempbuf, title); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3282 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3283 accel_group = (GtkAccelGroup *)g_object_get_data(G_OBJECT(menu), "_dw_accel"); |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
3284 submenucount = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(menu), "_dw_submenucount")); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3285 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3286 if (strlen(tempbuf) == 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3287 tmphandle=gtk_menu_item_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3288 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3289 { |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
3290 char numbuf[11] = {0}; |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
3291 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3292 if (check) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3293 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3294 tmphandle = gtk_check_menu_item_new_with_label(tempbuf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3295 if (accel && accel_group) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3296 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3297 gtk_label_set_use_underline(GTK_LABEL(gtk_bin_get_child(GTK_BIN(tmphandle))), TRUE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3298 #if 0 /* TODO: This isn't working right */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3299 gtk_widget_add_accelerator(tmphandle, "activate", accel_group, tmp_key, GDK_MOD1_MASK, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3300 #endif |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3301 } |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
3302 snprintf(numbuf, 10, "%lu", id); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3303 g_object_set_data(G_OBJECT(menu), numbuf, (gpointer)tmphandle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3304 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3305 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3306 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3307 tmphandle=gtk_menu_item_new_with_label(tempbuf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3308 if (accel && accel_group) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3309 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3310 gtk_label_set_use_underline(GTK_LABEL(gtk_bin_get_child(GTK_BIN(tmphandle))), TRUE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3311 #if 0 /* TODO: This isn't working right */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3312 gtk_widget_add_accelerator(tmphandle, "activate", accel_group, tmp_key, GDK_MOD1_MASK, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3313 #endif |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3314 } |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
3315 snprintf(numbuf, 10, "%lu", id); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3316 g_object_set_data(G_OBJECT(menu), numbuf, (gpointer)tmphandle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3317 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3318 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3319 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3320 gtk_widget_show(tmphandle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3321 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3322 if (submenu) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3323 { |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
3324 char tempbuf[101] = {0}; |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
3325 |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
3326 snprintf(tempbuf, 100, "_dw_submenu%d", submenucount); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3327 submenucount++; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3328 gtk_menu_item_set_submenu(GTK_MENU_ITEM(tmphandle), submenu); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3329 g_object_set_data(G_OBJECT(menu), tempbuf, (gpointer)submenu); |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
3330 g_object_set_data(G_OBJECT(menu), "_dw_submenucount", GINT_TO_POINTER(submenucount)); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3331 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3332 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3333 if (GTK_IS_MENU_BAR(menu)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3334 gtk_menu_shell_append(GTK_MENU_SHELL(menu), tmphandle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3335 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3336 gtk_menu_shell_append(GTK_MENU_SHELL(menu), tmphandle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3337 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3338 g_object_set_data(G_OBJECT(tmphandle), "_dw_id", GINT_TO_POINTER(id)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3339 free(tempbuf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3340 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3341 * Set flags |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3342 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3343 if ( check && (flags & DW_MIS_CHECKED) ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3344 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3345 _dw_ignore_click = 1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3346 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(tmphandle), 1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3347 _dw_ignore_click = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3348 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3349 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3350 if ( flags & DW_MIS_DISABLED ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3351 gtk_widget_set_sensitive( tmphandle, FALSE ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3352 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3353 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3354 return tmphandle; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3355 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3356 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3357 GtkWidget *_find_submenu_id(GtkWidget *start, char *name) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3358 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3359 GtkWidget *tmp; |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
3360 int z, submenucount = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(start), "_dw_submenucount")); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3361 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3362 if((tmp = g_object_get_data(G_OBJECT(start), name))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3363 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3364 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3365 for(z=0;z<submenucount;z++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3366 { |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
3367 char tempbuf[101] = {0}; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3368 GtkWidget *submenu, *menuitem; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3369 |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
3370 snprintf(tempbuf, 100, "_dw_submenu%d", z); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3371 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3372 if((submenu = g_object_get_data(G_OBJECT(start), tempbuf))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3373 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3374 if((menuitem = _find_submenu_id(submenu, name))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3375 return menuitem; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3376 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3377 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3378 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3379 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3380 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3381 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3382 * Sets the state of a menu item check. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3383 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3384 * menu: The handle the the existing menu. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3385 * id: Menuitem id. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3386 * check: TRUE for checked FALSE for not checked. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3387 * deprecated: use dw_menu_item_set_state() |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3388 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3389 void dw_menu_item_set_check(HMENUI menu, unsigned long id, int check) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3390 { |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
3391 char numbuf[11]; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3392 GtkWidget *tmphandle; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3393 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3394 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3395 if(!menu) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3396 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3397 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3398 DW_MUTEX_LOCK; |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
3399 snprintf(numbuf, 10, "%lu", id); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3400 tmphandle = _find_submenu_id(menu, numbuf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3401 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3402 if(tmphandle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3403 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3404 _dw_ignore_click = 1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3405 if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(tmphandle)) != check) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3406 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(tmphandle), check); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3407 _dw_ignore_click = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3408 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3409 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3410 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3411 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3412 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3413 * Sets the state of a menu item. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3414 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3415 * menu: The handle the the existing menu. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3416 * id: Menuitem id. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3417 * state: TRUE for checked FALSE for not checked. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3418 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3419 void dw_menu_item_set_state(HMENUI menu, unsigned long id, unsigned long state) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3420 { |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
3421 char numbuf[11] = {0}; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3422 GtkWidget *tmphandle; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3423 int check; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3424 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3425 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3426 if(!menu) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3427 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3428 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3429 DW_MUTEX_LOCK; |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
3430 snprintf(numbuf, 10, "%lu", id); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3431 tmphandle = _find_submenu_id(menu, numbuf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3432 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3433 if ( (state & DW_MIS_CHECKED) || (state & DW_MIS_UNCHECKED) ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3434 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3435 if ( state & DW_MIS_CHECKED ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3436 check = 1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3437 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3438 check = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3439 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3440 if (tmphandle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3441 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3442 _dw_ignore_click = 1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3443 if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(tmphandle)) != check) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3444 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(tmphandle), check); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3445 _dw_ignore_click = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3446 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3447 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3448 if ( (state & DW_MIS_ENABLED) || (state & DW_MIS_DISABLED) ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3449 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3450 if (tmphandle ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3451 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3452 _dw_ignore_click = 1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3453 if ( state & DW_MIS_ENABLED ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3454 gtk_widget_set_sensitive( tmphandle, TRUE ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3455 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3456 gtk_widget_set_sensitive( tmphandle, FALSE ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3457 _dw_ignore_click = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3458 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3459 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3460 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3461 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3462 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3463 /* |
1373
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3464 * Deletes the menu item specified. |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3465 * Parameters: |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3466 * menu: The handle to the menu in which the item was appended. |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3467 * id: Menuitem id. |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3468 * Returns: |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3469 * DW_ERROR_NONE (0) on success or DW_ERROR_UNKNOWN on failure. |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3470 */ |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3471 int API dw_menu_delete_item(HMENUI menu, unsigned long id) |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3472 { |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3473 char numbuf[11]; |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3474 GtkWidget *tmphandle; |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3475 int _locked_by_me = FALSE; |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3476 int ret = DW_ERROR_UNKNOWN; |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3477 |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3478 if(!menu) |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3479 return ret; |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3480 |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3481 DW_MUTEX_LOCK; |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3482 snprintf(numbuf, 10, "%lu", id); |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3483 tmphandle = _find_submenu_id(menu, numbuf); |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3484 |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3485 if(tmphandle) |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3486 { |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3487 gtk_widget_destroy(tmphandle); |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3488 g_object_set_data(G_OBJECT(menu), numbuf, NULL); |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3489 ret = DW_ERROR_NONE; |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3490 } |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3491 DW_MUTEX_UNLOCK; |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3492 return ret; |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3493 } |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3494 |
bad3e17ab6e5
Implemented dw_menu_delete_item() for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1358
diff
changeset
|
3495 /* |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3496 * Pops up a context menu at given x and y coordinates. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3497 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3498 * menu: The handle the the existing menu. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3499 * parent: Handle to the window initiating the popup. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3500 * x: X coordinate. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3501 * y: Y coordinate. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3502 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3503 void dw_menu_popup(HMENUI *menu, HWND parent, int x, int y) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3504 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3505 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3506 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3507 if(!menu || !*menu) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3508 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3509 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3510 popup = parent; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3511 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3512 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3513 gtk_menu_popup(GTK_MENU(*menu), NULL, NULL, NULL, NULL, 1, GDK_CURRENT_TIME); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3514 *menu = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3515 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3516 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3517 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3518 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3519 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3520 * Returns the current X and Y coordinates of the mouse pointer. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3521 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3522 * x: Pointer to variable to store X coordinate. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3523 * y: Pointer to variable to store Y coordinate. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3524 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3525 void dw_pointer_query_pos(long *x, long *y) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3526 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3527 GdkModifierType state; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3528 int gx, gy; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3529 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3530 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3531 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3532 #ifdef GDK_WINDOWING_X11 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3533 gdk_window_get_pointer (gdk_x11_window_lookup_for_display(gdk_display_get_default(), GDK_ROOT_WINDOW()), &gx, &gy, &state); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3534 #endif |
1122
e52c710e6d08
Minor change to allow dw_pointer_query_pos() to take NULL paramaters on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1121
diff
changeset
|
3535 if(x) |
e52c710e6d08
Minor change to allow dw_pointer_query_pos() to take NULL paramaters on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1121
diff
changeset
|
3536 *x = gx; |
e52c710e6d08
Minor change to allow dw_pointer_query_pos() to take NULL paramaters on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1121
diff
changeset
|
3537 if(y) |
e52c710e6d08
Minor change to allow dw_pointer_query_pos() to take NULL paramaters on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1121
diff
changeset
|
3538 *y = gy; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3539 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3540 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3541 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3542 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3543 * Sets the X and Y coordinates of the mouse pointer. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3544 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3545 * x: X coordinate. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3546 * y: Y coordinate. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3547 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3548 void dw_pointer_set_pos(long x, long y) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3549 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3550 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3551 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3552 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3553 #ifdef GDK_WINDOWING_X11 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3554 gdk_display_warp_pointer( gdk_display_get_default(), gdk_screen_get_default(), x, y ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3555 #endif |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3556 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3557 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3558 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3559 #define _DW_TREE_CONTAINER 1 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3560 #define _DW_TREE_TREE 2 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3561 #define _DW_TREE_LISTBOX 3 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3562 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3563 GtkWidget *_tree_create(unsigned long id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3564 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3565 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3566 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3567 tmp = gtk_scrolled_window_new(NULL, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3568 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (tmp), |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3569 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3570 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3571 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3572 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3573 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3574 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3575 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3576 GtkWidget *_tree_setup(GtkWidget *tmp, GtkTreeModel *store) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3577 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3578 GtkWidget *tree = gtk_tree_view_new_with_model(store); |
900
2ba1f71e23fa
Disable searching in GTK tree view based controls. It is very disconcerting.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
892
diff
changeset
|
3579 gtk_tree_view_set_enable_search(GTK_TREE_VIEW(tree), FALSE); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3580 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(tmp), tree); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3581 g_object_set_data(G_OBJECT(tmp), "_dw_user", (gpointer)tree); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3582 return tree; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3583 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3584 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3585 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3586 * Create a container object to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3587 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3588 * id: An ID to be used for getting the resource from the |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3589 * resource file. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3590 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3591 HWND dw_container_new(unsigned long id, int multi) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3592 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3593 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3594 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3595 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3596 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3597 if(!(tmp = _tree_create(id))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3598 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3599 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3600 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3601 } |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
3602 g_object_set_data(G_OBJECT(tmp), "_dw_tree_type", GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3603 g_object_set_data(G_OBJECT(tmp), "_dw_multi_sel", GINT_TO_POINTER(multi)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3604 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3605 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3606 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3607 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3608 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3609 * Create a tree object to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3610 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3611 * id: An ID to be used for getting the resource from the |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3612 * resource file. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3613 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3614 HWND dw_tree_new(ULONG id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3615 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3616 GtkWidget *tmp, *tree; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3617 GtkTreeStore *store; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3618 GtkTreeViewColumn *col; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3619 GtkCellRenderer *rend; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3620 GtkTreeSelection *sel; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3621 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3622 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3623 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3624 if(!(tmp = _tree_create(id))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3625 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3626 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3627 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3628 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3629 store = gtk_tree_store_new(4, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_POINTER, G_TYPE_POINTER); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3630 tree = _tree_setup(tmp, GTK_TREE_MODEL(store)); |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
3631 g_object_set_data(G_OBJECT(tmp), "_dw_tree_type", GINT_TO_POINTER(_DW_TREE_TYPE_TREE)); |
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
3632 g_object_set_data(G_OBJECT(tree), "_dw_tree_type", GINT_TO_POINTER(_DW_TREE_TYPE_TREE)); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3633 col = gtk_tree_view_column_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3634 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3635 rend = gtk_cell_renderer_pixbuf_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3636 gtk_tree_view_column_pack_start(col, rend, FALSE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3637 gtk_tree_view_column_add_attribute(col, rend, "pixbuf", 1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3638 rend = gtk_cell_renderer_text_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3639 gtk_tree_view_column_pack_start(col, rend, TRUE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3640 gtk_tree_view_column_add_attribute(col, rend, "text", 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3641 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3642 gtk_tree_view_append_column(GTK_TREE_VIEW (tree), col); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3643 gtk_tree_view_set_expander_column(GTK_TREE_VIEW(tree), col); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3644 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), FALSE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3645 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3646 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3647 gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3648 gtk_widget_show(tree); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3649 |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
3650 if(_DWDefaultFont) |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
3651 dw_window_set_font(tmp, _DWDefaultFont); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3652 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3653 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3654 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3655 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3656 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3657 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3658 * Create a new static text window (widget) to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3659 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3660 * text: The text to be display by the static text widget. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3661 * id: An ID to be used with dw_window_from_id() or 0L. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3662 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3663 HWND dw_text_new(char *text, unsigned long id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3664 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3665 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3666 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3667 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3668 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3669 tmp = gtk_label_new(text); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3670 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3671 /* Left and centered */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3672 gtk_misc_set_alignment(GTK_MISC(tmp), 0.0f, 0.5f); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3673 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3674 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3675 gtk_misc_set_alignment(GTK_MISC(tmp), DW_LEFT, DW_LEFT); |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
3676 if(_DWDefaultFont) |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
3677 dw_window_set_font(tmp, _DWDefaultFont); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3678 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3679 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3680 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3681 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3682 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3683 * Create a new status text window (widget) to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3684 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3685 * text: The text to be display by the static text widget. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3686 * id: An ID to be used with dw_window_from_id() or 0L. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3687 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3688 HWND dw_status_text_new(char *text, ULONG id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3689 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3690 GtkWidget *tmp, *frame; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3691 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3692 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3693 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3694 frame = gtk_frame_new(NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3695 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3696 tmp = gtk_label_new(text); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3697 gtk_container_add(GTK_CONTAINER(frame), tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3698 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3699 gtk_widget_show(frame); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3700 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3701 /* Left and centered */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3702 gtk_misc_set_alignment(GTK_MISC(tmp), 0.0f, 0.5f); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3703 g_object_set_data(G_OBJECT(frame), "_dw_id", GINT_TO_POINTER(id)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3704 g_object_set_data(G_OBJECT(frame), "_dw_label", (gpointer)tmp); |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
3705 if(_DWDefaultFont) |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
3706 dw_window_set_font(tmp, _DWDefaultFont); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3707 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3708 return frame; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3709 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3710 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3711 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3712 * Create a new Multiline Editbox window (widget) to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3713 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3714 * id: An ID to be used with dw_window_from_id() or 0L. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3715 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3716 HWND dw_mle_new(unsigned long id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3717 { |
1124
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
3718 GtkWidget *tmp, *tmpbox; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3719 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3720 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3721 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3722 tmpbox = gtk_scrolled_window_new (NULL, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3723 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(tmpbox), |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3724 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3725 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(tmpbox), GTK_SHADOW_ETCHED_IN); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3726 tmp = gtk_text_view_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3727 gtk_container_add (GTK_CONTAINER(tmpbox), tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3728 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(tmp), GTK_WRAP_NONE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3729 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3730 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3731 g_object_set_data(G_OBJECT(tmpbox), "_dw_user", (gpointer)tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3732 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3733 gtk_widget_show(tmpbox); |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
3734 if(_DWDefaultFont) |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
3735 dw_window_set_font(tmpbox, _DWDefaultFont); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3736 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3737 return tmpbox; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3738 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3739 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3740 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3741 * Create a new Entryfield window (widget) to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3742 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3743 * text: The default text to be in the entryfield widget. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3744 * id: An ID to be used with dw_window_from_id() or 0L. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3745 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3746 HWND dw_entryfield_new(char *text, unsigned long id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3747 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3748 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3749 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3750 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3751 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3752 tmp = gtk_entry_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3753 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3754 gtk_entry_set_text(GTK_ENTRY(tmp), text); |
1352
08de3c1f4ae4
Fix entryfields, comboboxes etc being too wide in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1330
diff
changeset
|
3755 gtk_entry_set_width_chars(GTK_ENTRY(tmp), 0); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3756 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3757 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3758 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3759 |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
3760 if(_DWDefaultFont) |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
3761 dw_window_set_font(tmp, _DWDefaultFont); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3762 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3763 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3764 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3765 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3766 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3767 * Create a new Entryfield (password) window (widget) to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3768 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3769 * text: The default text to be in the entryfield widget. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3770 * id: An ID to be used with dw_window_from_id() or 0L. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3771 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3772 HWND dw_entryfield_password_new(char *text, ULONG id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3773 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3774 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3775 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3776 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3777 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3778 tmp = gtk_entry_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3779 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3780 gtk_entry_set_visibility(GTK_ENTRY(tmp), FALSE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3781 gtk_entry_set_text(GTK_ENTRY(tmp), text); |
1352
08de3c1f4ae4
Fix entryfields, comboboxes etc being too wide in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1330
diff
changeset
|
3782 gtk_entry_set_width_chars(GTK_ENTRY(tmp), 0); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3783 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3784 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3785 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3786 |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
3787 if(_DWDefaultFont) |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
3788 dw_window_set_font(tmp, _DWDefaultFont); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3789 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3790 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3791 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3792 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3793 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3794 * Create a new Combobox window (widget) to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3795 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3796 * text: The default text to be in the combpbox widget. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3797 * id: An ID to be used with dw_window_from_id() or 0L. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3798 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3799 HWND dw_combobox_new(char *text, unsigned long id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3800 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3801 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3802 GtkListStore *store; |
780
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
3803 int _locked_by_me = FALSE; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3804 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3805 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3806 store = gtk_list_store_new(1, G_TYPE_STRING); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3807 tmp = gtk_combo_box_new_with_model_and_entry(GTK_TREE_MODEL(store)); |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
3808 gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(tmp), 0); |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
3809 gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(tmp))), text); |
1352
08de3c1f4ae4
Fix entryfields, comboboxes etc being too wide in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1330
diff
changeset
|
3810 gtk_entry_set_width_chars(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(tmp))), 0); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3811 gtk_widget_show(tmp); |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
3812 g_object_set_data(G_OBJECT(tmp), "_dw_tree_type", GINT_TO_POINTER(_DW_TREE_TYPE_COMBOBOX)); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3813 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
3814 if(_DWDefaultFont) |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
3815 dw_window_set_font(tmp, _DWDefaultFont); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3816 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3817 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3818 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3819 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3820 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3821 * Create a new button window (widget) to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3822 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3823 * text: The text to be display by the static text widget. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3824 * id: An ID to be used with dw_window_from_id() or 0L. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3825 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3826 HWND dw_button_new(char *text, unsigned long id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3827 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3828 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3829 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3830 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3831 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3832 tmp = gtk_button_new_with_label(text); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3833 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3834 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
3835 if(_DWDefaultFont) |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
3836 dw_window_set_font(tmp, _DWDefaultFont); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3837 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3838 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3839 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3840 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3841 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3842 * Create a new bitmap button window (widget) to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3843 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3844 * text: Bubble help text to be displayed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3845 * id: An ID of a bitmap in the resource file. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3846 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3847 HWND dw_bitmapbutton_new(char *text, unsigned long id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3848 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3849 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3850 GtkWidget *bitmap; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3851 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3852 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3853 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3854 tmp = gtk_button_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3855 bitmap = dw_bitmap_new(id); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3856 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3857 if(bitmap) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3858 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3859 dw_window_set_bitmap(bitmap, id, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3860 gtk_container_add (GTK_CONTAINER(tmp), bitmap); |
1069
a1deca9b0876
Attempt at scaling bitmaps if they are too big for where they are packed on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1066
diff
changeset
|
3861 g_object_set_data(G_OBJECT(tmp), "_dw_bitmap", bitmap); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3862 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3863 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3864 if(text) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3865 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3866 gtk_widget_set_tooltip_text(tmp, text); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3867 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3868 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3869 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3870 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3871 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3872 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3873 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3874 * Create a new bitmap button window (widget) to be packed from a file. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3875 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3876 * label_text: Text to display on button. TBD when Windows works |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3877 * text: Bubble help text to be displayed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3878 * id: An ID to be used with dw_window_from_id() or 0L. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3879 * filename: Name of the file, omit extention to have |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3880 * DW pick the appropriate file extension. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3881 * (BMP on OS/2 or Windows, XPM on Unix) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3882 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3883 HWND dw_bitmapbutton_new_from_file(char *text, unsigned long id, char *filename) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3884 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3885 GtkWidget *bitmap; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3886 GtkWidget *box; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3887 GtkWidget *label; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3888 GtkWidget *button; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3889 char *label_text=NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3890 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3891 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3892 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3893 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3894 /* Create box for image and label */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3895 box = gtk_hbox_new (FALSE, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3896 gtk_container_set_border_width (GTK_CONTAINER (box), 2); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3897 |
1069
a1deca9b0876
Attempt at scaling bitmaps if they are too big for where they are packed on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1066
diff
changeset
|
3898 /* Create a new button */ |
a1deca9b0876
Attempt at scaling bitmaps if they are too big for where they are packed on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1066
diff
changeset
|
3899 button = gtk_button_new(); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3900 /* Now on to the image stuff */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3901 bitmap = dw_bitmap_new(id); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3902 if(bitmap) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3903 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3904 dw_window_set_bitmap( bitmap, 0, filename ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3905 /* Pack the image into the box */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3906 gtk_box_pack_start( GTK_BOX(box), bitmap, TRUE, FALSE, 3 ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3907 gtk_widget_show( bitmap ); |
1069
a1deca9b0876
Attempt at scaling bitmaps if they are too big for where they are packed on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1066
diff
changeset
|
3908 g_object_set_data(G_OBJECT(button), "_dw_bitmap", bitmap); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3909 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3910 if(label_text) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3911 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3912 /* Create a label for the button */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3913 label = gtk_label_new( label_text ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3914 /* Pack the label into the box */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3915 gtk_box_pack_start( GTK_BOX(box), label, TRUE, FALSE, 3 ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3916 gtk_widget_show( label ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3917 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3918 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3919 /* Pack and show all our widgets */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3920 gtk_widget_show( box ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3921 gtk_container_add( GTK_CONTAINER(button), box ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3922 gtk_widget_show( button ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3923 if(text) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3924 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3925 gtk_widget_set_tooltip_text(button, text); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3926 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3927 g_object_set_data(G_OBJECT(button), "_dw_id", GINT_TO_POINTER(id)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3928 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3929 return button; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3930 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3931 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3932 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3933 * Create a new bitmap button window (widget) to be packed from data. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3934 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3935 * text: Bubble help text to be displayed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3936 * id: An ID to be used with dw_window_from_id() or 0L. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3937 * data: Raw data of image. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3938 * (BMP on OS/2 or Windows, XPM on Unix) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3939 * len: Length of raw data |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3940 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3941 HWND dw_bitmapbutton_new_from_data(char *text, unsigned long id, char *data, int len) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3942 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3943 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3944 GtkWidget *bitmap; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3945 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3946 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3947 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3948 tmp = gtk_button_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3949 bitmap = dw_bitmap_new(id); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3950 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3951 if ( bitmap ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3952 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3953 dw_window_set_bitmap_from_data(bitmap, 0, data, len); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3954 gtk_container_add (GTK_CONTAINER(tmp), bitmap); |
1069
a1deca9b0876
Attempt at scaling bitmaps if they are too big for where they are packed on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1066
diff
changeset
|
3955 g_object_set_data(G_OBJECT(tmp), "_dw_bitmap", bitmap); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3956 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3957 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3958 if(text) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3959 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3960 gtk_widget_set_tooltip_text(tmp, text); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3961 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3962 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3963 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3964 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3965 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3966 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3967 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3968 * Create a new spinbutton window (widget) to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3969 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3970 * text: The text to be display by the static text widget. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3971 * id: An ID to be used with dw_window_from_id() or 0L. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3972 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3973 HWND dw_spinbutton_new(char *text, unsigned long id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3974 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3975 GtkAdjustment *adj; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3976 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3977 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3978 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3979 DW_MUTEX_LOCK; |
1022
fa1a826348b3
Change the default range of spinbuttons to be -65536 to 65536 on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1021
diff
changeset
|
3980 adj = (GtkAdjustment *)gtk_adjustment_new ((float)atoi(text), -65536.0, 65536.0, 1.0, 5.0, 0.0); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3981 tmp = gtk_spin_button_new (adj, 0, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3982 gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(tmp), TRUE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3983 gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(tmp), TRUE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3984 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3985 g_object_set_data(G_OBJECT(tmp), "_dw_adjustment", (gpointer)adj); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3986 g_object_set_data(G_OBJECT(adj), "_dw_spinbutton", (gpointer)tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3987 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
3988 if(_DWDefaultFont) |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
3989 dw_window_set_font(tmp, _DWDefaultFont); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3990 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3991 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3992 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3993 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3994 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3995 * Create a new radiobutton window (widget) to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3996 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3997 * text: The text to be display by the static text widget. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3998 * id: An ID to be used with dw_window_from_id() or 0L. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
3999 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4000 HWND dw_radiobutton_new(char *text, ULONG id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4001 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4002 /* This will have to be fixed in the future. */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4003 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4004 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4005 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4006 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4007 tmp = gtk_radio_button_new_with_label(NULL, text); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4008 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4009 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4010 |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
4011 if(_DWDefaultFont) |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
4012 dw_window_set_font(tmp, _DWDefaultFont); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4013 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4014 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4015 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4016 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4017 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4018 * Create a new slider window (widget) to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4019 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4020 * vertical: TRUE or FALSE if slider is vertical. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4021 * increments: Number of increments available. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4022 * id: An ID to be used with dw_window_from_id() or 0L. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4023 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4024 HWND dw_slider_new(int vertical, int increments, ULONG id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4025 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4026 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4027 GtkAdjustment *adjustment; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4028 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4029 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4030 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4031 adjustment = (GtkAdjustment *)gtk_adjustment_new(0, 0, (gfloat)increments, 1, 1, 1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4032 if(vertical) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4033 tmp = gtk_vscale_new(adjustment); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4034 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4035 tmp = gtk_hscale_new(adjustment); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4036 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4037 gtk_scale_set_draw_value(GTK_SCALE(tmp), 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4038 gtk_scale_set_digits(GTK_SCALE(tmp), 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4039 g_object_set_data(G_OBJECT(tmp), "_dw_adjustment", (gpointer)adjustment); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4040 g_object_set_data(G_OBJECT(adjustment), "_dw_slider", (gpointer)tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4041 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4042 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4043 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4044 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4045 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4046 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4047 * Create a new scrollbar window (widget) to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4048 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4049 * vertical: TRUE or FALSE if scrollbar is vertical. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4050 * increments: Number of increments available. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4051 * id: An ID to be used with dw_window_from_id() or 0L. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4052 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4053 HWND dw_scrollbar_new(int vertical, ULONG id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4054 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4055 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4056 GtkAdjustment *adjustment; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4057 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4058 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4059 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4060 adjustment = (GtkAdjustment *)gtk_adjustment_new(0, 0, 0, 1, 1, 1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4061 if(vertical) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4062 tmp = gtk_vscrollbar_new(adjustment); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4063 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4064 tmp = gtk_hscrollbar_new(adjustment); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4065 gtk_widget_set_can_focus(tmp, FALSE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4066 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4067 g_object_set_data(G_OBJECT(tmp), "_dw_adjustment", (gpointer)adjustment); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4068 g_object_set_data(G_OBJECT(adjustment), "_dw_scrollbar", (gpointer)tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4069 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4070 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4071 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4072 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4073 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4074 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4075 * Create a new percent bar window (widget) to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4076 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4077 * id: An ID to be used with dw_window_from_id() or 0L. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4078 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4079 HWND dw_percent_new(unsigned long id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4080 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4081 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4082 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4083 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4084 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4085 tmp = gtk_progress_bar_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4086 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4087 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4088 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4089 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4090 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4091 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4092 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4093 * Create a new checkbox window (widget) to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4094 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4095 * text: The text to be display by the static text widget. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4096 * id: An ID to be used with dw_window_from_id() or 0L. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4097 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4098 HWND dw_checkbox_new(char *text, unsigned long id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4099 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4100 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4101 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4102 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4103 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4104 tmp = gtk_check_button_new_with_label(text); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4105 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4106 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
4107 if(_DWDefaultFont) |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
4108 dw_window_set_font(tmp, _DWDefaultFont); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4109 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4110 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4111 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4112 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4113 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4114 * Create a new listbox window (widget) to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4115 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4116 * id: An ID to be used with dw_window_from_id() or 0L. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4117 * multi: Multiple select TRUE or FALSE. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4118 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4119 HWND dw_listbox_new(unsigned long id, int multi) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4120 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4121 GtkWidget *tmp, *tree; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4122 GtkListStore *store; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4123 GtkTreeViewColumn *col; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4124 GtkCellRenderer *rend; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4125 GtkTreeSelection *sel; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4126 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4127 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4128 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4129 if(!(tmp = _tree_create(id))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4130 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4131 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4132 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4133 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4134 store = gtk_list_store_new(1, G_TYPE_STRING); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4135 tree = _tree_setup(tmp, GTK_TREE_MODEL(store)); |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
4136 g_object_set_data(G_OBJECT(tmp), "_dw_tree_type", GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)); |
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
4137 g_object_set_data(G_OBJECT(tree), "_dw_tree_type", GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
4138 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4139 col = gtk_tree_view_column_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4140 rend = gtk_cell_renderer_text_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4141 gtk_tree_view_column_pack_start(col, rend, TRUE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4142 gtk_tree_view_column_add_attribute(col, rend, "text", 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4143 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4144 gtk_tree_view_append_column(GTK_TREE_VIEW (tree), col); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4145 gtk_tree_view_set_expander_column(GTK_TREE_VIEW(tree), col); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4146 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), FALSE); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
4147 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4148 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4149 if(multi) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4150 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4151 gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4152 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4153 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4154 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4155 gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4156 } |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
4157 gtk_widget_show(tree); |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
4158 if(_DWDefaultFont) |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
4159 dw_window_set_font(tmp, _DWDefaultFont); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4160 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4161 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4162 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4163 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4164 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4165 * Sets the icon used for a given window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4166 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4167 * handle: Handle to the window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4168 * id: An ID to be used to specify the icon. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4169 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4170 void dw_window_set_icon(HWND handle, HICN icon) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4171 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4172 GdkPixbuf *icon_pixbuf; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4173 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4174 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4175 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4176 icon_pixbuf = _find_pixbuf(icon, NULL, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4177 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4178 if(gtk_widget_get_window(handle) && icon_pixbuf) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4179 { |
787
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
4180 GList *list = g_list_append(NULL, icon_pixbuf); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4181 gdk_window_set_icon_list(gtk_widget_get_window(handle), list); |
787
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
4182 g_list_free(list); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4183 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4184 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4185 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4186 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4187 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4188 * Sets the bitmap used for a given static window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4189 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4190 * handle: Handle to the window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4191 * id: An ID to be used to specify the icon, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4192 * (pass 0 if you use the filename param) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4193 * filename: a path to a file (Bitmap on OS/2 or |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4194 * Windows and a pixmap on Unix, pass |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4195 * NULL if you use the id param) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4196 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4197 void dw_window_set_bitmap(HWND handle, unsigned long id, char *filename) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4198 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4199 GdkPixbuf *tmp = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4200 int found_ext = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4201 int i; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4202 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4203 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4204 if(!id && !filename) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4205 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4206 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4207 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4208 if(id) |
976
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
4209 tmp = _find_pixbuf((HICN)id, NULL, NULL); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4210 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4211 { |
1258
3df86772b625
Updated the list of supported image formats for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1245
diff
changeset
|
4212 char *file = alloca(strlen(filename) + 6); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4213 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4214 if (!file) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4215 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4216 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4217 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4218 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4219 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4220 strcpy(file, filename); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4221 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4222 /* check if we can read from this file (it exists and read permission) */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4223 if ( access(file, 04 ) != 0 ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4224 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4225 /* Try with various extentions */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4226 for ( i = 0; i < NUM_EXTS; i++ ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4227 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4228 strcpy( file, filename ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4229 strcat( file, image_exts[i] ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4230 if ( access( file, 04 ) == 0 ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4231 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4232 found_ext = 1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4233 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4234 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4235 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4236 if ( found_ext == 0 ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4237 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4238 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4239 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4240 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4241 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4242 tmp = gdk_pixbuf_new_from_file(file, NULL ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4243 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4244 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4245 if (tmp) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4246 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4247 if ( GTK_IS_BUTTON(handle) ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4248 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4249 GtkWidget *image = gtk_button_get_image( GTK_BUTTON(handle) ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4250 gtk_image_set_from_pixbuf(GTK_IMAGE(image), tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4251 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4252 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4253 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4254 gtk_image_set_from_pixbuf(GTK_IMAGE(handle), tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4255 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4256 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4257 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4258 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4259 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4260 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4261 * Sets the bitmap used for a given static window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4262 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4263 * handle: Handle to the window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4264 * id: An ID to be used to specify the icon, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4265 * (pass 0 if you use the filename param) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4266 * data: the image data |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4267 * Bitmap on Windows and a pixmap on Unix, pass |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4268 * NULL if you use the id param) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4269 * len: length of data |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4270 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4271 void dw_window_set_bitmap_from_data(HWND handle, unsigned long id, char *data, int len) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4272 { |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
4273 GdkPixbuf *tmp = NULL; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4274 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4275 char *file; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4276 FILE *fp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4277 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4278 if (!id && !data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4279 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4280 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4281 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4282 if (id) |
976
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
4283 tmp = _find_pixbuf((HICN)id, NULL, NULL); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4284 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4285 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4286 if (!data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4287 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4288 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4289 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4290 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4291 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4292 * A real hack; create a temporary file and write the contents |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4293 * of the data to the file |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4294 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4295 file = tmpnam( NULL ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4296 fp = fopen( file, "wb" ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4297 if ( fp ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4298 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4299 fwrite( data, len, 1, fp ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4300 fclose( fp ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4301 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4302 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4303 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4304 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4305 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4306 } |
1097
8e9db23a8c31
Fixed icons from data by merging tmp and pixbuf together in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1096
diff
changeset
|
4307 tmp = gdk_pixbuf_new_from_file(file, NULL ); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4308 /* remove our temporary file */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4309 unlink (file ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4310 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4311 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4312 if(tmp) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4313 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4314 gtk_image_set_from_pixbuf(GTK_IMAGE(handle), tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4315 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4316 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4317 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4318 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4319 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4320 * Sets the text used for a given window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4321 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4322 * handle: Handle to the window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4323 * text: The text associated with a given window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4324 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4325 void dw_window_set_text(HWND handle, char *text) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4326 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4327 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4328 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4329 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4330 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4331 if((tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi_title"))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4332 handle = tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4333 if(GTK_IS_ENTRY(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4334 gtk_entry_set_text(GTK_ENTRY(handle), text); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4335 else if(GTK_IS_COMBO_BOX(handle)) |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
4336 gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(handle))), text); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4337 else if(GTK_IS_LABEL(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4338 gtk_label_set_text(GTK_LABEL(handle), text); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4339 else if(GTK_IS_BUTTON(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4340 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4341 gtk_button_set_label(GTK_BUTTON(handle), text); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4342 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4343 else if(gtk_widget_is_toplevel(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4344 gtk_window_set_title(GTK_WINDOW(handle), text); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4345 else if (GTK_IS_FRAME(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4346 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4347 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4348 * This is a groupbox or status_text |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4349 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4350 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_label"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4351 if ( tmp && GTK_IS_LABEL(tmp) ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4352 gtk_label_set_text(GTK_LABEL(tmp), text); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4353 else /* assume groupbox */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4354 gtk_frame_set_label(GTK_FRAME(handle), text && *text ? text : NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4355 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4356 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4357 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4358 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4359 /* |
1389
0512fbb08abf
Added dw_window_set_tooltip() for adding bubble help to most controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1388
diff
changeset
|
4360 * Sets the text used for a given window's floating bubble help. |
0512fbb08abf
Added dw_window_set_tooltip() for adding bubble help to most controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1388
diff
changeset
|
4361 * Parameters: |
0512fbb08abf
Added dw_window_set_tooltip() for adding bubble help to most controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1388
diff
changeset
|
4362 * handle: Handle to the window (widget). |
0512fbb08abf
Added dw_window_set_tooltip() for adding bubble help to most controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1388
diff
changeset
|
4363 * bubbletext: The text in the floating bubble tooltip. |
0512fbb08abf
Added dw_window_set_tooltip() for adding bubble help to most controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1388
diff
changeset
|
4364 */ |
0512fbb08abf
Added dw_window_set_tooltip() for adding bubble help to most controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1388
diff
changeset
|
4365 void API dw_window_set_tooltip(HWND handle, char *bubbletext) |
0512fbb08abf
Added dw_window_set_tooltip() for adding bubble help to most controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1388
diff
changeset
|
4366 { |
0512fbb08abf
Added dw_window_set_tooltip() for adding bubble help to most controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1388
diff
changeset
|
4367 int _locked_by_me = FALSE; |
0512fbb08abf
Added dw_window_set_tooltip() for adding bubble help to most controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1388
diff
changeset
|
4368 |
0512fbb08abf
Added dw_window_set_tooltip() for adding bubble help to most controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1388
diff
changeset
|
4369 DW_MUTEX_LOCK; |
1400
ccd383e11ff8
Allow removing of tooltips by passing NULL or "" and prevent double tooltips on some platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1390
diff
changeset
|
4370 if(bubbletext && *bubbletext) |
ccd383e11ff8
Allow removing of tooltips by passing NULL or "" and prevent double tooltips on some platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1390
diff
changeset
|
4371 gtk_widget_set_tooltip_text(handle, bubbletext); |
ccd383e11ff8
Allow removing of tooltips by passing NULL or "" and prevent double tooltips on some platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1390
diff
changeset
|
4372 else |
ccd383e11ff8
Allow removing of tooltips by passing NULL or "" and prevent double tooltips on some platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1390
diff
changeset
|
4373 gtk_widget_set_has_tooltip(handle, FALSE); |
1389
0512fbb08abf
Added dw_window_set_tooltip() for adding bubble help to most controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1388
diff
changeset
|
4374 DW_MUTEX_UNLOCK; |
0512fbb08abf
Added dw_window_set_tooltip() for adding bubble help to most controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1388
diff
changeset
|
4375 } |
0512fbb08abf
Added dw_window_set_tooltip() for adding bubble help to most controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1388
diff
changeset
|
4376 |
0512fbb08abf
Added dw_window_set_tooltip() for adding bubble help to most controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1388
diff
changeset
|
4377 /* |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4378 * Gets the text used for a given window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4379 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4380 * handle: Handle to the window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4381 * Returns: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4382 * text: The text associsated with a given window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4383 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4384 char *dw_window_get_text(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4385 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4386 const char *possible = ""; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4387 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4388 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4389 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4390 if(GTK_IS_ENTRY(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4391 possible = gtk_entry_get_text(GTK_ENTRY(handle)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4392 else if(GTK_IS_COMBO_BOX(handle)) |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
4393 possible = gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(handle)))); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4394 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4395 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4396 return strdup(possible); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4397 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4398 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4399 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4400 * Disables given window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4401 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4402 * handle: Handle to the window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4403 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4404 void dw_window_disable(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4405 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4406 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4407 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4408 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4409 gtk_widget_set_sensitive(handle, FALSE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4410 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4411 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4412 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4413 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4414 * Enables given window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4415 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4416 * handle: Handle to the window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4417 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4418 void dw_window_enable(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4419 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4420 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4421 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4422 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4423 gtk_widget_set_sensitive(handle, TRUE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4424 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4425 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4426 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4427 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4428 * Gets the child window handle with specified ID. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4429 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4430 * handle: Handle to the parent window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4431 * id: Integer ID of the child. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4432 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4433 HWND API dw_window_from_id(HWND handle, int id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4434 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4435 GList *orig = NULL, *list = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4436 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4437 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4438 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4439 if(handle && GTK_IS_CONTAINER(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4440 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4441 orig = list = gtk_container_get_children(GTK_CONTAINER(handle)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4442 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4443 while(list) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4444 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4445 if(GTK_IS_WIDGET(list->data)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4446 { |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
4447 if(id == GPOINTER_TO_INT(g_object_get_data(G_OBJECT(list->data), "_dw_id"))) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4448 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4449 HWND ret = (HWND)list->data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4450 g_list_free(orig); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4451 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4452 return ret; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4453 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4454 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4455 list = list->next; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4456 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4457 if(orig) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4458 g_list_free(orig); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4459 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4460 return 0L; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4461 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4462 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4463 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4464 * Adds text to an MLE box and returns the current point. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4465 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4466 * handle: Handle to the MLE to be queried. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4467 * buffer: Text buffer to be imported. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4468 * startpoint: Point to start entering text. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4469 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4470 unsigned int dw_mle_import(HWND handle, char *buffer, int startpoint) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4471 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4472 unsigned int tmppoint = startpoint; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4473 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4474 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4475 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4476 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4477 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4478 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4479 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4480 if(tmp && GTK_IS_TEXT_VIEW(tmp)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4481 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4482 GtkTextBuffer *tbuffer; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4483 GtkTextIter iter; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4484 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4485 tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tmp)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4486 gtk_text_buffer_get_iter_at_offset(tbuffer, &iter, startpoint); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4487 gtk_text_buffer_place_cursor(tbuffer, &iter); |
994
f1c7b03f944d
Removed carriage return stripping from GTK3, it is not needed.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
986
diff
changeset
|
4488 gtk_text_buffer_insert_at_cursor(tbuffer, buffer, -1); |
f1c7b03f944d
Removed carriage return stripping from GTK3, it is not needed.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
986
diff
changeset
|
4489 tmppoint = (startpoint > -1 ? startpoint : 0) + strlen(buffer); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4490 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4491 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4492 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4493 return tmppoint; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4494 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4495 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4496 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4497 * Grabs text from an MLE box. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4498 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4499 * handle: Handle to the MLE to be queried. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4500 * buffer: Text buffer to be exported. MUST allow for trailing nul character. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4501 * startpoint: Point to start grabbing text. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4502 * length: Amount of text to be grabbed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4503 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4504 void dw_mle_export(HWND handle, char *buffer, int startpoint, int length) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4505 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4506 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4507 gchar *text; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4508 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4509 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4510 /* force the return value to nul in case the following tests fail */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4511 if(buffer) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4512 buffer[0] = '\0'; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4513 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4514 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4515 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4516 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4517 if(tmp && GTK_IS_TEXT_VIEW(tmp)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4518 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4519 GtkTextBuffer *tbuffer; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4520 GtkTextIter start, end; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4521 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4522 tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tmp)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4523 gtk_text_buffer_get_iter_at_offset(tbuffer, &start, startpoint); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4524 gtk_text_buffer_get_iter_at_offset(tbuffer, &end, startpoint + length); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4525 text = gtk_text_iter_get_text(&start, &end); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4526 if(text) /* Should this get freed? */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4527 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4528 if(buffer) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4529 strcpy(buffer, text); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4530 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4531 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4532 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4533 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4534 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4535 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4536 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4537 * Obtains information about an MLE box. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4538 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4539 * handle: Handle to the MLE to be queried. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4540 * bytes: A pointer to a variable to return the total bytes. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4541 * lines: A pointer to a variable to return the number of lines. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4542 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4543 void dw_mle_get_size(HWND handle, unsigned long *bytes, unsigned long *lines) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4544 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4545 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4546 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4547 if(bytes) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4548 *bytes = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4549 if(lines) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4550 *lines = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4551 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4552 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4553 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4554 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4555 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4556 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4557 if(tmp && GTK_IS_TEXT_VIEW(tmp)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4558 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4559 GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(tmp)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4560 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4561 if(bytes) |
998
f019c5e8511f
Fixed GTK reporting wrong character and line counts. 1000 revisions!!!
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
994
diff
changeset
|
4562 *bytes = gtk_text_buffer_get_char_count(buffer); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4563 if(lines) |
998
f019c5e8511f
Fixed GTK reporting wrong character and line counts. 1000 revisions!!!
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
994
diff
changeset
|
4564 *lines = gtk_text_buffer_get_line_count(buffer); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4565 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4566 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4567 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4568 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4569 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4570 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4571 * Deletes text from an MLE box. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4572 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4573 * handle: Handle to the MLE to be deleted from. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4574 * startpoint: Point to start deleting text. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4575 * length: Amount of text to be deleted. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4576 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4577 void dw_mle_delete(HWND handle, int startpoint, int length) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4578 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4579 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4580 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4581 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4582 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4583 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4584 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4585 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4586 if(tmp && GTK_IS_TEXT_VIEW(tmp)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4587 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4588 GtkTextBuffer *tbuffer; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4589 GtkTextIter start, end; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4590 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4591 tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tmp)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4592 gtk_text_buffer_get_iter_at_offset(tbuffer, &start, startpoint); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4593 gtk_text_buffer_get_iter_at_offset(tbuffer, &end, startpoint + length); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4594 gtk_text_buffer_delete(tbuffer, &start, &end); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4595 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4596 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4597 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4598 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4599 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4600 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4601 * Clears all text from an MLE box. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4602 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4603 * handle: Handle to the MLE to be cleared. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4604 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4605 void dw_mle_clear(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4606 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4607 int length, _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4608 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4609 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4610 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4611 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4612 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4613 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4614 if(tmp && GTK_IS_TEXT_VIEW(tmp)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4615 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4616 GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(tmp)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4617 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4618 length = -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4619 gtk_text_buffer_set_text(buffer, "", length); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4620 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4621 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4622 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4623 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4624 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4625 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4626 * Sets the visible line of an MLE box. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4627 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4628 * handle: Handle to the MLE. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4629 * line: Line to be visible. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4630 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4631 void dw_mle_set_visible(HWND handle, int line) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4632 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4633 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4634 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4635 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4636 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4637 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4638 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4639 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4640 if(tmp && GTK_IS_TEXT_VIEW(tmp)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4641 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4642 GtkTextBuffer *tbuffer; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4643 GtkTextIter iter; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4644 GtkTextMark *mark = (GtkTextMark *)g_object_get_data(G_OBJECT(handle), "_dw_mark"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4645 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4646 tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tmp)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4647 gtk_text_buffer_get_iter_at_offset(tbuffer, &iter, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4648 gtk_text_iter_set_line(&iter, line); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4649 if(!mark) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4650 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4651 mark = gtk_text_buffer_create_mark(tbuffer, NULL, &iter, FALSE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4652 g_object_set_data(G_OBJECT(handle), "_dw_mark", (gpointer)mark); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4653 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4654 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4655 gtk_text_buffer_move_mark(tbuffer, mark, &iter); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4656 gtk_text_view_scroll_to_mark(GTK_TEXT_VIEW(tmp), mark, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4657 0, FALSE, 0, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4658 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4659 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4660 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4661 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4662 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4663 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4664 * Sets the editablity of an MLE box. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4665 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4666 * handle: Handle to the MLE. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4667 * state: TRUE if it can be edited, FALSE for readonly. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4668 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4669 void dw_mle_set_editable(HWND handle, int state) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4670 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4671 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4672 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4673 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4674 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4675 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4676 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4677 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4678 if(tmp && GTK_IS_TEXT_VIEW(tmp)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4679 gtk_text_view_set_editable(GTK_TEXT_VIEW(tmp), state); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4680 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4681 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4682 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4683 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4684 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4685 * Sets the word wrap state of an MLE box. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4686 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4687 * handle: Handle to the MLE. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4688 * state: TRUE if it wraps, FALSE if it doesn't. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4689 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4690 void dw_mle_set_word_wrap(HWND handle, int state) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4691 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4692 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4693 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4694 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4695 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4696 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4697 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4698 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4699 if(tmp && GTK_IS_TEXT_VIEW(tmp)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4700 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(tmp), GTK_WRAP_WORD); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4701 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4702 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4703 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4704 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4705 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4706 * Sets the current cursor position of an MLE box. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4707 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4708 * handle: Handle to the MLE to be positioned. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4709 * point: Point to position cursor. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4710 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4711 void dw_mle_set_cursor(HWND handle, int point) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4712 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4713 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4714 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4715 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4716 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4717 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4718 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4719 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4720 if(tmp && GTK_IS_TEXT_VIEW(tmp)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4721 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4722 GtkTextBuffer *tbuffer; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4723 GtkTextIter iter; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4724 GtkTextMark *mark = (GtkTextMark *)g_object_get_data(G_OBJECT(handle), "_dw_mark"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4725 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4726 tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tmp)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4727 gtk_text_buffer_get_iter_at_offset(tbuffer, &iter, point); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4728 if(!mark) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4729 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4730 mark = gtk_text_buffer_create_mark(tbuffer, NULL, &iter, FALSE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4731 g_object_set_data(G_OBJECT(handle), "_dw_mark", (gpointer)mark); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4732 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4733 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4734 gtk_text_buffer_move_mark(tbuffer, mark, &iter); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4735 gtk_text_buffer_place_cursor(tbuffer, &iter); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4736 gtk_text_view_scroll_to_mark(GTK_TEXT_VIEW(tmp), mark, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4737 0, FALSE, 0, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4738 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4739 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4740 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4741 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4742 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4743 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4744 * Finds text in an MLE box. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4745 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4746 * handle: Handle to the MLE to be cleared. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4747 * text: Text to search for. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4748 * point: Start point of search. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4749 * flags: Search specific flags. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4750 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4751 int dw_mle_search(HWND handle, char *text, int point, unsigned long flags) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4752 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4753 int _locked_by_me = FALSE, retval = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4754 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4755 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4756 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4757 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4758 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4759 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4760 if(tmp && GTK_IS_TEXT_VIEW(tmp)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4761 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4762 GtkTextBuffer *tbuffer; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4763 GtkTextIter iter, found; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4764 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4765 tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tmp)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4766 gtk_text_buffer_get_iter_at_offset(tbuffer, &iter, point); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4767 gtk_text_iter_forward_search(&iter, text, GTK_TEXT_SEARCH_TEXT_ONLY, &found, NULL, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4768 retval = gtk_text_iter_get_offset(&found); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4769 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4770 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4771 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4772 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4773 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4774 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4775 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4776 * Stops redrawing of an MLE box. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4777 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4778 * handle: Handle to the MLE to freeze. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4779 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4780 void dw_mle_freeze(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4781 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4782 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4783 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4784 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4785 * Resumes redrawing of an MLE box. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4786 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4787 * handle: Handle to the MLE to thaw. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4788 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4789 void dw_mle_thaw(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4790 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4791 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4792 |
1190
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4793 /* Internal function to update the progress bar |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4794 * while in an indeterminate state. |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4795 */ |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4796 gboolean _dw_update_progress_bar(gpointer data) |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4797 { |
1191
40500dabb112
Compile fix and fix for returning wrong value from the timeout function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1190
diff
changeset
|
4798 if(g_object_get_data(G_OBJECT(data), "_dw_alive")) |
1190
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4799 { |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4800 gtk_progress_bar_pulse(GTK_PROGRESS_BAR(data)); |
1191
40500dabb112
Compile fix and fix for returning wrong value from the timeout function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1190
diff
changeset
|
4801 return TRUE; |
40500dabb112
Compile fix and fix for returning wrong value from the timeout function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1190
diff
changeset
|
4802 } |
40500dabb112
Compile fix and fix for returning wrong value from the timeout function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1190
diff
changeset
|
4803 return FALSE; |
1190
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4804 } |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4805 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4806 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4807 * Sets the percent bar position. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4808 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4809 * handle: Handle to the percent bar to be set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4810 * position: Position of the percent bar withing the range. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4811 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4812 void dw_percent_set_pos(HWND handle, unsigned int position) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4813 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4814 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4815 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4816 DW_MUTEX_LOCK; |
1190
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4817 if(position == DW_PERCENT_INDETERMINATE) |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4818 { |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4819 /* Check if we are indeterminate already */ |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4820 if(!g_object_get_data(G_OBJECT(handle), "_dw_alive")) |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4821 { |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4822 /* If not become indeterminate... and start a timer to continue */ |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4823 gtk_progress_bar_pulse(GTK_PROGRESS_BAR(handle)); |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4824 g_object_set_data(G_OBJECT(handle), "_dw_alive", GINT_TO_POINTER(1)); |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4825 g_timeout_add(100, (GSourceFunc)_dw_update_progress_bar, (gpointer)handle); |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4826 } |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4827 } |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4828 else |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4829 { |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4830 /* Cancel the existing timer if one is there */ |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4831 g_object_set_data(G_OBJECT(handle), "_dw_alive", NULL); |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4832 /* Set the position like normal */ |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4833 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(handle), (gfloat)position/100); |
76262040ed5f
Added DW_PERCENT_INDETERMINATE which can be passed to dw_percent_set_pos() to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1185
diff
changeset
|
4834 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4835 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4836 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4837 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4838 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4839 * Returns the position of the slider. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4840 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4841 * handle: Handle to the slider to be queried. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4842 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4843 unsigned int dw_slider_get_pos(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4844 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4845 int val = 0, _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4846 GtkAdjustment *adjustment; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4847 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4848 if(!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4849 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4850 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4851 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4852 adjustment = (GtkAdjustment *)g_object_get_data(G_OBJECT(handle), "_dw_adjustment"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4853 if(adjustment) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4854 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4855 int max = _round_value(gtk_adjustment_get_upper(adjustment)) - 1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4856 int thisval = _round_value(gtk_adjustment_get_value(adjustment)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4857 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4858 if(GTK_IS_VSCALE(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4859 val = max - thisval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4860 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4861 val = thisval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4862 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4863 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4864 return val; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4865 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4866 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4867 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4868 * Sets the slider position. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4869 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4870 * handle: Handle to the slider to be set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4871 * position: Position of the slider withing the range. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4872 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4873 void dw_slider_set_pos(HWND handle, unsigned int position) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4874 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4875 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4876 GtkAdjustment *adjustment; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4877 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4878 if(!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4879 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4880 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4881 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4882 adjustment = (GtkAdjustment *)g_object_get_data(G_OBJECT(handle), "_dw_adjustment"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4883 if(adjustment) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4884 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4885 int max = _round_value(gtk_adjustment_get_upper(adjustment)) - 1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4886 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4887 if(GTK_IS_VSCALE(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4888 gtk_adjustment_set_value(adjustment, (gfloat)(max - position)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4889 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4890 gtk_adjustment_set_value(adjustment, (gfloat)position); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4891 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4892 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4893 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4894 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4895 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4896 * Returns the position of the scrollbar. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4897 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4898 * handle: Handle to the scrollbar to be queried. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4899 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4900 unsigned int dw_scrollbar_get_pos(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4901 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4902 int val = 0, _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4903 GtkAdjustment *adjustment; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4904 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4905 if(!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4906 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4907 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4908 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4909 adjustment = (GtkAdjustment *)g_object_get_data(G_OBJECT(handle), "_dw_adjustment"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4910 if(adjustment) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4911 val = _round_value(gtk_adjustment_get_value(adjustment)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4912 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4913 return val; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4914 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4915 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4916 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4917 * Sets the scrollbar position. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4918 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4919 * handle: Handle to the scrollbar to be set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4920 * position: Position of the scrollbar withing the range. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4921 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4922 void dw_scrollbar_set_pos(HWND handle, unsigned int position) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4923 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4924 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4925 GtkAdjustment *adjustment; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4926 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4927 if(!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4928 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4929 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4930 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4931 adjustment = (GtkAdjustment *)g_object_get_data(G_OBJECT(handle), "_dw_adjustment"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4932 if(adjustment) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4933 gtk_adjustment_set_value(adjustment, (gfloat)position); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4934 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4935 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4936 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4937 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4938 * Sets the scrollbar range. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4939 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4940 * handle: Handle to the scrollbar to be set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4941 * range: Maximum range value. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4942 * visible: Visible area relative to the range. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4943 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4944 void API dw_scrollbar_set_range(HWND handle, unsigned int range, unsigned int visible) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4945 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4946 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4947 GtkAdjustment *adjustment; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4948 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4949 if(!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4950 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4951 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4952 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4953 adjustment = (GtkAdjustment *)g_object_get_data(G_OBJECT(handle), "_dw_adjustment"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4954 if(adjustment) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4955 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4956 gtk_adjustment_set_upper(adjustment, (gdouble)range); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4957 gtk_adjustment_set_page_increment(adjustment,(gdouble)visible); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4958 gtk_adjustment_set_page_size(adjustment, (gdouble)visible); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4959 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4960 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4961 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4962 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4963 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4964 * Sets the spinbutton value. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4965 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4966 * handle: Handle to the spinbutton to be set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4967 * position: Current value of the spinbutton. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4968 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4969 void dw_spinbutton_set_pos(HWND handle, long position) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4970 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4971 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4972 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4973 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4974 gtk_spin_button_set_value(GTK_SPIN_BUTTON(handle), (gfloat)position); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4975 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4976 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4977 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4978 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4979 * Sets the spinbutton limits. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4980 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4981 * handle: Handle to the spinbutton to be set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4982 * position: Current value of the spinbutton. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4983 * position: Current value of the spinbutton. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4984 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4985 void dw_spinbutton_set_limits(HWND handle, long upper, long lower) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4986 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4987 long curval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4988 GtkAdjustment *adj; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4989 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4990 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4991 curval = dw_spinbutton_get_pos(handle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4992 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4993 adj = (GtkAdjustment *)gtk_adjustment_new((gfloat)curval, (gfloat)lower, (gfloat)upper, 1.0, 5.0, 0.0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4994 gtk_spin_button_set_adjustment(GTK_SPIN_BUTTON(handle), adj); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4995 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4996 * Set our internal relationships between the adjustment and the spinbutton |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4997 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4998 g_object_set_data(G_OBJECT(handle), "_dw_adjustment", (gpointer)adj); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
4999 g_object_set_data(G_OBJECT(adj), "_dw_spinbutton", (gpointer)handle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5000 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5001 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5002 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5003 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5004 * Sets the entryfield character limit. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5005 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5006 * handle: Handle to the spinbutton to be set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5007 * limit: Number of characters the entryfield will take. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5008 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5009 void dw_entryfield_set_limit(HWND handle, ULONG limit) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5010 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5011 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5012 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5013 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5014 gtk_entry_set_max_length(GTK_ENTRY(handle), limit); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5015 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5016 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5017 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5018 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5019 * Returns the current value of the spinbutton. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5020 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5021 * handle: Handle to the spinbutton to be queried. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5022 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5023 long dw_spinbutton_get_pos(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5024 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5025 long retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5026 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5027 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5028 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5029 retval = (long)gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(handle)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5030 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5031 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5032 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5033 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5034 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5035 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5036 * Returns the state of the checkbox. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5037 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5038 * handle: Handle to the checkbox to be queried. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5039 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5040 int dw_checkbox_get(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5041 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5042 int retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5043 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5044 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5045 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5046 retval = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(handle)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5047 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5048 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5049 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5050 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5051 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5052 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5053 * Sets the state of the checkbox. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5054 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5055 * handle: Handle to the checkbox to be queried. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5056 * value: TRUE for checked, FALSE for unchecked. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5057 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5058 void dw_checkbox_set(HWND handle, int value) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5059 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5060 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5061 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5062 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5063 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(handle), value); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5064 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5065 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5066 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5067 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5068 * Inserts an item into a tree window (widget) after another item. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5069 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5070 * handle: Handle to the tree to be inserted. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5071 * item: Handle to the item to be positioned after. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5072 * title: The text title of the entry. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5073 * icon: Handle to coresponding icon. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5074 * parent: Parent handle or 0 if root. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5075 * itemdata: Item specific data. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5076 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5077 HTREEITEM dw_tree_insert_after(HWND handle, HTREEITEM item, char *title, HICN icon, HTREEITEM parent, void *itemdata) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5078 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5079 GtkWidget *tree; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5080 GtkTreeIter *iter; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5081 GtkTreeStore *store; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5082 GdkPixbuf *pixbuf; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5083 HTREEITEM retval = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5084 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5085 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5086 if(!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5087 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5088 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5089 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5090 if((tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user")) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5091 && GTK_IS_TREE_VIEW(tree) && |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5092 (store = (GtkTreeStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5093 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5094 iter = (GtkTreeIter *)malloc(sizeof(GtkTreeIter)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5095 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5096 pixbuf = _find_pixbuf(icon, NULL, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5097 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5098 gtk_tree_store_insert_after(store, iter, (GtkTreeIter *)parent, (GtkTreeIter *)item); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5099 gtk_tree_store_set (store, iter, 0, title, 1, pixbuf, 2, itemdata, 3, iter, -1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5100 retval = (HTREEITEM)iter; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5101 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5102 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5103 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5104 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5105 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5106 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5107 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5108 * Inserts an item into a tree window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5109 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5110 * handle: Handle to the tree to be inserted. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5111 * title: The text title of the entry. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5112 * icon: Handle to coresponding icon. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5113 * parent: Parent handle or 0 if root. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5114 * itemdata: Item specific data. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5115 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5116 HTREEITEM dw_tree_insert(HWND handle, char *title, HICN icon, HTREEITEM parent, void *itemdata) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5117 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5118 GtkWidget *tree; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5119 GtkTreeIter *iter; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5120 GtkTreeStore *store; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5121 GdkPixbuf *pixbuf; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5122 HTREEITEM retval = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5123 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5124 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5125 if(!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5126 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5127 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5128 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5129 if((tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user")) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5130 && GTK_IS_TREE_VIEW(tree) && |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5131 (store = (GtkTreeStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5132 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5133 iter = (GtkTreeIter *)malloc(sizeof(GtkTreeIter)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5134 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5135 pixbuf = _find_pixbuf(icon, NULL, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5136 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5137 gtk_tree_store_append (store, iter, (GtkTreeIter *)parent); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5138 gtk_tree_store_set (store, iter, 0, title, 1, pixbuf, 2, itemdata, 3, iter, -1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5139 retval = (HTREEITEM)iter; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5140 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5141 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5142 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5143 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5144 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5145 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5146 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5147 * Sets the text and icon of an item in a tree window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5148 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5149 * handle: Handle to the tree containing the item. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5150 * item: Handle of the item to be modified. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5151 * title: The text title of the entry. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5152 * icon: Handle to coresponding icon. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5153 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5154 void dw_tree_item_change(HWND handle, HTREEITEM item, char *title, HICN icon) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5155 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5156 GtkWidget *tree; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5157 GtkTreeStore *store; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5158 GdkPixbuf *pixbuf; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5159 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5160 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5161 if(!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5162 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5163 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5164 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5165 if((tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user")) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5166 && GTK_IS_TREE_VIEW(tree) && |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5167 (store = (GtkTreeStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5168 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5169 pixbuf = _find_pixbuf(icon, NULL, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5170 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5171 gtk_tree_store_set(store, (GtkTreeIter *)item, 0, title, 1, pixbuf, -1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5172 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5173 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5174 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5175 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5176 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5177 * Sets the item data of a tree item. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5178 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5179 * handle: Handle to the tree containing the item. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5180 * item: Handle of the item to be modified. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5181 * itemdata: User defined data to be associated with item. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5182 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5183 void dw_tree_item_set_data(HWND handle, HTREEITEM item, void *itemdata) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5184 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5185 GtkWidget *tree; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5186 GtkTreeStore *store; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5187 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5188 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5189 if(!handle || !item) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5190 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5191 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5192 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5193 if((tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user")) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5194 && GTK_IS_TREE_VIEW(tree) && |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5195 (store = (GtkTreeStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5196 gtk_tree_store_set(store, (GtkTreeIter *)item, 2, itemdata, -1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5197 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5198 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5199 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5200 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5201 * Gets the text an item in a tree window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5202 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5203 * handle: Handle to the tree containing the item. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5204 * item: Handle of the item to be modified. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5205 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5206 char * API dw_tree_get_title(HWND handle, HTREEITEM item) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5207 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5208 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5209 char *text = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5210 GtkWidget *tree; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5211 GtkTreeModel *store; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5212 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5213 if(!handle || !item) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5214 return text; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5215 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5216 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5217 tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5218 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5219 if(tree && GTK_IS_TREE_VIEW(tree) && |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5220 (store = (GtkTreeModel *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5221 gtk_tree_model_get(store, (GtkTreeIter *)item, 0, &text, -1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5222 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5223 return text; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5224 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5225 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5226 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5227 * Gets the text an item in a tree window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5228 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5229 * handle: Handle to the tree containing the item. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5230 * item: Handle of the item to be modified. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5231 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5232 HTREEITEM API dw_tree_get_parent(HWND handle, HTREEITEM item) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5233 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5234 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5235 HTREEITEM parent = (HTREEITEM)0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5236 GtkWidget *tree; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5237 GtkTreeModel *store; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5238 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5239 if(!handle || !item) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5240 return parent; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5241 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5242 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5243 tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5244 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5245 if(tree && GTK_IS_TREE_VIEW(tree) && |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5246 (store = (GtkTreeModel *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5247 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5248 GtkTreeIter *p = malloc(sizeof(GtkTreeIter)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5249 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5250 if(gtk_tree_model_iter_parent(store, p, (GtkTreeIter *)item)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5251 parent = p; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5252 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5253 free(p); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5254 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5255 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5256 return parent; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5257 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5258 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5259 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5260 * Gets the item data of a tree item. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5261 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5262 * handle: Handle to the tree containing the item. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5263 * item: Handle of the item to be modified. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5264 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5265 void *dw_tree_item_get_data(HWND handle, HTREEITEM item) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5266 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5267 void *ret = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5268 GtkWidget *tree; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5269 GtkTreeModel *store; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5270 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5271 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5272 if(!handle || !item) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5273 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5274 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5275 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5276 if((tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user")) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5277 && GTK_IS_TREE_VIEW(tree) && |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5278 (store = (GtkTreeModel *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5279 gtk_tree_model_get(store, (GtkTreeIter *)item, 2, &ret, -1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5280 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5281 return ret; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5282 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5283 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5284 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5285 * Sets this item as the active selection. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5286 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5287 * handle: Handle to the tree window (widget) to be selected. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5288 * item: Handle to the item to be selected. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5289 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5290 void dw_tree_item_select(HWND handle, HTREEITEM item) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5291 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5292 GtkWidget *tree; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5293 GtkTreeStore *store; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5294 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5295 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5296 if(!handle || !item) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5297 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5298 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5299 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5300 if((tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user")) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5301 && GTK_IS_TREE_VIEW(tree) && |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5302 (store = (GtkTreeStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5303 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5304 GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), (GtkTreeIter *)item); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5305 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5306 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5307 gtk_tree_view_set_cursor(GTK_TREE_VIEW(tree), path, NULL, FALSE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5308 gtk_tree_selection_select_iter(sel, (GtkTreeIter *)item); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5309 gtk_tree_path_free(path); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5310 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5311 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5312 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5313 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5314 static void _dw_recursive_free(GtkTreeModel *store, GtkTreeIter parent) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5315 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5316 void *data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5317 GtkTreeIter iter; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5318 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5319 gtk_tree_model_get(store, &parent, 3, &data, -1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5320 if(data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5321 free(data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5322 gtk_tree_store_set(GTK_TREE_STORE(store), &parent, 3, NULL, -1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5323 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5324 if(gtk_tree_model_iter_children(store, &iter, &parent)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5325 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5326 do { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5327 _dw_recursive_free(GTK_TREE_MODEL(store), iter); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5328 } while(gtk_tree_model_iter_next(GTK_TREE_MODEL(store), &iter)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5329 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5330 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5331 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5332 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5333 * Removes all nodes from a tree. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5334 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5335 * handle: Handle to the window (widget) to be cleared. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5336 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5337 void dw_tree_clear(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5338 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5339 GtkWidget *tree; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5340 GtkTreeStore *store; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5341 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5342 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5343 if(!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5344 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5345 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5346 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5347 if((tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user")) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5348 && GTK_IS_TREE_VIEW(tree) && |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5349 (store = (GtkTreeStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5350 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5351 GtkTreeIter iter; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5352 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5353 if(gtk_tree_model_get_iter_first(GTK_TREE_MODEL(store), &iter)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5354 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5355 do { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5356 _dw_recursive_free(GTK_TREE_MODEL(store), iter); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5357 } while(gtk_tree_model_iter_next(GTK_TREE_MODEL(store), &iter)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5358 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5359 gtk_tree_store_clear(store); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5360 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5361 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5362 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5363 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5364 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5365 * Expands a node on a tree. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5366 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5367 * handle: Handle to the tree window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5368 * item: Handle to node to be expanded. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5369 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5370 void dw_tree_item_expand(HWND handle, HTREEITEM item) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5371 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5372 GtkWidget *tree; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5373 GtkTreeStore *store; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5374 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5375 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5376 if(!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5377 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5378 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5379 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5380 if((tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user")) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5381 && GTK_IS_TREE_VIEW(tree) && |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5382 (store = (GtkTreeStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5383 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5384 GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), (GtkTreeIter *)item); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5385 gtk_tree_view_expand_row(GTK_TREE_VIEW(tree), path, FALSE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5386 gtk_tree_path_free(path); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5387 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5388 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5389 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5390 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5391 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5392 * Collapses a node on a tree. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5393 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5394 * handle: Handle to the tree window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5395 * item: Handle to node to be collapsed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5396 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5397 void dw_tree_item_collapse(HWND handle, HTREEITEM item) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5398 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5399 GtkWidget *tree; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5400 GtkTreeStore *store; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5401 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5402 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5403 if(!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5404 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5405 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5406 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5407 if((tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user")) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5408 && GTK_IS_TREE_VIEW(tree) && |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5409 (store = (GtkTreeStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5410 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5411 GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), (GtkTreeIter *)item); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5412 gtk_tree_view_collapse_row(GTK_TREE_VIEW(tree), path); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5413 gtk_tree_path_free(path); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5414 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5415 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5416 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5417 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5418 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5419 * Removes a node from a tree. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5420 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5421 * handle: Handle to the window (widget) to be cleared. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5422 * item: Handle to node to be deleted. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5423 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5424 void dw_tree_item_delete(HWND handle, HTREEITEM item) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5425 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5426 GtkWidget *tree; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5427 GtkTreeStore *store; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5428 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5429 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5430 if(!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5431 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5432 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5433 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5434 if((tree = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user")) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5435 && GTK_IS_TREE_VIEW(tree) && |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5436 (store = (GtkTreeStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5437 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5438 gtk_tree_store_remove(store, (GtkTreeIter *)item); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5439 free(item); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5440 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5441 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5442 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5443 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5444 static int _dw_container_setup(HWND handle, unsigned long *flags, char **titles, int count, int separator, int extra) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5445 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5446 int z; |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
5447 char numbuf[21]; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5448 GtkWidget *tree; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5449 GtkListStore *store; |
784
fb21fdd6b839
Slight code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
783
diff
changeset
|
5450 GtkTreeViewColumn *col; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5451 GtkCellRenderer *rend; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5452 GtkTreeSelection *sel; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5453 int _locked_by_me = FALSE; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
5454 GType *array = calloc(count + 2, sizeof(GType)); |
780
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
5455 |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
5456 DW_MUTEX_LOCK; |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
5457 /* Save some of the info so it is easily accessible */ |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
5458 g_object_set_data(G_OBJECT(handle), "_dw_cont_columns", GINT_TO_POINTER(count)); |
781
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5459 g_object_set_data(G_OBJECT(handle), "_dw_cont_extra", GINT_TO_POINTER(extra)); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
5460 |
780
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
5461 /* First param is row title/data */ |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
5462 array[0] = G_TYPE_POINTER; |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5463 array[1] = G_TYPE_POINTER; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5464 /* First loop... create array to create the store */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5465 for(z=0;z<count;z++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5466 { |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5467 if(z == 0 && flags[z] & DW_CFA_STRINGANDICON) |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5468 { |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5469 array[1] = GDK_TYPE_PIXBUF; |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5470 array[2] = G_TYPE_STRING; |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5471 } |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5472 else if(flags[z] & DW_CFA_BITMAPORICON) |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5473 { |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5474 array[z+2] = GDK_TYPE_PIXBUF; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5475 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5476 else if(flags[z] & DW_CFA_STRING) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5477 { |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5478 array[z+2] = G_TYPE_STRING; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5479 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5480 else if(flags[z] & DW_CFA_ULONG) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5481 { |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5482 array[z+2] = G_TYPE_ULONG; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5483 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5484 else if(flags[z] & DW_CFA_TIME) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5485 { |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5486 array[z+2] = G_TYPE_STRING; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5487 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5488 else if(flags[z] & DW_CFA_DATE) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5489 { |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5490 array[z+2] = G_TYPE_STRING; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5491 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5492 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5493 /* Create the store and then the tree */ |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5494 store = gtk_list_store_newv(count+2, array); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5495 tree = _tree_setup(handle, GTK_TREE_MODEL(store)); |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
5496 g_object_set_data(G_OBJECT(tree), "_dw_tree_type", GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5497 /* Second loop... create the columns */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5498 for(z=0;z<count;z++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5499 { |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
5500 snprintf(numbuf, 20, "_dw_cont_col%d", z); |
781
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5501 g_object_set_data(G_OBJECT(tree), numbuf, GINT_TO_POINTER(flags[z])); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5502 col = gtk_tree_view_column_new(); |
884
0f99520041c4
Implemented container column alignment on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
883
diff
changeset
|
5503 rend = NULL; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
5504 |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5505 if(z == 0 && flags[z] & DW_CFA_STRINGANDICON) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5506 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5507 rend = gtk_cell_renderer_pixbuf_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5508 gtk_tree_view_column_pack_start(col, rend, FALSE); |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5509 gtk_tree_view_column_add_attribute(col, rend, "pixbuf", 1); |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5510 rend = gtk_cell_renderer_text_new(); |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5511 gtk_tree_view_column_pack_start(col, rend, TRUE); |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5512 gtk_tree_view_column_add_attribute(col, rend, "text", 2); |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5513 } |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5514 else if(flags[z] & DW_CFA_BITMAPORICON) |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5515 { |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5516 rend = gtk_cell_renderer_pixbuf_new(); |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5517 gtk_tree_view_column_pack_start(col, rend, FALSE); |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5518 gtk_tree_view_column_add_attribute(col, rend, "pixbuf", z+2); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5519 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5520 else if(flags[z] & DW_CFA_STRING) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5521 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5522 rend = gtk_cell_renderer_text_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5523 gtk_tree_view_column_pack_start(col, rend, TRUE); |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5524 gtk_tree_view_column_add_attribute(col, rend, "text", z+2); |
784
fb21fdd6b839
Slight code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
783
diff
changeset
|
5525 gtk_tree_view_column_set_resizable(col, TRUE); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5526 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5527 else if(flags[z] & DW_CFA_ULONG) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5528 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5529 rend = gtk_cell_renderer_text_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5530 gtk_tree_view_column_pack_start(col, rend, TRUE); |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5531 gtk_tree_view_column_add_attribute(col, rend, "text", z+2); |
784
fb21fdd6b839
Slight code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
783
diff
changeset
|
5532 gtk_tree_view_column_set_resizable(col, TRUE); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5533 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5534 else if(flags[z] & DW_CFA_TIME) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5535 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5536 rend = gtk_cell_renderer_text_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5537 gtk_tree_view_column_pack_start(col, rend, TRUE); |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5538 gtk_tree_view_column_add_attribute(col, rend, "text", z+2); |
784
fb21fdd6b839
Slight code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
783
diff
changeset
|
5539 gtk_tree_view_column_set_resizable(col, TRUE); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5540 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5541 else if(flags[z] & DW_CFA_DATE) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5542 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5543 rend = gtk_cell_renderer_text_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5544 gtk_tree_view_column_pack_start(col, rend, TRUE); |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5545 gtk_tree_view_column_add_attribute(col, rend, "text", z+2); |
784
fb21fdd6b839
Slight code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
783
diff
changeset
|
5546 gtk_tree_view_column_set_resizable(col, TRUE); |
780
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
5547 } |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5548 g_object_set_data(G_OBJECT(col), "_dw_column", GINT_TO_POINTER(z)); |
786
0e251c2f5d08
Implemented the column click event handler...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
785
diff
changeset
|
5549 g_signal_connect(G_OBJECT(col), "clicked", G_CALLBACK(_column_click_event), (gpointer)tree); |
780
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
5550 gtk_tree_view_column_set_title(col, titles[z]); |
884
0f99520041c4
Implemented container column alignment on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
883
diff
changeset
|
5551 if(flags[z] & DW_CFA_RIGHT) |
0f99520041c4
Implemented container column alignment on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
883
diff
changeset
|
5552 { |
0f99520041c4
Implemented container column alignment on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
883
diff
changeset
|
5553 gtk_tree_view_column_set_alignment(col, 1.0); |
0f99520041c4
Implemented container column alignment on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
883
diff
changeset
|
5554 if(rend) |
0f99520041c4
Implemented container column alignment on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
883
diff
changeset
|
5555 gtk_cell_renderer_set_alignment(rend, 1.0, 0.5); |
0f99520041c4
Implemented container column alignment on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
883
diff
changeset
|
5556 } |
0f99520041c4
Implemented container column alignment on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
883
diff
changeset
|
5557 else if(flags[z] & DW_CFA_CENTER) |
0f99520041c4
Implemented container column alignment on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
883
diff
changeset
|
5558 { |
0f99520041c4
Implemented container column alignment on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
883
diff
changeset
|
5559 gtk_tree_view_column_set_alignment(col, 0.5); |
0f99520041c4
Implemented container column alignment on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
883
diff
changeset
|
5560 if(rend) |
0f99520041c4
Implemented container column alignment on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
883
diff
changeset
|
5561 gtk_cell_renderer_set_alignment(rend, 0.5, 0.5); |
0f99520041c4
Implemented container column alignment on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
883
diff
changeset
|
5562 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5563 gtk_tree_view_append_column(GTK_TREE_VIEW (tree), col); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5564 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5565 /* Finish up */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5566 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), TRUE); |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
5567 gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(tree), TRUE); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
5568 gtk_tree_view_set_rubber_banding(GTK_TREE_VIEW(tree), TRUE); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5569 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5570 if(g_object_get_data(G_OBJECT(handle), "_dw_multi_sel")) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5571 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5572 gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5573 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5574 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5575 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5576 gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5577 } |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
5578 gtk_widget_show(tree); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5579 free(array); |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
5580 if(_DWDefaultFont) |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
5581 dw_window_set_font(handle, _DWDefaultFont); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5582 DW_MUTEX_UNLOCK; |
986
87dc0f5f96d0
Fix return type of dw_listbox_selected() to be "int" instead of "unsigned int" to allow -1 return.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
976
diff
changeset
|
5583 return DW_ERROR_NONE; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5584 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5585 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5586 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5587 * Sets up the container columns. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5588 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5589 * handle: Handle to the container to be configured. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5590 * flags: An array of unsigned longs with column flags. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5591 * titles: An array of strings with column text titles. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5592 * count: The number of columns (this should match the arrays). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5593 * separator: The column number that contains the main separator. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5594 * (this item may only be used in OS/2) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5595 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5596 int dw_container_setup(HWND handle, unsigned long *flags, char **titles, int count, int separator) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5597 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5598 return _dw_container_setup(handle, flags, titles, count, separator, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5599 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5600 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5601 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5602 * Sets up the filesystem columns, note: filesystem always has an icon/filename field. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5603 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5604 * handle: Handle to the container to be configured. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5605 * flags: An array of unsigned longs with column flags. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5606 * titles: An array of strings with column text titles. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5607 * count: The number of columns (this should match the arrays). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5608 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5609 int dw_filesystem_setup(HWND handle, unsigned long *flags, char **titles, int count) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5610 { |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5611 char **newtitles = malloc(sizeof(char *) * (count + 1)); |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5612 unsigned long *newflags = malloc(sizeof(unsigned long) * (count + 1)); |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5613 |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5614 newtitles[0] = "Filename"; |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5615 newflags[0] = DW_CFA_STRINGANDICON | DW_CFA_LEFT | DW_CFA_HORZSEPARATOR; |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5616 |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5617 memcpy(&newtitles[1], titles, sizeof(char *) * count); |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5618 memcpy(&newflags[1], flags, sizeof(unsigned long) * count); |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5619 |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5620 _dw_container_setup(handle, newflags, newtitles, count + 1, 1, 1); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5621 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5622 if ( newtitles) free(newtitles); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5623 if ( newflags ) free(newflags); |
986
87dc0f5f96d0
Fix return type of dw_listbox_selected() to be "int" instead of "unsigned int" to allow -1 return.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
976
diff
changeset
|
5624 return DW_ERROR_NONE; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5625 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5626 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5627 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5628 * Obtains an icon from a module (or header in GTK). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5629 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5630 * module: Handle to module (DLL) in OS/2 and Windows. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5631 * id: A unsigned long id int the resources on OS/2 and |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5632 * Windows, on GTK this is converted to a pointer |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5633 * to an embedded XPM. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5634 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5635 HICN dw_icon_load(unsigned long module, unsigned long id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5636 { |
976
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
5637 return (HICN)id; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5638 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5639 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5640 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5641 * Obtains an icon from a file. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5642 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5643 * filename: Name of the file, omit extention to have |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5644 * DW pick the appropriate file extension. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5645 * (ICO on OS/2 or Windows, XPM on Unix) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5646 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5647 HICN API dw_icon_load_from_file(char *filename) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5648 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5649 int _locked_by_me = FALSE; |
1258
3df86772b625
Updated the list of supported image formats for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1245
diff
changeset
|
5650 char *file = alloca(strlen(filename) + 6); |
976
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
5651 int i, found_ext = 0; |
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
5652 HICN ret = 0; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5653 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5654 if (!file) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5655 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5656 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5657 strcpy(file, filename); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5658 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5659 /* check if we can read from this file (it exists and read permission) */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5660 if (access(file, 04) != 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5661 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5662 /* Try with various extentions */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5663 for ( i = 0; i < NUM_EXTS; i++ ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5664 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5665 strcpy( file, filename ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5666 strcat( file, image_exts[i] ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5667 if ( access( file, 04 ) == 0 ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5668 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5669 found_ext = 1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5670 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5671 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5672 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5673 if ( found_ext == 0 ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5674 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5675 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5676 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5677 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5678 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5679 DW_MUTEX_LOCK; |
976
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
5680 ret = gdk_pixbuf_new_from_file(file, NULL); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5681 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5682 return ret; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5683 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5684 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5685 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5686 * Obtains an icon from data. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5687 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5688 * data: Source of data for image. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5689 * len: length of data |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5690 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5691 HICN API dw_icon_load_from_data(char *data, int len) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5692 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5693 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5694 char *file; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5695 FILE *fp; |
976
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
5696 HICN ret = 0; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5697 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5698 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5699 * A real hack; create a temporary file and write the contents |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5700 * of the data to the file |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5701 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5702 file = tmpnam( NULL ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5703 fp = fopen( file, "wb" ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5704 if ( fp ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5705 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5706 fwrite( data, len, 1, fp ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5707 fclose( fp ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5708 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5709 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5710 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5711 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5712 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5713 DW_MUTEX_LOCK; |
976
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
5714 ret = gdk_pixbuf_new_from_file(file, NULL); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5715 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5716 return ret; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5717 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5718 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5719 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5720 * Frees a loaded resource in OS/2 and Windows. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5721 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5722 * handle: Handle to icon returned by dw_icon_load(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5723 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5724 void dw_icon_free(HICN handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5725 { |
1106
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
5726 int iicon = GPOINTER_TO_INT(handle); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
5727 |
976
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
5728 if(iicon > 65535) |
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
5729 { |
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
5730 g_object_unref(handle); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5731 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5732 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5733 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5734 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5735 * Allocates memory used to populate a container. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5736 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5737 * handle: Handle to the container window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5738 * rowcount: The number of items to be populated. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5739 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5740 void *dw_container_alloc(HWND handle, int rowcount) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5741 { |
781
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5742 int z, prevrowcount = 0; |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5743 GtkWidget *cont; |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5744 GtkListStore *store = NULL; |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5745 int _locked_by_me = FALSE; |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5746 |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5747 DW_MUTEX_LOCK; |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5748 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
5749 |
781
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5750 /* Make sure it is the correct tree type */ |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5751 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5752 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(cont)); |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5753 |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5754 if(store) |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5755 { |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5756 GtkTreeIter iter; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
5757 |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
5758 prevrowcount = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cont), "_dw_rowcount")); |
781
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5759 |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5760 for(z=0;z<rowcount;z++) |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5761 { |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5762 gtk_list_store_append(store, &iter); |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5763 } |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5764 g_object_set_data(G_OBJECT(cont), "_dw_insertpos", GINT_TO_POINTER(prevrowcount)); |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5765 g_object_set_data(G_OBJECT(cont), "_dw_rowcount", GINT_TO_POINTER(rowcount + prevrowcount)); |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5766 } |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5767 DW_MUTEX_UNLOCK; |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5768 return (void *)cont; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5769 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5770 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5771 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5772 * Internal representation of dw_container_set_item() extracted so we can pass |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5773 * two data pointers; icon and text for dw_filesystem_set_item(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5774 */ |
781
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5775 void _dw_container_set_item(HWND handle, void *pointer, int column, int row, void *data) |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5776 { |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
5777 char numbuf[21], textbuffer[101]; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5778 int flag = 0; |
781
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5779 GtkWidget *cont; |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5780 GtkListStore *store = NULL; |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5781 int _locked_by_me = FALSE; |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5782 |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5783 DW_MUTEX_LOCK; |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5784 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
5785 |
781
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5786 /* Make sure it is the correct tree type */ |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5787 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5788 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(cont)); |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5789 |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5790 if(store) |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5791 { |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5792 GtkTreeIter iter; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
5793 |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
5794 snprintf(numbuf, 20, "_dw_cont_col%d", column); |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
5795 flag = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cont), numbuf)); |
781
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5796 if(pointer) |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5797 { |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
5798 row += GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cont), "_dw_insertpos")); |
781
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5799 } |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5800 |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5801 if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, row)) |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5802 { |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5803 if(flag & DW_CFA_STRINGANDICON) |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5804 { |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5805 void **thisdata = (void **)data; |
976
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
5806 HICN hicon = *((HICN *)thisdata[0]); |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5807 char *tmp = (char *)thisdata[1]; |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5808 GdkPixbuf *pixbuf = _find_pixbuf(hicon, NULL, NULL); |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5809 |
1287
57ce07fbec45
Allow passing 0 as icon handle to remove container icon on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1283
diff
changeset
|
5810 gtk_list_store_set(store, &iter, 1, pixbuf, -1); |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5811 gtk_list_store_set(store, &iter, 2, tmp, -1); |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5812 } |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5813 else if(flag & DW_CFA_BITMAPORICON) |
781
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5814 { |
976
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
5815 HICN hicon = *((HICN *)data); |
781
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5816 GdkPixbuf *pixbuf = _find_pixbuf(hicon, NULL, NULL); |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5817 |
1287
57ce07fbec45
Allow passing 0 as icon handle to remove container icon on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1283
diff
changeset
|
5818 gtk_list_store_set(store, &iter, column + 2, pixbuf, -1); |
781
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5819 } |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5820 else if(flag & DW_CFA_STRING) |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5821 { |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5822 char *tmp = *((char **)data); |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5823 gtk_list_store_set(store, &iter, column + 2, tmp, -1); |
781
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5824 } |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5825 else if(flag & DW_CFA_ULONG) |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5826 { |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5827 ULONG tmp = *((ULONG *)data); |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5828 |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5829 gtk_list_store_set(store, &iter, column + 2, tmp, -1); |
781
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5830 } |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5831 else if(flag & DW_CFA_DATE) |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5832 { |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5833 struct tm curtm; |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5834 CDATE cdate = *((CDATE *)data); |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5835 |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5836 memset( &curtm, 0, sizeof(curtm) ); |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5837 curtm.tm_mday = cdate.day; |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5838 curtm.tm_mon = cdate.month - 1; |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5839 curtm.tm_year = cdate.year - 1900; |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5840 |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5841 strftime(textbuffer, 100, "%x", &curtm); |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5842 |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5843 gtk_list_store_set(store, &iter, column + 2, textbuffer, -1); |
781
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5844 } |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5845 else if(flag & DW_CFA_TIME) |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5846 { |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5847 struct tm curtm; |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5848 CTIME ctime = *((CTIME *)data); |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5849 |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5850 memset( &curtm, 0, sizeof(curtm) ); |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5851 curtm.tm_hour = ctime.hours; |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5852 curtm.tm_min = ctime.minutes; |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5853 curtm.tm_sec = ctime.seconds; |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5854 |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5855 strftime(textbuffer, 100, "%X", &curtm); |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5856 |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5857 gtk_list_store_set(store, &iter, column + 2, textbuffer, -1); |
781
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5858 } |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5859 } |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5860 } |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5861 DW_MUTEX_UNLOCK; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5862 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5863 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5864 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5865 * Sets an item in specified row and column to the given data. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5866 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5867 * handle: Handle to the container window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5868 * pointer: Pointer to the allocated memory in dw_container_alloc(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5869 * column: Zero based column of data being set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5870 * row: Zero based row of data being set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5871 * data: Pointer to the data to be added. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5872 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5873 void dw_container_set_item(HWND handle, void *pointer, int column, int row, void *data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5874 { |
835
82072ff08513
Removed some GTK_IS_TREE_VIEW checks that were erroneously dropping out of valid requests.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
830
diff
changeset
|
5875 _dw_container_set_item(handle, pointer, column, row, data); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5876 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5877 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5878 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5879 * Changes an existing item in specified row and column to the given data. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5880 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5881 * handle: Handle to the container window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5882 * column: Zero based column of data being set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5883 * row: Zero based row of data being set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5884 * data: Pointer to the data to be added. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5885 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5886 void dw_container_change_item(HWND handle, int column, int row, void *data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5887 { |
781
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5888 _dw_container_set_item(handle, NULL, column, row, data); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5889 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5890 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5891 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5892 * Changes an existing item in specified row and column to the given data. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5893 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5894 * handle: Handle to the container window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5895 * column: Zero based column of data being set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5896 * row: Zero based row of data being set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5897 * data: Pointer to the data to be added. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5898 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5899 void API dw_filesystem_change_item(HWND handle, int column, int row, void *data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5900 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5901 dw_filesystem_set_item(handle, NULL, column, row, data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5902 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5903 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5904 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5905 * Changes an item in specified row and column to the given data. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5906 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5907 * handle: Handle to the container window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5908 * pointer: Pointer to the allocated memory in dw_container_alloc(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5909 * column: Zero based column of data being set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5910 * row: Zero based row of data being set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5911 * data: Pointer to the data to be added. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5912 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5913 void API dw_filesystem_change_file(HWND handle, int row, char *filename, HICN icon) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5914 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5915 dw_filesystem_set_file(handle, NULL, row, filename, icon); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5916 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5917 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5918 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5919 * Sets an item in specified row and column to the given data. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5920 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5921 * handle: Handle to the container window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5922 * pointer: Pointer to the allocated memory in dw_container_alloc(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5923 * column: Zero based column of data being set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5924 * row: Zero based row of data being set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5925 * data: Pointer to the data to be added. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5926 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5927 void dw_filesystem_set_file(HWND handle, void *pointer, int row, char *filename, HICN icon) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5928 { |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5929 void *data[2] = { (void *)&icon, (void *)filename }; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
5930 |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5931 _dw_container_set_item(handle, pointer, 0, row, (void *)data); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5932 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5933 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5934 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5935 * Sets an item in specified row and column to the given data. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5936 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5937 * handle: Handle to the container window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5938 * pointer: Pointer to the allocated memory in dw_container_alloc(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5939 * column: Zero based column of data being set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5940 * row: Zero based row of data being set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5941 * data: Pointer to the data to be added. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5942 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5943 void dw_filesystem_set_item(HWND handle, void *pointer, int column, int row, void *data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5944 { |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5945 _dw_container_set_item(handle, pointer, column + 1, row, data); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5946 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5947 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5948 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5949 * Gets column type for a container column |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5950 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5951 * handle: Handle to the container window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5952 * column: Zero based column. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5953 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5954 int dw_container_get_column_type(HWND handle, int column) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5955 { |
781
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5956 char numbuf[20]; |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
5957 int flag, rc = 0; |
786
0e251c2f5d08
Implemented the column click event handler...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
785
diff
changeset
|
5958 GtkWidget *cont = handle; |
781
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5959 int _locked_by_me = FALSE; |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5960 |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5961 DW_MUTEX_LOCK; |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5962 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
df6091308b3f
Have the basics of containers working now with the tree view widget.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
780
diff
changeset
|
5963 if(!cont) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5964 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5965 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5966 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5967 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5968 |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
5969 snprintf(numbuf, 20, "_dw_cont_col%d", column); |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
5970 flag = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cont), numbuf)); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5971 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5972 if(flag & DW_CFA_BITMAPORICON) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5973 rc = DW_CFA_BITMAPORICON; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5974 else if(flag & DW_CFA_STRING) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5975 rc = DW_CFA_STRING; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5976 else if(flag & DW_CFA_ULONG) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5977 rc = DW_CFA_ULONG; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5978 else if(flag & DW_CFA_DATE) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5979 rc = DW_CFA_DATE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5980 else if(flag & DW_CFA_TIME) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5981 rc = DW_CFA_TIME; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5982 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5983 rc = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5984 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5985 return rc; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5986 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5987 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5988 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5989 * Gets column type for a filesystem container column |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5990 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5991 * handle: Handle to the container window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5992 * column: Zero based column. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5993 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5994 int API dw_filesystem_get_column_type(HWND handle, int column) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5995 { |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
5996 return dw_container_get_column_type( handle, column + 1 ); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5997 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5998 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
5999 /* |
1207
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6000 * Sets the alternating row colors for container window (widget) handle. |
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6001 * Parameters: |
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6002 * handle: The window (widget) handle. |
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6003 * oddcolor: Odd row background color in DW_RGB format or a default color index. |
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6004 * evencolor: Even row background color in DW_RGB format or a default color index. |
1211
70dca53cb071
Updated GTK3 with the behavior change just commited for Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1207
diff
changeset
|
6005 * DW_RGB_TRANSPARENT will disable coloring rows. |
70dca53cb071
Updated GTK3 with the behavior change just commited for Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1207
diff
changeset
|
6006 * DW_CLR_DEFAULT will use the system default alternating row colors. |
1207
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6007 */ |
1291
b99b0b2c2826
Renamed dw_container_set_row_bg() to dw_container_set_stripe().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1289
diff
changeset
|
6008 void API dw_container_set_stripe(HWND handle, unsigned long oddcolor, unsigned long evencolor) |
1207
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6009 { |
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6010 GtkWidget *cont; |
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6011 int _locked_by_me = FALSE; |
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6012 DW_MUTEX_LOCK; |
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6013 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6014 |
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6015 /* Make sure it is the correct tree type */ |
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6016 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6017 { |
1211
70dca53cb071
Updated GTK3 with the behavior change just commited for Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1207
diff
changeset
|
6018 if(oddcolor == DW_RGB_TRANSPARENT && evencolor == DW_RGB_TRANSPARENT) |
1207
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6019 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(cont), FALSE); |
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6020 else |
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6021 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(cont), TRUE); |
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6022 } |
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6023 DW_MUTEX_UNLOCK; |
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6024 } |
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6025 |
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6026 /* |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6027 * Sets the width of a column in the container. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6028 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6029 * handle: Handle to window (widget) of container. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6030 * column: Zero based column of width being set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6031 * width: Width of column in pixels. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6032 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6033 void dw_container_set_column_width(HWND handle, int column, int width) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6034 { |
830
43e6282463fa
Implemented dw_container_set_column_width().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
820
diff
changeset
|
6035 GtkWidget *cont; |
43e6282463fa
Implemented dw_container_set_column_width().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
820
diff
changeset
|
6036 int _locked_by_me = FALSE; |
43e6282463fa
Implemented dw_container_set_column_width().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
820
diff
changeset
|
6037 |
43e6282463fa
Implemented dw_container_set_column_width().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
820
diff
changeset
|
6038 DW_MUTEX_LOCK; |
43e6282463fa
Implemented dw_container_set_column_width().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
820
diff
changeset
|
6039 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
1207
423da07c8f05
Basic support for row colors on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1203
diff
changeset
|
6040 |
830
43e6282463fa
Implemented dw_container_set_column_width().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
820
diff
changeset
|
6041 /* Make sure it is the correct tree type */ |
43e6282463fa
Implemented dw_container_set_column_width().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
820
diff
changeset
|
6042 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
43e6282463fa
Implemented dw_container_set_column_width().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
820
diff
changeset
|
6043 { |
43e6282463fa
Implemented dw_container_set_column_width().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
820
diff
changeset
|
6044 GtkTreeViewColumn *col = gtk_tree_view_get_column(GTK_TREE_VIEW(cont), column); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6045 |
830
43e6282463fa
Implemented dw_container_set_column_width().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
820
diff
changeset
|
6046 if(col && GTK_IS_TREE_VIEW_COLUMN(col)) |
43e6282463fa
Implemented dw_container_set_column_width().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
820
diff
changeset
|
6047 { |
43e6282463fa
Implemented dw_container_set_column_width().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
820
diff
changeset
|
6048 gtk_tree_view_column_set_fixed_width(GTK_TREE_VIEW_COLUMN(col), width); |
43e6282463fa
Implemented dw_container_set_column_width().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
820
diff
changeset
|
6049 } |
43e6282463fa
Implemented dw_container_set_column_width().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
820
diff
changeset
|
6050 } |
43e6282463fa
Implemented dw_container_set_column_width().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
820
diff
changeset
|
6051 DW_MUTEX_UNLOCK; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6052 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6053 |
820
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6054 /* Internal version for both */ |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6055 void _dw_container_set_row_title(HWND handle, void *pointer, int row, char *title) |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6056 { |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6057 GtkWidget *cont = handle; |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6058 GtkListStore *store = NULL; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6059 int _locked_by_me = FALSE; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6060 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6061 DW_MUTEX_LOCK; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6062 /* Make sure it is the correct tree type */ |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6063 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6064 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(cont)); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6065 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6066 if(store) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6067 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6068 GtkTreeIter iter; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6069 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6070 if(pointer) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6071 { |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
6072 row += GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cont), "_dw_insertpos")); |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6073 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6074 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6075 if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, row)) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6076 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6077 gtk_list_store_set(store, &iter, 0, (gpointer)title, -1); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6078 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6079 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6080 DW_MUTEX_UNLOCK; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6081 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6082 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6083 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6084 * Sets the title of a row in the container. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6085 * Parameters: |
820
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6086 * pointer: Pointer to the allocated memory in dw_container_alloc(). |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6087 * row: Zero based row of data being set. |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6088 * title: String title of the item. |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6089 */ |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6090 void dw_container_set_row_title(void *pointer, int row, char *title) |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6091 { |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6092 _dw_container_set_row_title(pointer, pointer, row, title); |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6093 } |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6094 |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6095 /* |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6096 * Changes the title of a row already inserted in the container. |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6097 * Parameters: |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6098 * handle: Handle to window (widget) of container. |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6099 * row: Zero based row of data being set. |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6100 * title: String title of the item. |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6101 */ |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6102 void dw_container_change_row_title(HWND handle, int row, char *title) |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6103 { |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6104 _dw_container_set_row_title(handle, NULL, row, title); |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6105 } |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6106 |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6107 /* |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6108 * Sets the title of a row in the container. |
19a632499344
GTK2/3 changes for similar dw_container_set_item() and dw_container_change_item() misbehavior.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
818
diff
changeset
|
6109 * Parameters: |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6110 * handle: Handle to the container window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6111 * pointer: Pointer to the allocated memory in dw_container_alloc(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6112 * rowcount: The number of rows to be inserted. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6113 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6114 void dw_container_insert(HWND handle, void *pointer, int rowcount) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6115 { |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6116 /* Don't need to do anything here */ |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6117 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6118 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6119 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6120 * Removes the first x rows from a container. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6121 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6122 * handle: Handle to the window (widget) to be deleted from. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6123 * rowcount: The number of rows to be deleted. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6124 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6125 void dw_container_delete(HWND handle, int rowcount) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6126 { |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6127 GtkWidget *cont; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6128 GtkListStore *store = NULL; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6129 int _locked_by_me = FALSE; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6130 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6131 DW_MUTEX_LOCK; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6132 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6133 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6134 /* Make sure it is the correct tree type */ |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6135 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6136 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(cont)); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6137 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6138 if(store) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6139 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6140 GtkTreeIter iter; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6141 int rows, z; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6142 |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
6143 rows = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cont), "_dw_rowcount")); |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6144 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6145 for(z=0;z<rowcount;z++) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6146 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6147 if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, 0)) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6148 gtk_list_store_remove(store, &iter); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6149 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6150 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6151 if(rows - rowcount < 0) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6152 rows = 0; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6153 else |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6154 rows -= rowcount; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6155 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6156 g_object_set_data(G_OBJECT(cont), "_dw_rowcount", GINT_TO_POINTER(rows)); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6157 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6158 DW_MUTEX_UNLOCK; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6159 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6160 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6161 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6162 * Removes all rows from a container. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6163 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6164 * handle: Handle to the window (widget) to be cleared. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6165 * redraw: TRUE to cause the container to redraw immediately. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6166 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6167 void dw_container_clear(HWND handle, int redraw) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6168 { |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6169 GtkWidget *cont; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6170 GtkListStore *store = NULL; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6171 int _locked_by_me = FALSE; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6172 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6173 DW_MUTEX_LOCK; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6174 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6175 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6176 /* Make sure it is the correct tree type */ |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6177 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6178 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(cont)); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6179 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6180 if(store) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6181 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6182 g_object_set_data(G_OBJECT(cont), "_dw_rowcount", GINT_TO_POINTER(0)); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6183 g_object_set_data(G_OBJECT(cont), "_dw_insertpos", GINT_TO_POINTER(0)); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6184 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6185 gtk_list_store_clear(store); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6186 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6187 DW_MUTEX_UNLOCK; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6188 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6189 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6190 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6191 * Scrolls container up or down. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6192 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6193 * handle: Handle to the window (widget) to be scrolled. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6194 * direction: DW_SCROLL_UP, DW_SCROLL_DOWN, DW_SCROLL_TOP or |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6195 * DW_SCROLL_BOTTOM. (rows is ignored for last two) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6196 * rows: The number of rows to be scrolled. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6197 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6198 void dw_container_scroll(HWND handle, int direction, long rows) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6199 { |
861
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6200 GtkWidget *cont; |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6201 int _locked_by_me = FALSE; |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6202 |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6203 DW_MUTEX_LOCK; |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6204 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6205 |
861
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6206 /* Make sure it is the correct tree type */ |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6207 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6208 { |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6209 GtkAdjustment *adjust = gtk_tree_view_get_vadjustment(GTK_TREE_VIEW(cont)); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6210 |
861
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6211 if(adjust) |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6212 { |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
6213 gint rowcount = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cont), "_dw_rowcount")); |
861
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6214 gdouble currpos = gtk_adjustment_get_value(adjust); |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6215 gdouble upper = gtk_adjustment_get_upper(adjust); |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6216 gdouble lower = gtk_adjustment_get_lower(adjust); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6217 gdouble change; |
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6218 |
861
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6219 /* Safety check */ |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6220 if(rowcount < 1) |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6221 { |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6222 DW_MUTEX_UNLOCK; |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6223 return; |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6224 } |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6225 |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6226 change = ((gdouble)rows/(gdouble)rowcount) * (upper - lower); |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6227 |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6228 switch(direction) |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6229 { |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6230 case DW_SCROLL_TOP: |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6231 { |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6232 gtk_adjustment_set_value(adjust, lower); |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6233 break; |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6234 } |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6235 case DW_SCROLL_BOTTOM: |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6236 { |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6237 gtk_adjustment_set_value(adjust, upper); |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6238 break; |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6239 } |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6240 case DW_SCROLL_UP: |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6241 { |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6242 gdouble newpos = currpos - change; |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6243 if(newpos < lower) |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6244 { |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6245 newpos = lower; |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6246 } |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6247 gtk_adjustment_set_value(adjust, newpos); |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6248 break; |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6249 } |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6250 case DW_SCROLL_DOWN: |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6251 { |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6252 gdouble newpos = currpos + change; |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6253 if(newpos > upper) |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6254 { |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6255 newpos = upper; |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6256 } |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6257 gtk_adjustment_set_value(adjust, newpos); |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6258 break; |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6259 } |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6260 } |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6261 } |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6262 } |
8f2722696a8e
Implemented dw_container_scroll() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
843
diff
changeset
|
6263 DW_MUTEX_UNLOCK; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6264 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6265 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6266 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6267 * Starts a new query of a container. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6268 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6269 * handle: Handle to the window (widget) to be queried. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6270 * flags: If this parameter is DW_CRA_SELECTED it will only |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6271 * return items that are currently selected. Otherwise |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6272 * it will return all records in the container. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6273 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6274 char *dw_container_query_start(HWND handle, unsigned long flags) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6275 { |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6276 GtkWidget *cont; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6277 GtkListStore *store = NULL; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6278 char *retval = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6279 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6280 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6281 DW_MUTEX_LOCK; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6282 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6283 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6284 /* Make sure it is the correct tree type */ |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6285 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6286 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(cont)); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6287 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6288 if(store) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6289 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6290 /* These should be separate but right now this will work */ |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6291 if(flags & DW_CRA_SELECTED) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6292 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6293 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(cont)); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6294 GList *list = gtk_tree_selection_get_selected_rows(sel, NULL); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6295 if(list) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6296 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6297 GtkTreePath *path = g_list_nth_data(list, 0); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6298 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6299 if(path) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6300 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6301 gint *indices = gtk_tree_path_get_indices(path); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6302 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6303 if(indices) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6304 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6305 GtkTreeIter iter; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6306 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6307 if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, indices[0])) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6308 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6309 gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, 0, &retval, -1); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6310 g_object_set_data(G_OBJECT(cont), "_dw_querypos", GINT_TO_POINTER(1)); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6311 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6312 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6313 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6314 g_list_foreach(list, (GFunc) gtk_tree_path_free, NULL); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6315 g_list_free(list); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6316 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6317 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6318 else if(flags & DW_CRA_CURSORED) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6319 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6320 GtkTreePath *path; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6321 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6322 gtk_tree_view_get_cursor(GTK_TREE_VIEW(cont), &path, NULL); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6323 if(path) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6324 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6325 GtkTreeIter iter; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6326 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6327 if(gtk_tree_model_get_iter(GTK_TREE_MODEL(store), &iter, path)) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6328 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6329 gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, 0, &retval, -1); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6330 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6331 gtk_tree_path_free(path); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6332 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6333 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6334 else |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6335 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6336 GtkTreeIter iter; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6337 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6338 if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, 0)) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6339 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6340 gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, 0, &retval, -1); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6341 g_object_set_data(G_OBJECT(cont), "_dw_querypos", GINT_TO_POINTER(1)); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6342 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6343 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6344 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6345 DW_MUTEX_UNLOCK; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6346 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6347 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6348 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6349 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6350 * Continues an existing query of a container. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6351 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6352 * handle: Handle to the window (widget) to be queried. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6353 * flags: If this parameter is DW_CRA_SELECTED it will only |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6354 * return items that are currently selected. Otherwise |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6355 * it will return all records in the container. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6356 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6357 char *dw_container_query_next(HWND handle, unsigned long flags) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6358 { |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6359 GtkWidget *cont; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6360 GtkListStore *store = NULL; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6361 char *retval = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6362 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6363 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6364 DW_MUTEX_LOCK; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6365 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6366 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6367 /* Make sure it is the correct tree type */ |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6368 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6369 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(cont)); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6370 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6371 if(store) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6372 { |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
6373 int pos = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cont), "_dw_querypos")); |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6374 int count = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), NULL); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6375 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6376 /* These should be separate but right now this will work */ |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6377 if(flags & DW_CRA_SELECTED) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6378 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6379 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(cont)); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6380 GList *list = gtk_tree_selection_get_selected_rows(sel, NULL); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6381 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6382 if(list) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6383 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6384 GtkTreePath *path = g_list_nth_data(list, pos); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6385 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6386 if(path) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6387 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6388 gint *indices = gtk_tree_path_get_indices(path); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6389 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6390 if(indices) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6391 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6392 GtkTreeIter iter; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6393 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6394 if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, indices[0])) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6395 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6396 gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, 0, &retval, -1); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6397 g_object_set_data(G_OBJECT(cont), "_dw_querypos", GINT_TO_POINTER(pos+1)); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6398 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6399 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6400 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6401 g_list_foreach(list, (GFunc) gtk_tree_path_free, NULL); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6402 g_list_free(list); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6403 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6404 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6405 else if(flags & DW_CRA_CURSORED) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6406 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6407 /* There will only be one item cursored, |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6408 * retrieve it with dw_container_query_start() |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6409 */ |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6410 retval = NULL; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6411 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6412 else |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6413 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6414 GtkTreeIter iter; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6415 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6416 if(pos < count && gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, pos)) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6417 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6418 gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, 0, &retval, -1); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6419 g_object_set_data(G_OBJECT(cont), "_dw_querypos", GINT_TO_POINTER(pos+1)); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6420 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6421 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6422 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6423 DW_MUTEX_UNLOCK; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6424 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6425 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6426 |
1322
3f1ac800bf65
Initial fix for being able to do container string comparisons instead of pointer on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1320
diff
changeset
|
6427 int _find_iter(GtkListStore *store, GtkTreeIter *iter, char *text, int textcomp) |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6428 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6429 int z, rows = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), NULL); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6430 char *thistext; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6431 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6432 for(z=0;z<rows;z++) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6433 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6434 if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), iter, NULL, z)) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6435 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6436 gtk_tree_model_get(GTK_TREE_MODEL(store), iter, 0, &thistext, -1); |
1322
3f1ac800bf65
Initial fix for being able to do container string comparisons instead of pointer on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1320
diff
changeset
|
6437 if((textcomp && thistext && strcmp(thistext, text) == 0) || (!textcomp && thistext == text)) |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6438 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6439 return TRUE; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6440 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6441 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6442 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6443 return FALSE; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6444 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6445 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6446 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6447 * Cursors the item with the text speficied, and scrolls to that item. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6448 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6449 * handle: Handle to the window (widget) to be queried. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6450 * text: Text usually returned by dw_container_query(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6451 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6452 void dw_container_cursor(HWND handle, char *text) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6453 { |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6454 GtkWidget *cont; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6455 GtkListStore *store = NULL; |
1322
3f1ac800bf65
Initial fix for being able to do container string comparisons instead of pointer on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1320
diff
changeset
|
6456 int textcomp, _locked_by_me = FALSE; |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6457 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6458 DW_MUTEX_LOCK; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6459 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
1322
3f1ac800bf65
Initial fix for being able to do container string comparisons instead of pointer on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1320
diff
changeset
|
6460 textcomp = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(handle), "_dw_textcomp")); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6461 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6462 /* Make sure it is the correct tree type */ |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6463 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6464 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(cont)); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6465 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6466 if(store) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6467 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6468 GtkTreeIter iter; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6469 |
1322
3f1ac800bf65
Initial fix for being able to do container string comparisons instead of pointer on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1320
diff
changeset
|
6470 if(_find_iter(store, &iter, text, textcomp)) |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6471 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6472 GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iter); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6473 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6474 if(path) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6475 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6476 gtk_tree_view_row_activated(GTK_TREE_VIEW(cont), path, NULL); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6477 gtk_tree_path_free(path); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6478 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6479 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6480 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6481 DW_MUTEX_UNLOCK; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6482 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6483 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6484 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6485 * Deletes the item with the text speficied. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6486 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6487 * handle: Handle to the window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6488 * text: Text usually returned by dw_container_query(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6489 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6490 void dw_container_delete_row(HWND handle, char *text) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6491 { |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6492 GtkWidget *cont; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6493 GtkListStore *store = NULL; |
1322
3f1ac800bf65
Initial fix for being able to do container string comparisons instead of pointer on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1320
diff
changeset
|
6494 int textcomp, _locked_by_me = FALSE; |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6495 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6496 DW_MUTEX_LOCK; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6497 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
1322
3f1ac800bf65
Initial fix for being able to do container string comparisons instead of pointer on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1320
diff
changeset
|
6498 textcomp = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(handle), "_dw_textcomp")); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6499 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6500 /* Make sure it is the correct tree type */ |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6501 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6502 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(cont)); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6503 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6504 if(store) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6505 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6506 GtkTreeIter iter; |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
6507 int rows = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cont), "_dw_rowcount")); |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6508 |
1322
3f1ac800bf65
Initial fix for being able to do container string comparisons instead of pointer on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1320
diff
changeset
|
6509 if(_find_iter(store, &iter, text, textcomp)) |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6510 { |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6511 gtk_list_store_remove(store, &iter); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6512 rows--; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6513 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6514 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6515 g_object_set_data(G_OBJECT(cont), "_dw_rowcount", GINT_TO_POINTER(rows)); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6516 } |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6517 DW_MUTEX_UNLOCK; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6518 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6519 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6520 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6521 * Optimizes the column widths so that all data is visible. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6522 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6523 * handle: Handle to the window (widget) to be optimized. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6524 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6525 void dw_container_optimize(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6526 { |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6527 GtkWidget *cont; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6528 int _locked_by_me = FALSE; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6529 |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6530 DW_MUTEX_LOCK; |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6531 cont = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6532 |
782
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6533 /* Make sure it is the correct tree type */ |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6534 if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6535 gtk_tree_view_columns_autosize(GTK_TREE_VIEW(cont)); |
5a4bfe989f50
Most of the dw_container_* functions now implemented but many untested.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
781
diff
changeset
|
6536 DW_MUTEX_UNLOCK; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6537 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6538 |
1223
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6539 /* Translate the status message into a message on our buddy window */ |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6540 static void _status_translate(GtkStatusIcon *status_icon, guint button, guint activate_time, gpointer user_data) |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6541 { |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6542 GdkEventButton event = { 0 }; |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6543 long x, y; |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6544 gboolean retval; |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6545 |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6546 dw_pointer_query_pos(&x, &y); |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6547 |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6548 event.button = button; |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6549 event.x = x; |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6550 event.y = y; |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6551 |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6552 g_signal_emit_by_name(G_OBJECT(user_data), "button_press_event", &event, &retval); |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6553 } |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6554 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6555 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6556 * Inserts an icon into the taskbar. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6557 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6558 * handle: Window handle that will handle taskbar icon messages. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6559 * icon: Icon handle to display in the taskbar. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6560 * bubbletext: Text to show when the mouse is above the icon. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6561 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6562 void dw_taskbar_insert(HWND handle, HICN icon, char *bubbletext) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6563 { |
1223
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6564 GtkStatusIcon *status; |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6565 GdkPixbuf *pixbuf; |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6566 int _locked_by_me = FALSE; |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6567 |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6568 DW_MUTEX_LOCK; |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6569 pixbuf = _find_pixbuf(icon, NULL, NULL); |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6570 status = gtk_status_icon_new_from_pixbuf(pixbuf); |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6571 if(bubbletext) |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6572 gtk_status_icon_set_tooltip_text(status, bubbletext); |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6573 g_object_set_data(G_OBJECT(handle), "_dw_taskbar", status); |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6574 g_signal_connect(G_OBJECT (status), "popup-menu", G_CALLBACK (_status_translate), handle); |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6575 gtk_status_icon_set_visible(status, TRUE); |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6576 DW_MUTEX_UNLOCK; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6577 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6578 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6579 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6580 * Deletes an icon from the taskbar. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6581 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6582 * handle: Window handle that was used with dw_taskbar_insert(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6583 * icon: Icon handle that was used with dw_taskbar_insert(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6584 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6585 void dw_taskbar_delete(HWND handle, HICN icon) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6586 { |
1223
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6587 GtkStatusIcon *status; |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6588 int _locked_by_me = FALSE; |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6589 |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6590 DW_MUTEX_LOCK; |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6591 status = g_object_get_data(G_OBJECT(handle), "_dw_taskbar"); |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6592 g_object_unref(G_OBJECT(status)); |
1255ba41adad
Added taskbar support for GTK...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1211
diff
changeset
|
6593 DW_MUTEX_UNLOCK; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6594 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6595 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6596 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6597 * Creates a rendering context widget (window) to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6598 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6599 * id: An id to be used with dw_window_from_id. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6600 * Returns: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6601 * A handle to the widget or NULL on failure. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6602 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6603 HWND dw_render_new(unsigned long id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6604 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6605 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6606 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6607 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6608 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6609 tmp = gtk_drawing_area_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6610 gtk_widget_set_events(tmp, GDK_EXPOSURE_MASK |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6611 | GDK_LEAVE_NOTIFY_MASK |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6612 | GDK_BUTTON_PRESS_MASK |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6613 | GDK_BUTTON_RELEASE_MASK |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6614 | GDK_KEY_PRESS_MASK |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6615 | GDK_POINTER_MOTION_MASK |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6616 | GDK_POINTER_MOTION_HINT_MASK); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6617 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6618 gtk_widget_set_can_focus(tmp, TRUE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6619 gtk_widget_show(tmp); |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
6620 if(_DWDefaultFont) |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
6621 dw_window_set_font(tmp, _DWDefaultFont); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6622 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6623 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6624 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6625 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6626 /* Returns a GdkColor from a DW color */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6627 static GdkColor _internal_color(unsigned long value) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6628 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6629 if(DW_RGB_COLOR & value) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6630 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6631 GdkColor color = { 0, DW_RED_VALUE(value) << 8, DW_GREEN_VALUE(value) << 8, DW_BLUE_VALUE(value) << 8 }; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6632 return color; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6633 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6634 if (value < 16) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6635 return _colors[value]; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6636 return _colors[0]; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6637 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6638 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6639 /* Sets the current foreground drawing color. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6640 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6641 * red: red value. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6642 * green: green value. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6643 * blue: blue value. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6644 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6645 void dw_color_foreground_set(unsigned long value) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6646 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6647 GdkColor color = _internal_color(value); |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6648 GdkColor *foreground = pthread_getspecific(_dw_fg_color_key); |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6649 |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6650 *foreground = color; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6651 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6652 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6653 /* Sets the current background drawing color. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6654 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6655 * red: red value. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6656 * green: green value. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6657 * blue: blue value. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6658 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6659 void dw_color_background_set(unsigned long value) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6660 { |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6661 GdkColor *background = pthread_getspecific(_dw_bg_color_key); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6662 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6663 if(value == DW_CLR_DEFAULT) |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6664 { |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6665 if(background) |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6666 { |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6667 pthread_setspecific(_dw_bg_color_key, NULL); |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6668 free(background); |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6669 } |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6670 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6671 else |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6672 { |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6673 GdkColor color = _internal_color(value); |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6674 |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6675 if(!background) |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6676 { |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6677 background = malloc(sizeof(GdkColor)); |
972
32830f1683c9
Fixed an issue where dw_color_background_set() would not function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
971
diff
changeset
|
6678 pthread_setspecific(_dw_bg_color_key, background); |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6679 } |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6680 *background = color; |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6681 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6682 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6683 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6684 /* Internal function to handle the color OK press */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6685 static gint _gtk_color_ok(GtkWidget *widget, DWDialog *dwwait) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6686 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6687 GdkColor color; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6688 unsigned long dw_color; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6689 GtkColorSelection *colorsel; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6690 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6691 if(!dwwait) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6692 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6693 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6694 colorsel = (GtkColorSelection *)gtk_color_selection_dialog_get_color_selection(GTK_COLOR_SELECTION_DIALOG(dwwait->data)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6695 gtk_color_selection_get_current_color(colorsel, &color); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6696 gtk_widget_destroy(GTK_WIDGET(dwwait->data)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6697 _dw_color_active = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6698 dw_color = DW_RGB( (color.red & 0xFF), (color.green & 0xFF), (color.blue & 0xFF)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6699 dw_dialog_dismiss(dwwait, (void *)dw_color); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6700 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6701 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6702 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6703 /* Internal function to handle the color Cancel press */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6704 static gint _gtk_color_cancel(GtkWidget *widget, DWDialog *dwwait) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6705 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6706 if(!dwwait) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6707 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6708 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6709 gtk_widget_destroy(GTK_WIDGET(dwwait->data)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6710 _dw_color_active = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6711 dw_dialog_dismiss(dwwait, (void *)-1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6712 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6713 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6714 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6715 /* Allows the user to choose a color using the system's color chooser dialog. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6716 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6717 * value: current color |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6718 * Returns: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6719 * The selected color or the current color if cancelled. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6720 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6721 unsigned long API dw_color_choose(unsigned long value) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6722 { |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
6723 GtkWidget *colorw, *ok_button, *cancel_button; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6724 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6725 DWDialog *dwwait; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6726 GtkColorSelection *colorsel; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6727 GdkColor color = _internal_color(value); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6728 unsigned long dw_color; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6729 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6730 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6731 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6732 /* The DW mutex should be sufficient for |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6733 * insuring no thread changes this unknowingly. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6734 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6735 if(_dw_color_active) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6736 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6737 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6738 return value; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6739 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6740 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6741 _dw_color_active = 1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6742 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6743 colorw = gtk_color_selection_dialog_new("Select Color"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6744 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6745 dwwait = dw_dialog_new((void *)colorw); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6746 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6747 colorsel = (GtkColorSelection *)gtk_color_selection_dialog_get_color_selection(GTK_COLOR_SELECTION_DIALOG(colorw)); |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
6748 g_object_get(G_OBJECT(colorw), "ok-button", &ok_button, "cancel-button", &cancel_button, NULL); |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
6749 g_signal_connect(G_OBJECT(ok_button), "clicked", G_CALLBACK(_gtk_color_ok), dwwait); |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
6750 g_signal_connect(G_OBJECT(cancel_button), "clicked", G_CALLBACK(_gtk_color_cancel), dwwait); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6751 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6752 gtk_color_selection_set_previous_color(colorsel,&color); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6753 gtk_color_selection_set_current_color(colorsel,&color); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6754 gtk_color_selection_set_has_palette(colorsel,TRUE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6755 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6756 gtk_widget_show(colorw); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6757 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6758 dw_color = (unsigned long)dw_dialog_wait(dwwait); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6759 if ((unsigned long)dw_color == -1) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6760 dw_color = value; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6761 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6762 return (unsigned long)dw_color; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6763 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6764 dw_messagebox("Not implemented", DW_MB_OK|DW_MB_INFORMATION, "This feature not yet supported."); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6765 return value; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6766 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6767 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6768 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6769 /* Draw a point on a window (preferably a render window). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6770 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6771 * handle: Handle to the window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6772 * pixmap: Handle to the pixmap. (choose only one of these) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6773 * x: X coordinate. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6774 * y: Y coordinate. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6775 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6776 void dw_draw_point(HWND handle, HPIXMAP pixmap, int x, int y) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6777 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6778 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6779 cairo_t *cr = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6780 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6781 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6782 if(handle) |
818
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6783 { |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6784 GdkWindow *window = gtk_widget_get_window(handle); |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6785 /* Safety check for non-existant windows */ |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6786 if(!window || !GDK_IS_WINDOW(window)) |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6787 { |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6788 DW_MUTEX_UNLOCK; |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6789 return; |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6790 } |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6791 cr = gdk_cairo_create(window); |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6792 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6793 else if(pixmap) |
815
c1e93dd575a5
Initial implementation of a slightly disjointed dual cairo_surface gdkpixbuf image model.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
814
diff
changeset
|
6794 cr = cairo_create(pixmap->image); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6795 if(cr) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6796 { |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6797 GdkColor *foreground = pthread_getspecific(_dw_fg_color_key); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6798 |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6799 gdk_cairo_set_source_color (cr, foreground); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6800 cairo_set_line_width(cr, 1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6801 cairo_move_to(cr, x, y); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6802 cairo_stroke(cr); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6803 cairo_destroy(cr); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6804 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6805 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6806 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6807 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6808 /* Draw a line on a window (preferably a render window). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6809 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6810 * handle: Handle to the window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6811 * pixmap: Handle to the pixmap. (choose only one of these) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6812 * x1: First X coordinate. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6813 * y1: First Y coordinate. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6814 * x2: Second X coordinate. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6815 * y2: Second Y coordinate. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6816 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6817 void dw_draw_line(HWND handle, HPIXMAP pixmap, int x1, int y1, int x2, int y2) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6818 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6819 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6820 cairo_t *cr = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6821 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6822 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6823 if(handle) |
818
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6824 { |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6825 GdkWindow *window = gtk_widget_get_window(handle); |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6826 /* Safety check for non-existant windows */ |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6827 if(!window || !GDK_IS_WINDOW(window)) |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6828 { |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6829 DW_MUTEX_UNLOCK; |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6830 return; |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6831 } |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6832 cr = gdk_cairo_create(window); |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6833 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6834 else if(pixmap) |
815
c1e93dd575a5
Initial implementation of a slightly disjointed dual cairo_surface gdkpixbuf image model.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
814
diff
changeset
|
6835 cr = cairo_create(pixmap->image); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6836 if(cr) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6837 { |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6838 GdkColor *foreground = pthread_getspecific(_dw_fg_color_key); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6839 |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6840 gdk_cairo_set_source_color (cr, foreground); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6841 cairo_set_line_width(cr, 1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6842 cairo_move_to(cr, x1, y1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6843 cairo_line_to(cr, x2, y2); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6844 cairo_stroke(cr); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6845 cairo_destroy(cr); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6846 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6847 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6848 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6849 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6850 /* Draw a closed polygon on a window (preferably a render window). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6851 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6852 * handle: Handle to the window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6853 * pixmap: Handle to the pixmap. (choose only one of these) |
1275
0b34e2cf0706
Updated dw_draw_rect and dw_draw_polygon to accept flags the same way as dw_draw_arc.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1271
diff
changeset
|
6854 * flags: DW_DRAW_FILL (1) to fill the polygon or DW_DRAW_DEFAULT (0). |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6855 * number of points |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6856 * x[]: X coordinates. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6857 * y[]: Y coordinates. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6858 */ |
1275
0b34e2cf0706
Updated dw_draw_rect and dw_draw_polygon to accept flags the same way as dw_draw_arc.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1271
diff
changeset
|
6859 void dw_draw_polygon(HWND handle, HPIXMAP pixmap, int flags, int npoints, int *x, int *y) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6860 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6861 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6862 cairo_t *cr = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6863 int z; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6864 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6865 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6866 if(handle) |
818
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6867 { |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6868 GdkWindow *window = gtk_widget_get_window(handle); |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6869 /* Safety check for non-existant windows */ |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6870 if(!window || !GDK_IS_WINDOW(window)) |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6871 { |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6872 DW_MUTEX_UNLOCK; |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6873 return; |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6874 } |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6875 cr = gdk_cairo_create(window); |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6876 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6877 else if(pixmap) |
815
c1e93dd575a5
Initial implementation of a slightly disjointed dual cairo_surface gdkpixbuf image model.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
814
diff
changeset
|
6878 cr = cairo_create(pixmap->image); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6879 if(cr) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6880 { |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6881 GdkColor *foreground = pthread_getspecific(_dw_fg_color_key); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6882 |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6883 gdk_cairo_set_source_color (cr, foreground); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6884 cairo_set_line_width(cr, 1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6885 cairo_move_to(cr, x[0], y[0]); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6886 for(z=1;z<npoints;z++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6887 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6888 cairo_line_to(cr, x[z], y[z]); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6889 } |
1275
0b34e2cf0706
Updated dw_draw_rect and dw_draw_polygon to accept flags the same way as dw_draw_arc.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1271
diff
changeset
|
6890 if(flags & DW_DRAW_FILL) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6891 cairo_fill(cr); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6892 cairo_stroke(cr); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6893 cairo_destroy(cr); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6894 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6895 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6896 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6897 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6898 /* Draw a rectangle on a window (preferably a render window). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6899 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6900 * handle: Handle to the window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6901 * pixmap: Handle to the pixmap. (choose only one of these) |
1275
0b34e2cf0706
Updated dw_draw_rect and dw_draw_polygon to accept flags the same way as dw_draw_arc.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1271
diff
changeset
|
6902 * flags: DW_DRAW_FILL (1) to fill the box or DW_DRAW_DEFAULT (0). |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6903 * x: X coordinate. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6904 * y: Y coordinate. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6905 * width: Width of rectangle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6906 * height: Height of rectangle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6907 */ |
1275
0b34e2cf0706
Updated dw_draw_rect and dw_draw_polygon to accept flags the same way as dw_draw_arc.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1271
diff
changeset
|
6908 void dw_draw_rect(HWND handle, HPIXMAP pixmap, int flags, int x, int y, int width, int height) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6909 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6910 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6911 cairo_t *cr = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6912 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6913 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6914 if(handle) |
818
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6915 { |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6916 GdkWindow *window = gtk_widget_get_window(handle); |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6917 /* Safety check for non-existant windows */ |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6918 if(!window || !GDK_IS_WINDOW(window)) |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6919 { |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6920 DW_MUTEX_UNLOCK; |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6921 return; |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6922 } |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6923 cr = gdk_cairo_create(window); |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
6924 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6925 else if(pixmap) |
815
c1e93dd575a5
Initial implementation of a slightly disjointed dual cairo_surface gdkpixbuf image model.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
814
diff
changeset
|
6926 cr = cairo_create(pixmap->image); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6927 if(cr) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6928 { |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6929 GdkColor *foreground = pthread_getspecific(_dw_fg_color_key); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
6930 |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
6931 gdk_cairo_set_source_color (cr, foreground); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6932 cairo_set_line_width(cr, 1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6933 cairo_move_to(cr, x, y); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6934 cairo_line_to(cr, x, y + height); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6935 cairo_line_to(cr, x + width, y + height); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6936 cairo_line_to(cr, x + width, y); |
1275
0b34e2cf0706
Updated dw_draw_rect and dw_draw_polygon to accept flags the same way as dw_draw_arc.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1271
diff
changeset
|
6937 if(flags & DW_DRAW_FILL) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6938 cairo_fill(cr); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6939 cairo_stroke(cr); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6940 cairo_destroy(cr); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6941 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6942 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6943 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
6944 |
1261
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6945 /* Draw an arc on a window (preferably a render window). |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6946 * Parameters: |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6947 * handle: Handle to the window. |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6948 * pixmap: Handle to the pixmap. (choose only one of these) |
1275
0b34e2cf0706
Updated dw_draw_rect and dw_draw_polygon to accept flags the same way as dw_draw_arc.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1271
diff
changeset
|
6949 * flags: DW_DRAW_FILL (1) to fill the arc or DW_DRAW_DEFAULT (0). |
0b34e2cf0706
Updated dw_draw_rect and dw_draw_polygon to accept flags the same way as dw_draw_arc.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1271
diff
changeset
|
6950 * DW_DRAW_FULL will draw a complete circle/elipse. |
1261
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6951 * xorigin: X coordinate of center of arc. |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6952 * yorigin: Y coordinate of center of arc. |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6953 * x1: X coordinate of first segment of arc. |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6954 * y1: Y coordinate of first segment of arc. |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6955 * x2: X coordinate of second segment of arc. |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6956 * y2: Y coordinate of second segment of arc. |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6957 */ |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6958 void API dw_draw_arc(HWND handle, HPIXMAP pixmap, int flags, int xorigin, int yorigin, int x1, int y1, int x2, int y2) |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6959 { |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6960 int _locked_by_me = FALSE; |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6961 cairo_t *cr = NULL; |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6962 |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6963 DW_MUTEX_LOCK; |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6964 if(handle) |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6965 { |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6966 GdkWindow *window = gtk_widget_get_window(handle); |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6967 /* Safety check for non-existant windows */ |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6968 if(!window || !GDK_IS_WINDOW(window)) |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6969 { |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6970 DW_MUTEX_UNLOCK; |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6971 return; |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6972 } |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6973 cr = gdk_cairo_create(window); |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6974 } |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6975 else if(pixmap) |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6976 cr = cairo_create(pixmap->image); |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6977 if(cr) |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6978 { |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6979 GdkColor *foreground = pthread_getspecific(_dw_fg_color_key); |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6980 double dx = xorigin - x1; |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6981 double dy = yorigin - y1; |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6982 double r = sqrt(dx*dx + dy*dy); |
1266
83b0ed8c8377
Fixed on GTK passing angles to cairo in degrees instead of radians.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1263
diff
changeset
|
6983 double a1 = atan2((y1-yorigin), (x1-xorigin)); |
83b0ed8c8377
Fixed on GTK passing angles to cairo in degrees instead of radians.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1263
diff
changeset
|
6984 double a2 = atan2((y2-yorigin), (x2-xorigin)); |
1283
87d6d11b6323
Initial support for ellipses on GTK3 and GTK2 Printing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1281
diff
changeset
|
6985 int width = x2-x1; |
87d6d11b6323
Initial support for ellipses on GTK3 and GTK2 Printing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1281
diff
changeset
|
6986 float scale = (float)(y2-y1)/(float)width; |
1261
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6987 |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6988 gdk_cairo_set_source_color (cr, foreground); |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6989 cairo_set_line_width(cr, 1); |
1283
87d6d11b6323
Initial support for ellipses on GTK3 and GTK2 Printing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1281
diff
changeset
|
6990 if(scale != 1.0) |
87d6d11b6323
Initial support for ellipses on GTK3 and GTK2 Printing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1281
diff
changeset
|
6991 cairo_scale(cr, 1.0, scale); |
1271
8655753e2bc4
Implemented DW_DRAW_FULL and DW_DRAW_FILL for GTK3 and GTK2 printing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1266
diff
changeset
|
6992 if(flags & DW_DRAW_FULL) |
1283
87d6d11b6323
Initial support for ellipses on GTK3 and GTK2 Printing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1281
diff
changeset
|
6993 cairo_arc(cr, xorigin, yorigin / scale, (x2-x1)/2, 0, M_PI*2); |
1271
8655753e2bc4
Implemented DW_DRAW_FULL and DW_DRAW_FILL for GTK3 and GTK2 printing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1266
diff
changeset
|
6994 else |
8655753e2bc4
Implemented DW_DRAW_FULL and DW_DRAW_FILL for GTK3 and GTK2 printing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1266
diff
changeset
|
6995 cairo_arc(cr, xorigin, yorigin, r, a1, a2); |
8655753e2bc4
Implemented DW_DRAW_FULL and DW_DRAW_FILL for GTK3 and GTK2 printing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1266
diff
changeset
|
6996 if(flags & DW_DRAW_FILL) |
8655753e2bc4
Implemented DW_DRAW_FULL and DW_DRAW_FILL for GTK3 and GTK2 printing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1266
diff
changeset
|
6997 cairo_fill(cr); |
1261
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6998 cairo_stroke(cr); |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
6999 cairo_destroy(cr); |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
7000 } |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
7001 DW_MUTEX_UNLOCK; |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
7002 } |
61d0c5f84644
Initial attempt at adding dw_draw_arc() support on all platforms.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1258
diff
changeset
|
7003 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7004 /* Draw text on a window (preferably a render window). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7005 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7006 * handle: Handle to the window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7007 * pixmap: Handle to the pixmap. (choose only one of these) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7008 * x: X coordinate. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7009 * y: Y coordinate. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7010 * text: Text to be displayed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7011 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7012 void dw_draw_text(HWND handle, HPIXMAP pixmap, int x, int y, char *text) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7013 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7014 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7015 cairo_t *cr = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7016 PangoFontDescription *font; |
1232
db21c0081387
Fixes for dw_font_text_extents_get() on GTK not honoring the font set by dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1223
diff
changeset
|
7017 char *tmpname, *fontname = "monospace 10"; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7018 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7019 if(!text) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7020 return; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
7021 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7022 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7023 if(handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7024 { |
818
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
7025 GdkWindow *window = gtk_widget_get_window(handle); |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
7026 /* Safety check for non-existant windows */ |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
7027 if(!window || !GDK_IS_WINDOW(window)) |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
7028 { |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
7029 DW_MUTEX_UNLOCK; |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
7030 return; |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
7031 } |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
7032 cr = gdk_cairo_create(window); |
1148
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7033 if((tmpname = (char *)g_object_get_data(G_OBJECT(handle), "_dw_fontname"))) |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7034 fontname = tmpname; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7035 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7036 else if(pixmap) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7037 { |
1148
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7038 if(pixmap->font) |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7039 fontname = pixmap->font; |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7040 else if(pixmap->handle && (tmpname = (char *)g_object_get_data(G_OBJECT(pixmap->handle), "_dw_fontname"))) |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7041 fontname = tmpname; |
815
c1e93dd575a5
Initial implementation of a slightly disjointed dual cairo_surface gdkpixbuf image model.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
814
diff
changeset
|
7042 cr = cairo_create(pixmap->image); |
c1e93dd575a5
Initial implementation of a slightly disjointed dual cairo_surface gdkpixbuf image model.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
814
diff
changeset
|
7043 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7044 if(cr) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7045 { |
1148
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7046 font = pango_font_description_from_string(fontname); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7047 if(font) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7048 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7049 PangoContext *context = pango_cairo_create_context(cr); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7050 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7051 if(context) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7052 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7053 PangoLayout *layout = pango_layout_new(context); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7054 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7055 if(layout) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7056 { |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
7057 GdkColor *foreground = pthread_getspecific(_dw_fg_color_key); |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
7058 GdkColor *background = pthread_getspecific(_dw_bg_color_key); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7059 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7060 pango_layout_set_font_description(layout, font); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7061 pango_layout_set_text(layout, text, strlen(text)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7062 |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
7063 gdk_cairo_set_source_color (cr, foreground); |
892
82f68adde8a0
Fix for dw_draw_text() not using the background color on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
885
diff
changeset
|
7064 /* Create a background color attribute if required */ |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
7065 if(background) |
892
82f68adde8a0
Fix for dw_draw_text() not using the background color on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
885
diff
changeset
|
7066 { |
82f68adde8a0
Fix for dw_draw_text() not using the background color on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
885
diff
changeset
|
7067 PangoAttrList *list = pango_layout_get_attributes(layout); |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
7068 PangoAttribute *attr = pango_attr_background_new(background->red, |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
7069 background->green, |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
7070 background->blue); |
892
82f68adde8a0
Fix for dw_draw_text() not using the background color on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
885
diff
changeset
|
7071 if(!list) |
82f68adde8a0
Fix for dw_draw_text() not using the background color on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
885
diff
changeset
|
7072 { |
82f68adde8a0
Fix for dw_draw_text() not using the background color on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
885
diff
changeset
|
7073 list = pango_attr_list_new(); |
82f68adde8a0
Fix for dw_draw_text() not using the background color on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
885
diff
changeset
|
7074 } |
82f68adde8a0
Fix for dw_draw_text() not using the background color on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
885
diff
changeset
|
7075 pango_attr_list_change(list, attr); |
82f68adde8a0
Fix for dw_draw_text() not using the background color on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
885
diff
changeset
|
7076 pango_layout_set_attributes(layout, list); |
82f68adde8a0
Fix for dw_draw_text() not using the background color on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
885
diff
changeset
|
7077 } |
82f68adde8a0
Fix for dw_draw_text() not using the background color on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
885
diff
changeset
|
7078 /* Do the drawing */ |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7079 cairo_move_to(cr, x, y); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7080 pango_cairo_show_layout (cr, layout); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
7081 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7082 g_object_unref(layout); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7083 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7084 g_object_unref(context); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7085 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7086 pango_font_description_free(font); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7087 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7088 cairo_destroy(cr); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7089 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7090 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7091 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7092 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7093 /* Query the width and height of a text string. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7094 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7095 * handle: Handle to the window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7096 * pixmap: Handle to the pixmap. (choose only one of these) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7097 * text: Text to be queried. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7098 * width: Pointer to a variable to be filled in with the width. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7099 * height Pointer to a variable to be filled in with the height. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7100 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7101 void dw_font_text_extents_get(HWND handle, HPIXMAP pixmap, char *text, int *width, int *height) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7102 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7103 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7104 PangoFontDescription *font; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7105 char *fontname = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7106 int free_fontname = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7107 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7108 if(!text) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7109 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7110 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7111 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7112 if(handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7113 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7114 fontname = (char *)g_object_get_data(G_OBJECT(handle), "_dw_fontname"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7115 if ( fontname == NULL ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7116 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7117 fontname = dw_window_get_font(handle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7118 free_fontname = 1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7119 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7120 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7121 else if(pixmap) |
1232
db21c0081387
Fixes for dw_font_text_extents_get() on GTK not honoring the font set by dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1223
diff
changeset
|
7122 { |
db21c0081387
Fixes for dw_font_text_extents_get() on GTK not honoring the font set by dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1223
diff
changeset
|
7123 if(pixmap->font) |
db21c0081387
Fixes for dw_font_text_extents_get() on GTK not honoring the font set by dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1223
diff
changeset
|
7124 fontname = pixmap->font; |
db21c0081387
Fixes for dw_font_text_extents_get() on GTK not honoring the font set by dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1223
diff
changeset
|
7125 else if(pixmap->handle) |
db21c0081387
Fixes for dw_font_text_extents_get() on GTK not honoring the font set by dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1223
diff
changeset
|
7126 fontname = (char *)g_object_get_data(G_OBJECT(pixmap->handle), "_dw_fontname"); |
db21c0081387
Fixes for dw_font_text_extents_get() on GTK not honoring the font set by dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1223
diff
changeset
|
7127 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7128 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7129 font = pango_font_description_from_string(fontname ? fontname : "monospace 10"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7130 if(font) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7131 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7132 PangoContext *context = gdk_pango_context_get(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7133 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7134 if(context) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7135 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7136 PangoLayout *layout = pango_layout_new(context); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7137 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7138 if(layout) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7139 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7140 PangoRectangle rect; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7141 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7142 pango_layout_set_font_description(layout, font); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7143 pango_layout_set_text(layout, text, -1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7144 pango_layout_get_pixel_extents(layout, NULL, &rect); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7145 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7146 if(width) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7147 *width = rect.width; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7148 if(height) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7149 *height = rect.height; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7150 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7151 g_object_unref(layout); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7152 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7153 g_object_unref(context); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7154 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7155 pango_font_description_free(font); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7156 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7157 if ( free_fontname ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7158 free( fontname ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7159 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7160 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7161 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7162 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7163 * Creates a pixmap with given parameters. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7164 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7165 * handle: Window handle the pixmap is associated with. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7166 * or zero to enable this pixmap to be written |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7167 * off the screen to reduce flicker |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7168 * width: Width of the pixmap in pixels. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7169 * height: Height of the pixmap in pixels. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7170 * depth: Color depth of the pixmap. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7171 * Returns: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7172 * A handle to a pixmap or NULL on failure. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7173 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7174 HPIXMAP dw_pixmap_new(HWND handle, unsigned long width, unsigned long height, int depth) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7175 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7176 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7177 HPIXMAP pixmap; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7178 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7179 if (!(pixmap = calloc(1,sizeof(struct _hpixmap)))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7180 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7181 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7182 if (!depth) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7183 depth = -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7184 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7185 pixmap->width = width; pixmap->height = height; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7186 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7187 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7188 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7189 pixmap->handle = handle; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7190 /* Depth needs to be divided by 3... but for the RGB colorspace... |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7191 * only 8 bits per sample is allowed, so to avoid issues just pass 8 for now. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7192 */ |
815
c1e93dd575a5
Initial implementation of a slightly disjointed dual cairo_surface gdkpixbuf image model.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
814
diff
changeset
|
7193 pixmap->pixbuf = gdk_pixbuf_new( GDK_COLORSPACE_RGB, FALSE, 8, width, height ); |
c1e93dd575a5
Initial implementation of a slightly disjointed dual cairo_surface gdkpixbuf image model.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
814
diff
changeset
|
7194 pixmap->image = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7195 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7196 return pixmap; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7197 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7198 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7199 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7200 * Creates a pixmap from a file. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7201 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7202 * handle: Window handle the pixmap is associated with. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7203 * filename: Name of the file, omit extention to have |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7204 * DW pick the appropriate file extension. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7205 * (BMP on OS/2 or Windows, XPM on Unix) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7206 * Returns: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7207 * A handle to a pixmap or NULL on failure. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7208 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7209 HPIXMAP dw_pixmap_new_from_file(HWND handle, char *filename) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7210 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7211 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7212 HPIXMAP pixmap; |
1258
3df86772b625
Updated the list of supported image formats for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1245
diff
changeset
|
7213 char *file = alloca(strlen(filename) + 6); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7214 int found_ext = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7215 int i; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7216 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7217 if (!file || !(pixmap = calloc(1,sizeof(struct _hpixmap)))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7218 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7219 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7220 strcpy(file, filename); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7221 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7222 /* check if we can read from this file (it exists and read permission) */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7223 if(access(file, 04) != 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7224 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7225 /* Try with various extentions */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7226 for ( i = 0; i < NUM_EXTS; i++ ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7227 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7228 strcpy( file, filename ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7229 strcat( file, image_exts[i] ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7230 if ( access( file, 04 ) == 0 ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7231 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7232 found_ext = 1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7233 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7234 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7235 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7236 if ( found_ext == 0 ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7237 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7238 free(pixmap); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7239 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7240 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7241 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7242 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7243 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7244 pixmap->pixbuf = gdk_pixbuf_new_from_file(file, NULL); |
815
c1e93dd575a5
Initial implementation of a slightly disjointed dual cairo_surface gdkpixbuf image model.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
814
diff
changeset
|
7245 pixmap->image = cairo_image_surface_create_from_png(file); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7246 pixmap->width = gdk_pixbuf_get_width(pixmap->pixbuf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7247 pixmap->height = gdk_pixbuf_get_height(pixmap->pixbuf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7248 pixmap->handle = handle; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7249 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7250 return pixmap; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7251 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7252 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7253 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7254 * Creates a pixmap from data |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7255 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7256 * handle: Window handle the pixmap is associated with. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7257 * data: Source of image data |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7258 * DW pick the appropriate file extension. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7259 * (BMP on OS/2 or Windows, XPM on Unix) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7260 * Returns: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7261 * A handle to a pixmap or NULL on failure. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7262 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7263 HPIXMAP dw_pixmap_new_from_data(HWND handle, char *data, int len) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7264 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7265 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7266 char *file; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7267 FILE *fp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7268 HPIXMAP pixmap; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7269 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7270 if (!data || !(pixmap = calloc(1,sizeof(struct _hpixmap)))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7271 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7272 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7273 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7274 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7275 * A real hack; create a temporary file and write the contents |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7276 * of the data to the file |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7277 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7278 file = tmpnam( NULL ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7279 fp = fopen( file, "wb" ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7280 if ( fp ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7281 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7282 fwrite( data, len, 1, fp ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7283 fclose( fp ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7284 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7285 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7286 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7287 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7288 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7289 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7290 pixmap->pixbuf = gdk_pixbuf_new_from_file(file, NULL); |
815
c1e93dd575a5
Initial implementation of a slightly disjointed dual cairo_surface gdkpixbuf image model.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
814
diff
changeset
|
7291 pixmap->image = cairo_image_surface_create_from_png(file); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7292 pixmap->width = gdk_pixbuf_get_width(pixmap->pixbuf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7293 pixmap->height = gdk_pixbuf_get_height(pixmap->pixbuf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7294 /* remove our temporary file */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7295 unlink (file ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7296 pixmap->handle = handle; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7297 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7298 return pixmap; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7299 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7300 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7301 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7302 * Sets the transparent color for a pixmap |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7303 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7304 * pixmap: Handle to a pixmap returned by |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7305 * dw_pixmap_new.. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7306 * color: transparent color |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7307 * Note: This does nothing on GTK+ as transparency |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7308 * is handled automatically |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7309 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7310 void dw_pixmap_set_transparent_color(HPIXMAP pixmap, unsigned long color) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7311 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7312 pixmap = pixmap; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7313 color = color; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7314 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7315 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7316 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7317 * Creates a pixmap from internal resource graphic specified by id. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7318 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7319 * handle: Window handle the pixmap is associated with. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7320 * id: Resource ID associated with requested pixmap. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7321 * Returns: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7322 * A handle to a pixmap or NULL on failure. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7323 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7324 HPIXMAP dw_pixmap_grab(HWND handle, ULONG id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7325 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7326 HPIXMAP pixmap; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7327 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7328 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7329 if (!(pixmap = calloc(1,sizeof(struct _hpixmap)))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7330 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7331 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7332 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7333 DW_MUTEX_LOCK; |
976
ab244c6f9386
Changed HICN to be a pointer type and simplified the icon code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
972
diff
changeset
|
7334 pixmap->pixbuf = gdk_pixbuf_copy(_find_pixbuf((HICN)id, &pixmap->width, &pixmap->height)); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7335 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7336 return pixmap; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7337 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7338 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7339 /* Call this after drawing to the screen to make sure |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7340 * anything you have drawn is visible. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7341 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7342 void dw_flush(void) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7343 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7344 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7345 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7346 /* |
1148
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7347 * Sets the font used by a specified pixmap. |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7348 * Normally the pixmap font is obtained from the associated window handle. |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7349 * However this can be used to override that, or for pixmaps with no window. |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7350 * Parameters: |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7351 * pixmap: Handle to a pixmap returned by dw_pixmap_new() or |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7352 * passed to the application via a callback. |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7353 * fontname: Name and size of the font in the form "size.fontname" |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7354 * Returns: |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7355 * DW_ERROR_NONE on success and DW_ERROR_GENERAL on failure. |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7356 */ |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7357 int API dw_pixmap_set_font(HPIXMAP pixmap, char *fontname) |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7358 { |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7359 if(pixmap && fontname && *fontname) |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7360 { |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7361 char *oldfont = pixmap->font; |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7362 pixmap->font = strdup(fontname); |
1240
3bc6244279c0
Attempt at converting DW style font names on GTK for dw_pixmap_set_font().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1232
diff
changeset
|
7363 _convert_font(pixmap->font); |
1148
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7364 if(oldfont) |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7365 free(oldfont); |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7366 return DW_ERROR_NONE; |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7367 } |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7368 return DW_ERROR_GENERAL; |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7369 } |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7370 |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7371 /* |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7372 * Destroys an allocated pixmap. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7373 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7374 * pixmap: Handle to a pixmap returned by |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7375 * dw_pixmap_new.. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7376 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7377 void dw_pixmap_destroy(HPIXMAP pixmap) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7378 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7379 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7380 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7381 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7382 g_object_unref(G_OBJECT(pixmap->pixbuf)); |
818
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
7383 cairo_surface_destroy(pixmap->image); |
1148
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7384 if(pixmap->font) |
439f276042cc
Implemented dw_pixmap_set_font() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1145
diff
changeset
|
7385 free(pixmap->font); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7386 free(pixmap); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7387 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7388 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7389 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7390 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7391 * Copies from one item to another. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7392 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7393 * dest: Destination window handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7394 * destp: Destination pixmap. (choose only one). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7395 * xdest: X coordinate of destination. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7396 * ydest: Y coordinate of destination. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7397 * width: Width of area to copy. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7398 * height: Height of area to copy. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7399 * src: Source window handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7400 * srcp: Source pixmap. (choose only one). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7401 * xsrc: X coordinate of source. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7402 * ysrc: Y coordinate of source. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7403 */ |
1245
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7404 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) |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7405 { |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7406 dw_pixmap_stretch_bitblt(dest, destp, xdest, ydest, width, height, src, srcp, xsrc, ysrc, -1, -1); |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7407 } |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7408 |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7409 /* |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7410 * Copies from one surface to another allowing for stretching. |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7411 * Parameters: |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7412 * dest: Destination window handle. |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7413 * destp: Destination pixmap. (choose only one). |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7414 * xdest: X coordinate of destination. |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7415 * ydest: Y coordinate of destination. |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7416 * width: Width of the target area. |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7417 * height: Height of the target area. |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7418 * src: Source window handle. |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7419 * srcp: Source pixmap. (choose only one). |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7420 * xsrc: X coordinate of source. |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7421 * ysrc: Y coordinate of source. |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7422 * srcwidth: Width of area to copy. |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7423 * srcheight: Height of area to copy. |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7424 * Returns: |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7425 * DW_ERROR_NONE on success and DW_ERROR_GENERAL on failure. |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7426 */ |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7427 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) |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7428 { |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7429 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7430 cairo_t *cr = NULL; |
1245
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7431 int retval = DW_ERROR_GENERAL; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7432 |
1177
c38ec904b6d3
Fixed dw_pixmap_bitblt() on printing context pixmaps in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1161
diff
changeset
|
7433 if((!dest && (!destp || !destp->image)) || (!src && (!srcp || !srcp->image))) |
1245
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7434 return retval; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7435 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7436 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7437 if(dest) |
818
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
7438 { |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
7439 GdkWindow *window = gtk_widget_get_window(dest); |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
7440 /* Safety check for non-existant windows */ |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
7441 if(!window || !GDK_IS_WINDOW(window)) |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
7442 { |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
7443 DW_MUTEX_UNLOCK; |
1245
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7444 return retval; |
818
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
7445 } |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
7446 cr = gdk_cairo_create(window); |
c17634e2b303
More safety checks in the drawing functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
817
diff
changeset
|
7447 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7448 else if(destp) |
816
916002e29d4c
Implemented dw_pixmap_bitblt() with cairo surfaces instead of pixbufs.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
815
diff
changeset
|
7449 cr = cairo_create(destp->image); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
7450 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7451 if(cr) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7452 { |
1245
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7453 double xscale = 1, yscale = 1; |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7454 |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7455 if(srcwidth != -1 && srcheight != -1) |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7456 { |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7457 xscale = (double)width / (double)srcwidth; |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7458 yscale = (double)height / (double)srcheight; |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7459 cairo_scale(cr, xscale, yscale); |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7460 } |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7461 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7462 if(src) |
1245
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7463 gdk_cairo_set_source_window (cr, gtk_widget_get_window(src), (xdest + xsrc) / xscale, (ydest + ysrc) / yscale); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7464 else if(srcp) |
1245
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7465 cairo_set_source_surface (cr, srcp->image, (xdest + xsrc) / xscale, (ydest + ysrc) / yscale); |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7466 |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7467 cairo_rectangle(cr, xdest / xscale, ydest / yscale, width, height); |
959
37f2938ecd72
Fixes for bitblts with clipping and offset on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
900
diff
changeset
|
7468 cairo_fill(cr); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7469 cairo_destroy(cr); |
1245
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7470 retval = DW_ERROR_NONE; |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7471 } |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7472 DW_MUTEX_UNLOCK; |
3a2ffe3a7eae
Implemented dw_pixmap_stretch_bitblt() on GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1240
diff
changeset
|
7473 return retval; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7474 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7475 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7476 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7477 * Emits a beep. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7478 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7479 * freq: Frequency. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7480 * dur: Duration. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7481 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7482 void dw_beep(int freq, int dur) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7483 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7484 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7485 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7486 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7487 gdk_beep(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7488 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7489 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7490 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7491 void _my_strlwr(char *buf) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7492 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7493 int z, len = strlen(buf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7494 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7495 for(z=0;z<len;z++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7496 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7497 if(buf[z] >= 'A' && buf[z] <= 'Z') |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7498 buf[z] -= 'A' - 'a'; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7499 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7500 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7501 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7502 /* Open a shared library and return a handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7503 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7504 * name: Base name of the shared library. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7505 * handle: Pointer to a module handle, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7506 * will be filled in with the handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7507 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7508 int dw_module_load(char *name, HMOD *handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7509 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7510 int len; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7511 char *newname; |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
7512 char errorbuf[1025] = {0}; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7513 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7514 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7515 if(!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7516 return -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7517 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7518 if((len = strlen(name)) == 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7519 return -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7520 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7521 /* Lenth + "lib" + ".so" + NULL */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7522 newname = malloc(len + 7); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7523 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7524 if(!newname) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7525 return -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7526 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7527 sprintf(newname, "lib%s.so", name); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7528 _my_strlwr(newname); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7529 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7530 *handle = dlopen(newname, RTLD_NOW); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7531 if(*handle == NULL) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7532 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7533 strncpy(errorbuf, dlerror(), 1024); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7534 printf("%s\n", errorbuf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7535 sprintf(newname, "lib%s.so", name); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7536 *handle = dlopen(newname, RTLD_NOW); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7537 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7538 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7539 free(newname); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7540 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7541 return (NULL == *handle) ? -1 : 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7542 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7543 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7544 /* Queries the address of a symbol within open handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7545 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7546 * handle: Module handle returned by dw_module_load() |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7547 * name: Name of the symbol you want the address of. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7548 * func: A pointer to a function pointer, to obtain |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7549 * the address. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7550 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7551 int dw_module_symbol(HMOD handle, char *name, void**func) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7552 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7553 if(!func || !name) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7554 return -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7555 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7556 if(strlen(name) == 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7557 return -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7558 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7559 *func = (void*)dlsym(handle, name); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7560 return (NULL == *func); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7561 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7562 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7563 /* Frees the shared library previously opened. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7564 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7565 * handle: Module handle returned by dw_module_load() |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7566 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7567 int dw_module_close(HMOD handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7568 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7569 if(handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7570 return dlclose(handle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7571 return 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7572 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7573 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7574 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7575 * Returns the handle to an unnamed mutex semaphore. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7576 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7577 HMTX dw_mutex_new(void) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7578 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7579 HMTX mutex = malloc(sizeof(pthread_mutex_t)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7580 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7581 pthread_mutex_init(mutex, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7582 return mutex; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7583 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7584 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7585 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7586 * Closes a semaphore created by dw_mutex_new(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7587 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7588 * mutex: The handle to the mutex returned by dw_mutex_new(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7589 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7590 void dw_mutex_close(HMTX mutex) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7591 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7592 if(mutex) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7593 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7594 pthread_mutex_destroy(mutex); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7595 free(mutex); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7596 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7597 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7598 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7599 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7600 * Tries to gain access to the semaphore, if it can't it blocks. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7601 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7602 * mutex: The handle to the mutex returned by dw_mutex_new(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7603 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7604 void dw_mutex_lock(HMTX mutex) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7605 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7606 /* If we are being called from an event handler we must release |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7607 * the GTK mutex so we don't deadlock. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7608 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7609 if(pthread_self() == _dw_thread) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7610 gdk_threads_leave(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7611 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7612 pthread_mutex_lock(mutex); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7613 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7614 /* And of course relock it when we have acquired the mutext */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7615 if(pthread_self() == _dw_thread) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7616 gdk_threads_enter(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7617 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7618 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7619 /* |
1158
f86f556ff29d
Added dw_mutex_trylock() that functions like dw_mutex_lock() except
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1156
diff
changeset
|
7620 * Tries to gain access to the semaphore. |
f86f556ff29d
Added dw_mutex_trylock() that functions like dw_mutex_lock() except
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1156
diff
changeset
|
7621 * Parameters: |
f86f556ff29d
Added dw_mutex_trylock() that functions like dw_mutex_lock() except
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1156
diff
changeset
|
7622 * mutex: The handle to the mutex returned by dw_mutex_new(). |
f86f556ff29d
Added dw_mutex_trylock() that functions like dw_mutex_lock() except
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1156
diff
changeset
|
7623 * Returns: |
f86f556ff29d
Added dw_mutex_trylock() that functions like dw_mutex_lock() except
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1156
diff
changeset
|
7624 * DW_ERROR_NONE on success, DW_ERROR_TIMEOUT if it is already locked. |
f86f556ff29d
Added dw_mutex_trylock() that functions like dw_mutex_lock() except
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1156
diff
changeset
|
7625 */ |
f86f556ff29d
Added dw_mutex_trylock() that functions like dw_mutex_lock() except
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1156
diff
changeset
|
7626 int API dw_mutex_trylock(HMTX mutex) |
f86f556ff29d
Added dw_mutex_trylock() that functions like dw_mutex_lock() except
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1156
diff
changeset
|
7627 { |
f86f556ff29d
Added dw_mutex_trylock() that functions like dw_mutex_lock() except
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1156
diff
changeset
|
7628 if(pthread_mutex_trylock(mutex) == 0) |
f86f556ff29d
Added dw_mutex_trylock() that functions like dw_mutex_lock() except
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1156
diff
changeset
|
7629 return DW_ERROR_NONE; |
f86f556ff29d
Added dw_mutex_trylock() that functions like dw_mutex_lock() except
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1156
diff
changeset
|
7630 return DW_ERROR_TIMEOUT; |
f86f556ff29d
Added dw_mutex_trylock() that functions like dw_mutex_lock() except
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1156
diff
changeset
|
7631 } |
f86f556ff29d
Added dw_mutex_trylock() that functions like dw_mutex_lock() except
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1156
diff
changeset
|
7632 |
f86f556ff29d
Added dw_mutex_trylock() that functions like dw_mutex_lock() except
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1156
diff
changeset
|
7633 /* |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7634 * Reliquishes the access to the semaphore. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7635 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7636 * mutex: The handle to the mutex returned by dw_mutex_new(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7637 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7638 void dw_mutex_unlock(HMTX mutex) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7639 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7640 pthread_mutex_unlock(mutex); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7641 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7642 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7643 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7644 * Returns the handle to an unnamed event semaphore. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7645 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7646 HEV dw_event_new(void) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7647 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7648 HEV eve = (HEV)malloc(sizeof(struct _dw_unix_event)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7649 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7650 if(!eve) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7651 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7652 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7653 /* We need to be careful here, mutexes on Linux are |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7654 * FAST by default but are error checking on other |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7655 * systems such as FreeBSD and OS/2, perhaps others. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7656 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7657 pthread_mutex_init (&(eve->mutex), NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7658 pthread_mutex_lock (&(eve->mutex)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7659 pthread_cond_init (&(eve->event), NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7660 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7661 pthread_mutex_unlock (&(eve->mutex)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7662 eve->alive = 1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7663 eve->posted = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7664 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7665 return eve; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7666 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7667 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7668 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7669 * Resets a semaphore created by dw_event_new(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7670 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7671 * eve: The handle to the event returned by dw_event_new(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7672 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7673 int dw_event_reset (HEV eve) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7674 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7675 if(!eve) |
986
87dc0f5f96d0
Fix return type of dw_listbox_selected() to be "int" instead of "unsigned int" to allow -1 return.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
976
diff
changeset
|
7676 return DW_ERROR_NON_INIT; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7677 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7678 pthread_mutex_lock (&(eve->mutex)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7679 pthread_cond_broadcast (&(eve->event)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7680 pthread_cond_init (&(eve->event), NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7681 eve->posted = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7682 pthread_mutex_unlock (&(eve->mutex)); |
986
87dc0f5f96d0
Fix return type of dw_listbox_selected() to be "int" instead of "unsigned int" to allow -1 return.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
976
diff
changeset
|
7683 return DW_ERROR_NONE; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7684 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7685 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7686 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7687 * Posts a semaphore created by dw_event_new(). Causing all threads |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7688 * waiting on this event in dw_event_wait to continue. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7689 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7690 * eve: The handle to the event returned by dw_event_new(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7691 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7692 int dw_event_post (HEV eve) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7693 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7694 if(!eve) |
986
87dc0f5f96d0
Fix return type of dw_listbox_selected() to be "int" instead of "unsigned int" to allow -1 return.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
976
diff
changeset
|
7695 return DW_ERROR_NON_INIT; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7696 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7697 pthread_mutex_lock (&(eve->mutex)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7698 pthread_cond_broadcast (&(eve->event)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7699 eve->posted = 1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7700 pthread_mutex_unlock (&(eve->mutex)); |
986
87dc0f5f96d0
Fix return type of dw_listbox_selected() to be "int" instead of "unsigned int" to allow -1 return.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
976
diff
changeset
|
7701 return DW_ERROR_NONE; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7702 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7703 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7704 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7705 * Waits on a semaphore created by dw_event_new(), until the |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7706 * event gets posted or until the timeout expires. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7707 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7708 * eve: The handle to the event returned by dw_event_new(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7709 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7710 int dw_event_wait(HEV eve, unsigned long timeout) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7711 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7712 int rc; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7713 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7714 if(!eve) |
986
87dc0f5f96d0
Fix return type of dw_listbox_selected() to be "int" instead of "unsigned int" to allow -1 return.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
976
diff
changeset
|
7715 return DW_ERROR_NON_INIT; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7716 |
1203
fc87309372ef
Same fix for GTK2/3 as I just committed for the Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1191
diff
changeset
|
7717 pthread_mutex_lock (&(eve->mutex)); |
fc87309372ef
Same fix for GTK2/3 as I just committed for the Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1191
diff
changeset
|
7718 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7719 if(eve->posted) |
1203
fc87309372ef
Same fix for GTK2/3 as I just committed for the Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1191
diff
changeset
|
7720 { |
fc87309372ef
Same fix for GTK2/3 as I just committed for the Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1191
diff
changeset
|
7721 pthread_mutex_unlock (&(eve->mutex)); |
fc87309372ef
Same fix for GTK2/3 as I just committed for the Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1191
diff
changeset
|
7722 return DW_ERROR_NONE; |
fc87309372ef
Same fix for GTK2/3 as I just committed for the Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1191
diff
changeset
|
7723 } |
fc87309372ef
Same fix for GTK2/3 as I just committed for the Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1191
diff
changeset
|
7724 |
1156
03b6d9fdfac0
Fixed a typo on Unix... timeout not time.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1155
diff
changeset
|
7725 if(timeout != -1) |
1155
e6a2f57c0842
Added support for infinite wait for dw_event_wait() on Mac, Unix and Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1152
diff
changeset
|
7726 { |
e6a2f57c0842
Added support for infinite wait for dw_event_wait() on Mac, Unix and Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1152
diff
changeset
|
7727 struct timeval now; |
e6a2f57c0842
Added support for infinite wait for dw_event_wait() on Mac, Unix and Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1152
diff
changeset
|
7728 struct timespec timeo; |
e6a2f57c0842
Added support for infinite wait for dw_event_wait() on Mac, Unix and Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1152
diff
changeset
|
7729 |
e6a2f57c0842
Added support for infinite wait for dw_event_wait() on Mac, Unix and Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1152
diff
changeset
|
7730 gettimeofday(&now, 0); |
e6a2f57c0842
Added support for infinite wait for dw_event_wait() on Mac, Unix and Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1152
diff
changeset
|
7731 timeo.tv_sec = now.tv_sec + (timeout / 1000); |
e6a2f57c0842
Added support for infinite wait for dw_event_wait() on Mac, Unix and Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1152
diff
changeset
|
7732 timeo.tv_nsec = now.tv_usec * 1000; |
e6a2f57c0842
Added support for infinite wait for dw_event_wait() on Mac, Unix and Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1152
diff
changeset
|
7733 rc = pthread_cond_timedwait(&(eve->event), &(eve->mutex), &timeo); |
e6a2f57c0842
Added support for infinite wait for dw_event_wait() on Mac, Unix and Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1152
diff
changeset
|
7734 } |
e6a2f57c0842
Added support for infinite wait for dw_event_wait() on Mac, Unix and Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1152
diff
changeset
|
7735 else |
e6a2f57c0842
Added support for infinite wait for dw_event_wait() on Mac, Unix and Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1152
diff
changeset
|
7736 rc = pthread_cond_wait(&(eve->event), &(eve->mutex)); |
e6a2f57c0842
Added support for infinite wait for dw_event_wait() on Mac, Unix and Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1152
diff
changeset
|
7737 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7738 pthread_mutex_unlock (&(eve->mutex)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7739 if(!rc) |
986
87dc0f5f96d0
Fix return type of dw_listbox_selected() to be "int" instead of "unsigned int" to allow -1 return.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
976
diff
changeset
|
7740 return DW_ERROR_NONE; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7741 if(rc == ETIMEDOUT) |
986
87dc0f5f96d0
Fix return type of dw_listbox_selected() to be "int" instead of "unsigned int" to allow -1 return.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
976
diff
changeset
|
7742 return DW_ERROR_TIMEOUT; |
87dc0f5f96d0
Fix return type of dw_listbox_selected() to be "int" instead of "unsigned int" to allow -1 return.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
976
diff
changeset
|
7743 return DW_ERROR_GENERAL; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7744 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7745 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7746 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7747 * Closes a semaphore created by dw_event_new(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7748 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7749 * eve: The handle to the event returned by dw_event_new(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7750 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7751 int dw_event_close(HEV *eve) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7752 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7753 if(!eve || !(*eve)) |
986
87dc0f5f96d0
Fix return type of dw_listbox_selected() to be "int" instead of "unsigned int" to allow -1 return.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
976
diff
changeset
|
7754 return DW_ERROR_NON_INIT; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7755 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7756 pthread_mutex_lock (&((*eve)->mutex)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7757 pthread_cond_destroy (&((*eve)->event)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7758 pthread_mutex_unlock (&((*eve)->mutex)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7759 pthread_mutex_destroy (&((*eve)->mutex)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7760 free(*eve); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7761 *eve = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7762 |
986
87dc0f5f96d0
Fix return type of dw_listbox_selected() to be "int" instead of "unsigned int" to allow -1 return.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
976
diff
changeset
|
7763 return DW_ERROR_NONE; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7764 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7765 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7766 struct _seminfo { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7767 int fd; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7768 int waiting; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7769 }; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7770 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7771 static void _handle_sem(int *tmpsock) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7772 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7773 fd_set rd; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7774 struct _seminfo *array = (struct _seminfo *)malloc(sizeof(struct _seminfo)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7775 int listenfd = tmpsock[0]; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7776 int bytesread, connectcount = 1, maxfd, z, posted = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7777 char command; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7778 sigset_t mask; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7779 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7780 sigfillset(&mask); /* Mask all allowed signals */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7781 pthread_sigmask(SIG_BLOCK, &mask, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7782 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7783 /* problems */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7784 if(tmpsock[1] == -1) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7785 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7786 free(array); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7787 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7788 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7789 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7790 array[0].fd = tmpsock[1]; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7791 array[0].waiting = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7792 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7793 /* Free the memory allocated in dw_named_event_new. */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7794 free(tmpsock); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7795 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7796 while(1) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7797 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7798 FD_ZERO(&rd); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7799 FD_SET(listenfd, &rd); |
1106
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
7800 int result; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7801 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7802 maxfd = listenfd; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7803 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7804 /* Added any connections to the named event semaphore */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7805 for(z=0;z<connectcount;z++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7806 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7807 if(array[z].fd > maxfd) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7808 maxfd = array[z].fd; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7809 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7810 FD_SET(array[z].fd, &rd); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7811 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7812 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7813 if(select(maxfd+1, &rd, NULL, NULL, NULL) == -1) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7814 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7815 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7816 if(FD_ISSET(listenfd, &rd)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7817 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7818 struct _seminfo *newarray; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7819 int newfd = accept(listenfd, 0, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7820 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7821 if(newfd > -1) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7822 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7823 /* Add new connections to the set */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7824 newarray = (struct _seminfo *)malloc(sizeof(struct _seminfo)*(connectcount+1)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7825 memcpy(newarray, array, sizeof(struct _seminfo)*(connectcount)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7826 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7827 newarray[connectcount].fd = newfd; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7828 newarray[connectcount].waiting = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7829 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7830 connectcount++; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7831 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7832 /* Replace old array with new one */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7833 free(array); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7834 array = newarray; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7835 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7836 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7837 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7838 /* Handle any events posted to the semaphore */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7839 for(z=0;z<connectcount;z++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7840 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7841 if(FD_ISSET(array[z].fd, &rd)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7842 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7843 if((bytesread = read(array[z].fd, &command, 1)) < 1) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7844 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7845 struct _seminfo *newarray; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7846 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7847 /* Remove this connection from the set */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7848 newarray = (struct _seminfo *)malloc(sizeof(struct _seminfo)*(connectcount-1)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7849 if(!z) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7850 memcpy(newarray, &array[1], sizeof(struct _seminfo)*(connectcount-1)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7851 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7852 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7853 memcpy(newarray, array, sizeof(struct _seminfo)*z); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7854 if(z!=(connectcount-1)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7855 memcpy(&newarray[z], &array[z+1], sizeof(struct _seminfo)*(z-connectcount-1)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7856 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7857 connectcount--; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7858 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7859 /* Replace old array with new one */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7860 free(array); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7861 array = newarray; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7862 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7863 else if(bytesread == 1) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7864 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7865 switch(command) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7866 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7867 case 0: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7868 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7869 /* Reset */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7870 posted = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7871 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7872 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7873 case 1: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7874 /* Post */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7875 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7876 int s; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7877 char tmp = (char)0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7878 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7879 posted = 1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7880 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7881 for(s=0;s<connectcount;s++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7882 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7883 /* The semaphore has been posted so |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7884 * we tell all the waiting threads to |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7885 * continue. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7886 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7887 if(array[s].waiting) |
1106
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
7888 result = write(array[s].fd, &tmp, 1); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7889 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7890 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7891 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7892 case 2: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7893 /* Wait */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7894 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7895 char tmp = (char)0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7896 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7897 array[z].waiting = 1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7898 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7899 /* If we are posted exit immeditately */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7900 if(posted) |
1106
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
7901 result = write(array[z].fd, &tmp, 1); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7902 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7903 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7904 case 3: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7905 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7906 /* Done Waiting */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7907 array[z].waiting = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7908 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7909 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7910 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7911 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7912 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7913 } |
1124
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
7914 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7915 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7916 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7917 /* Using domain sockets on unix for IPC */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7918 /* Create a named event semaphore which can be |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7919 * opened from other processes. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7920 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7921 * eve: Pointer to an event handle to receive handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7922 * name: Name given to semaphore which can be opened |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7923 * by other processes. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7924 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7925 HEV dw_named_event_new(char *name) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7926 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7927 struct sockaddr_un un; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7928 int ev, *tmpsock = (int *)malloc(sizeof(int)*2); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7929 DWTID dwthread; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7930 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7931 if(!tmpsock) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7932 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7933 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7934 tmpsock[0] = socket(AF_UNIX, SOCK_STREAM, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7935 ev = socket(AF_UNIX, SOCK_STREAM, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7936 memset(&un, 0, sizeof(un)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7937 un.sun_family=AF_UNIX; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7938 mkdir("/tmp/.dw", S_IWGRP|S_IWOTH); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7939 strcpy(un.sun_path, "/tmp/.dw/"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7940 strcat(un.sun_path, name); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7941 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7942 /* just to be safe, this should be changed |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7943 * to support multiple instances. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7944 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7945 remove(un.sun_path); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7946 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7947 bind(tmpsock[0], (struct sockaddr *)&un, sizeof(un)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7948 listen(tmpsock[0], 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7949 connect(ev, (struct sockaddr *)&un, sizeof(un)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7950 tmpsock[1] = accept(tmpsock[0], 0, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7951 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7952 if(tmpsock[0] < 0 || tmpsock[1] < 0 || ev < 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7953 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7954 if(tmpsock[0] > -1) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7955 close(tmpsock[0]); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7956 if(tmpsock[1] > -1) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7957 close(tmpsock[1]); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7958 if(ev > -1) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7959 close(ev); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7960 free(tmpsock); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7961 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7962 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7963 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7964 /* Create a thread to handle this event semaphore */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7965 pthread_create(&dwthread, NULL, (void *)_handle_sem, (void *)tmpsock); |
1106
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
7966 return GINT_TO_POINTER(ev); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7967 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7968 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7969 /* Open an already existing named event semaphore. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7970 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7971 * eve: Pointer to an event handle to receive handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7972 * name: Name given to semaphore which can be opened |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7973 * by other processes. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7974 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7975 HEV dw_named_event_get(char *name) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7976 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7977 struct sockaddr_un un; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7978 int ev = socket(AF_UNIX, SOCK_STREAM, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7979 if(ev < 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7980 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7981 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7982 un.sun_family=AF_UNIX; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7983 mkdir("/tmp/.dw", S_IWGRP|S_IWOTH); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7984 strcpy(un.sun_path, "/tmp/.dw/"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7985 strcat(un.sun_path, name); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7986 connect(ev, (struct sockaddr *)&un, sizeof(un)); |
1106
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
7987 return GINT_TO_POINTER(ev); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7988 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7989 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7990 /* Resets the event semaphore so threads who call wait |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7991 * on this semaphore will block. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7992 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7993 * eve: Handle to the semaphore obtained by |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7994 * an open or create call. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7995 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7996 int dw_named_event_reset(HEV eve) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7997 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7998 /* signal reset */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
7999 char tmp = (char)0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8000 |
1106
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8001 if(GPOINTER_TO_INT(eve) < 0) |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8002 return DW_ERROR_NONE; |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8003 |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8004 if(write(GPOINTER_TO_INT(eve), &tmp, 1) == 1) |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8005 return DW_ERROR_NONE; |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8006 return DW_ERROR_GENERAL; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8007 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8008 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8009 /* Sets the posted state of an event semaphore, any threads |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8010 * waiting on the semaphore will no longer block. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8011 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8012 * eve: Handle to the semaphore obtained by |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8013 * an open or create call. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8014 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8015 int dw_named_event_post(HEV eve) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8016 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8017 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8018 /* signal post */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8019 char tmp = (char)1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8020 |
1106
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8021 if(GPOINTER_TO_INT(eve) < 0) |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8022 return DW_ERROR_NONE; |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8023 |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8024 if(write(GPOINTER_TO_INT(eve), &tmp, 1) == 1) |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8025 return DW_ERROR_NONE; |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8026 return DW_ERROR_GENERAL; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8027 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8028 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8029 /* Waits on the specified semaphore until it becomes |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8030 * posted, or returns immediately if it already is posted. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8031 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8032 * eve: Handle to the semaphore obtained by |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8033 * an open or create call. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8034 * timeout: Number of milliseconds before timing out |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8035 * or -1 if indefinite. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8036 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8037 int dw_named_event_wait(HEV eve, unsigned long timeout) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8038 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8039 fd_set rd; |
1155
e6a2f57c0842
Added support for infinite wait for dw_event_wait() on Mac, Unix and Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1152
diff
changeset
|
8040 struct timeval tv, *useme = NULL; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8041 int retval = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8042 char tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8043 |
1106
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8044 if(GPOINTER_TO_INT(eve) < 0) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8045 return DW_ERROR_NON_INIT; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8046 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8047 /* Set the timout or infinite */ |
1155
e6a2f57c0842
Added support for infinite wait for dw_event_wait() on Mac, Unix and Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1152
diff
changeset
|
8048 if(timeout != -1) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8049 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8050 tv.tv_sec = timeout / 1000; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8051 tv.tv_usec = timeout % 1000; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8052 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8053 useme = &tv; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8054 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8055 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8056 FD_ZERO(&rd); |
1106
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8057 FD_SET(GPOINTER_TO_INT(eve), &rd); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8058 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8059 /* Signal wait */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8060 tmp = (char)2; |
1106
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8061 retval = write(GPOINTER_TO_INT(eve), &tmp, 1); |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8062 |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8063 if(retval == 1) |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8064 retval = select(GPOINTER_TO_INT(eve)+1, &rd, NULL, NULL, useme); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8065 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8066 /* Signal done waiting. */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8067 tmp = (char)3; |
1106
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8068 if(retval == 1) |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8069 retval = write(GPOINTER_TO_INT(eve), &tmp, 1); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8070 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8071 if(retval == 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8072 return DW_ERROR_TIMEOUT; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8073 else if(retval == -1) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8074 return DW_ERROR_INTERRUPT; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8075 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8076 /* Clear the entry from the pipe so |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8077 * we don't loop endlessly. :) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8078 */ |
1106
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8079 if(read(GPOINTER_TO_INT(eve), &tmp, 1) == 1) |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8080 return DW_ERROR_NONE; |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8081 return DW_ERROR_GENERAL; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8082 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8083 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8084 /* Release this semaphore, if there are no more open |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8085 * handles on this semaphore the semaphore will be destroyed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8086 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8087 * eve: Handle to the semaphore obtained by |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8088 * an open or create call. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8089 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8090 int dw_named_event_close(HEV eve) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8091 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8092 /* Finally close the domain socket, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8093 * cleanup will continue in _handle_sem. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8094 */ |
1106
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8095 close(GPOINTER_TO_INT(eve)); |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8096 return DW_ERROR_NONE; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8097 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8098 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8099 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8100 * Setup thread independent color sets. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8101 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8102 void _dwthreadstart(void *data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8103 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8104 void (*threadfunc)(void *) = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8105 void **tmp = (void **)data; |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
8106 GdkColor *foreground, *background; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8107 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8108 threadfunc = (void (*)(void *))tmp[0]; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
8109 |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
8110 /* Initialize colors */ |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
8111 _init_thread(); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
8112 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8113 threadfunc(tmp[1]); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8114 free(tmp); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
8115 |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
8116 /* Free colors */ |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
8117 if((foreground = pthread_getspecific(_dw_fg_color_key))) |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
8118 free(foreground); |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
8119 if((background = pthread_getspecific(_dw_bg_color_key))) |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
8120 free(background); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8121 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8122 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8123 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8124 * Allocates a shared memory region with a name. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8125 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8126 * handle: A pointer to receive a SHM identifier. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8127 * dest: A pointer to a pointer to receive the memory address. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8128 * size: Size in bytes of the shared memory region to allocate. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8129 * name: A string pointer to a unique memory name. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8130 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8131 HSHM dw_named_memory_new(void **dest, int size, char *name) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8132 { |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
8133 char namebuf[1025]; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8134 struct _dw_unix_shm *handle = malloc(sizeof(struct _dw_unix_shm)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8135 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8136 mkdir("/tmp/.dw", S_IWGRP|S_IWOTH); |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
8137 snprintf(namebuf, 1024, "/tmp/.dw/%s", name); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8138 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8139 if((handle->fd = open(namebuf, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR)) < 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8140 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8141 free(handle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8142 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8143 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8144 |
1106
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8145 if(ftruncate(handle->fd, size)) |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8146 { |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8147 close(handle->fd); |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8148 free(handle); |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8149 return NULL; |
eb6b27d17fe7
Fixed the 64bit warnings in GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1097
diff
changeset
|
8150 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8151 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8152 /* attach the shared memory segment to our process's address space. */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8153 *dest = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, handle->fd, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8154 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8155 if(*dest == MAP_FAILED) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8156 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8157 close(handle->fd); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8158 *dest = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8159 free(handle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8160 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8161 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8162 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8163 handle->size = size; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8164 handle->sid = getsid(0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8165 handle->path = strdup(namebuf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8166 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8167 return handle; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8168 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8169 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8170 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8171 * Aquires shared memory region with a name. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8172 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8173 * dest: A pointer to a pointer to receive the memory address. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8174 * size: Size in bytes of the shared memory region to requested. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8175 * name: A string pointer to a unique memory name. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8176 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8177 HSHM dw_named_memory_get(void **dest, int size, char *name) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8178 { |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
8179 char namebuf[1025]; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8180 struct _dw_unix_shm *handle = malloc(sizeof(struct _dw_unix_shm)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8181 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8182 mkdir("/tmp/.dw", S_IWGRP|S_IWOTH); |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
8183 snprintf(namebuf, 1024, "/tmp/.dw/%s", name); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8184 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8185 if((handle->fd = open(namebuf, O_RDWR)) < 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8186 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8187 free(handle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8188 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8189 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8190 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8191 /* attach the shared memory segment to our process's address space. */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8192 *dest = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, handle->fd, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8193 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8194 if(*dest == MAP_FAILED) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8195 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8196 close(handle->fd); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8197 *dest = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8198 free(handle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8199 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8200 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8201 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8202 handle->size = size; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8203 handle->sid = -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8204 handle->path = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8205 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8206 return handle; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8207 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8208 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8209 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8210 * Frees a shared memory region previously allocated. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8211 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8212 * handle: Handle obtained from DB_named_memory_allocate. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8213 * ptr: The memory address aquired with DB_named_memory_allocate. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8214 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8215 int dw_named_memory_free(HSHM handle, void *ptr) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8216 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8217 struct _dw_unix_shm *h = handle; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8218 int rc = munmap(ptr, h->size); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8219 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8220 close(h->fd); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8221 if(h->path) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8222 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8223 /* Only remove the actual file if we are the |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8224 * creator of the file. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8225 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8226 if(h->sid != -1 && h->sid == getsid(0)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8227 remove(h->path); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8228 free(h->path); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8229 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8230 return rc; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8231 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8232 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8233 * Creates a new thread with a starting point of func. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8234 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8235 * func: Function which will be run in the new thread. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8236 * data: Parameter(s) passed to the function. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8237 * stack: Stack size of new thread (OS/2 and Windows only). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8238 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8239 DWTID dw_thread_new(void *func, void *data, int stack) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8240 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8241 DWTID gtkthread; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8242 void **tmp = malloc(sizeof(void *) * 2); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8243 int rc; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8244 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8245 tmp[0] = func; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8246 tmp[1] = data; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8247 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8248 rc = pthread_create(>kthread, NULL, (void *)_dwthreadstart, (void *)tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8249 if ( rc == 0 ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8250 return gtkthread; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8251 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8252 return rc; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8253 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8254 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8255 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8256 * Ends execution of current thread immediately. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8257 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8258 void dw_thread_end(void) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8259 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8260 pthread_exit(NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8261 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8262 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8263 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8264 * Returns the current thread's ID. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8265 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8266 DWTID dw_thread_id(void) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8267 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8268 return (DWTID)pthread_self(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8269 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8270 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8271 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8272 * Cleanly terminates a DW session, should be signal handler safe. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8273 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8274 * exitcode: Exit code reported to the operating system. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8275 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8276 void dw_exit(int exitcode) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8277 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8278 exit(exitcode); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8279 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8280 |
1087
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8281 /* Internal box packing function called by the other 3 functions */ |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8282 void _dw_box_pack(HWND box, HWND item, int index, int width, int height, int hsize, int vsize, int pad, char *funcname) |
1080
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8283 { |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8284 int warn = FALSE, _locked_by_me = FALSE; |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8285 GtkWidget *tmp, *tmpitem, *image = NULL; |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8286 |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8287 if(!box) |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8288 return; |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8289 |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8290 /* |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8291 * If you try and pack an item into itself VERY bad things can happen; like at least an |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8292 * infinite loop on GTK! Lets be safe! |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8293 */ |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8294 if(box == item) |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8295 { |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8296 dw_messagebox(funcname, DW_MB_OK|DW_MB_ERROR, "Danger! Danger! Will Robinson; box and item are the same!"); |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8297 return; |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8298 } |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8299 |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8300 DW_MUTEX_LOCK; |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8301 |
1451
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
8302 /* If this is a special box, like: Window, Groupbox, Scrollbox... |
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
8303 * get the internal box handle. |
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
8304 */ |
1080
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8305 if((tmp = g_object_get_data(G_OBJECT(box), "_dw_boxhandle"))) |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8306 box = tmp; |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8307 |
1451
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
8308 /* Can't pack nothing with GTK, so create an empty label */ |
1080
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8309 if(!item) |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8310 { |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8311 item = gtk_label_new(""); |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8312 gtk_widget_show_all(item); |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8313 } |
1451
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
8314 /* Due to GTK3 minimum size limitations, if we are packing a widget |
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
8315 * with an image, we need to scale the image down to fit the packed size. |
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
8316 */ |
1080
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8317 else if((image = g_object_get_data(G_OBJECT(item), "_dw_bitmap"))) |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8318 { |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
8319 GdkPixbuf *pixbuf = gtk_image_get_pixbuf(GTK_IMAGE(image)); |
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
8320 |
1080
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8321 if(pixbuf) |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8322 { |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8323 int pwidth = gdk_pixbuf_get_width(pixbuf); |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8324 int pheight = gdk_pixbuf_get_height(pixbuf); |
1426
dfd9f177c34c
Fix incorrect pixbuf scaling on GTK3 when -1 is passed as a parameter
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1414
diff
changeset
|
8325 |
dfd9f177c34c
Fix incorrect pixbuf scaling on GTK3 when -1 is passed as a parameter
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1414
diff
changeset
|
8326 if(width == -1) |
dfd9f177c34c
Fix incorrect pixbuf scaling on GTK3 when -1 is passed as a parameter
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1414
diff
changeset
|
8327 width = pwidth; |
dfd9f177c34c
Fix incorrect pixbuf scaling on GTK3 when -1 is passed as a parameter
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1414
diff
changeset
|
8328 if(height == -1) |
dfd9f177c34c
Fix incorrect pixbuf scaling on GTK3 when -1 is passed as a parameter
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1414
diff
changeset
|
8329 height = pheight; |
1080
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8330 |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8331 if(pwidth > width || pheight > height) |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8332 pixbuf = gdk_pixbuf_scale_simple(pixbuf, pwidth > width ? width : pwidth, pheight > height ? height : pheight, GDK_INTERP_BILINEAR); |
1426
dfd9f177c34c
Fix incorrect pixbuf scaling on GTK3 when -1 is passed as a parameter
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1414
diff
changeset
|
8333 gtk_image_set_from_pixbuf(GTK_IMAGE(image), pixbuf); |
1080
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8334 } |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8335 } |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8336 |
1451
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
8337 /* Check if the item to be packed is a special box */ |
1080
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8338 tmpitem = (GtkWidget *)g_object_get_data(G_OBJECT(item), "_dw_boxhandle"); |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8339 |
1451
95ca625b8ffc
Removed GtkVbox and associated code from top-level windows on GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1429
diff
changeset
|
8340 /* Make sure our target box is valid */ |
1124
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
8341 if(GTK_IS_GRID(box)) |
1080
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8342 { |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
8343 int boxcount = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(box), "_dw_boxcount")); |
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
8344 int boxtype = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(box), "_dw_boxtype")); |
1080
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8345 |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8346 /* If the item being packed is a box, then we use it's padding |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8347 * instead of the padding specified on the pack line, this is |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8348 * due to a bug in the OS/2 and Win32 renderer and a limitation |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8349 * of the GtkTable class. |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8350 */ |
1124
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
8351 if(GTK_IS_GRID(item) || (tmpitem && GTK_IS_GRID(tmpitem))) |
1080
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8352 { |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8353 GtkWidget *eventbox = (GtkWidget *)g_object_get_data(G_OBJECT(item), "_dw_eventbox"); |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8354 |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8355 /* NOTE: I left in the ability to pack boxes with a size, |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8356 * this eliminates that by forcing the size to 0. |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8357 */ |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8358 height = width = 0; |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8359 |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8360 if(eventbox) |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8361 { |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
8362 int boxpad = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(item), "_dw_boxpad")); |
1080
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8363 gtk_container_add(GTK_CONTAINER(eventbox), item); |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8364 gtk_container_set_border_width(GTK_CONTAINER(eventbox), boxpad); |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8365 item = eventbox; |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8366 } |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8367 } |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8368 else |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8369 { |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8370 /* Only show warning if item is not a box */ |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8371 warn = TRUE; |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8372 } |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8373 |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8374 /* Do some sanity bounds checking */ |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8375 if(index < 0) |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8376 index = 0; |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8377 if(index > boxcount) |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8378 index = boxcount; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
8379 |
1124
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
8380 g_object_set_data(G_OBJECT(item), "_dw_table", box); |
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
8381 /* Set the expand attribute on the widgets now instead of the container */ |
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
8382 gtk_widget_set_vexpand(item, vsize); |
1127
ed7cbdc37a75
Widget GTK3 v/halign properties get set according to the sizing flags
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1126
diff
changeset
|
8383 gtk_widget_set_valign(item, vsize ? GTK_ALIGN_FILL : GTK_ALIGN_START); |
1124
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
8384 gtk_widget_set_hexpand(item, hsize); |
1127
ed7cbdc37a75
Widget GTK3 v/halign properties get set according to the sizing flags
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1126
diff
changeset
|
8385 gtk_widget_set_halign(item, hsize ? GTK_ALIGN_FILL : GTK_ALIGN_START); |
1124
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
8386 /* Use the margin property as padding */ |
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
8387 g_object_set(G_OBJECT(item), "margin", pad, NULL); |
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
8388 /* Add to the grid using insert... |
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
8389 * rows for vertical boxes and columns for horizontal. |
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
8390 */ |
1080
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8391 if(boxtype == DW_VERT) |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8392 { |
1126
72a36ef67291
Allow GTK3 support to compile with GTK 3.0 but warn that full support requires 3.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1125
diff
changeset
|
8393 #if GTK_CHECK_VERSION(3,1,0) |
1124
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
8394 gtk_grid_insert_row(GTK_GRID(box), index); |
1126
72a36ef67291
Allow GTK3 support to compile with GTK 3.0 but warn that full support requires 3.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1125
diff
changeset
|
8395 #else |
72a36ef67291
Allow GTK3 support to compile with GTK 3.0 but warn that full support requires 3.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1125
diff
changeset
|
8396 #warning Dynamic Windows GTK3 support requires 3.1 or higher for full support. |
72a36ef67291
Allow GTK3 support to compile with GTK 3.0 but warn that full support requires 3.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1125
diff
changeset
|
8397 #endif |
1124
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
8398 gtk_grid_attach(GTK_GRID(box), item, 0, index, 1, 1); |
1080
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8399 } |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8400 else |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8401 { |
1126
72a36ef67291
Allow GTK3 support to compile with GTK 3.0 but warn that full support requires 3.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1125
diff
changeset
|
8402 #if GTK_CHECK_VERSION(3,1,0) |
1124
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
8403 gtk_grid_insert_column(GTK_GRID(box), index); |
1126
72a36ef67291
Allow GTK3 support to compile with GTK 3.0 but warn that full support requires 3.1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1125
diff
changeset
|
8404 #endif |
1124
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
8405 gtk_grid_attach(GTK_GRID(box), item, index, 0, 1, 1); |
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
8406 } |
1080
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8407 g_object_set_data(G_OBJECT(box), "_dw_boxcount", GINT_TO_POINTER(boxcount + 1)); |
1124
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
8408 /* Set the requested size of the widget */ |
1080
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8409 if(GTK_IS_SCROLLED_WINDOW(item)) |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8410 { |
1413
28210f7941c7
Safety checks for -1 parameter to dw_box_pack*() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1400
diff
changeset
|
8411 if(width > 0) |
28210f7941c7
Safety checks for -1 parameter to dw_box_pack*() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1400
diff
changeset
|
8412 gtk_scrolled_window_set_min_content_width(GTK_SCROLLED_WINDOW(item), width); |
28210f7941c7
Safety checks for -1 parameter to dw_box_pack*() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1400
diff
changeset
|
8413 if(height > 0) |
28210f7941c7
Safety checks for -1 parameter to dw_box_pack*() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1400
diff
changeset
|
8414 gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW(item), height); |
1080
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8415 } |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8416 else |
1414
38c4484f5b90
Don't use natural size on GTK3 for entryfields, spinbuttons and comboboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1413
diff
changeset
|
8417 { |
38c4484f5b90
Don't use natural size on GTK3 for entryfields, spinbuttons and comboboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1413
diff
changeset
|
8418 if(width == -1 && (GTK_IS_COMBO_BOX(item) || GTK_IS_ENTRY(item))) |
38c4484f5b90
Don't use natural size on GTK3 for entryfields, spinbuttons and comboboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1413
diff
changeset
|
8419 gtk_widget_set_size_request(item, 150, height); |
38c4484f5b90
Don't use natural size on GTK3 for entryfields, spinbuttons and comboboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1413
diff
changeset
|
8420 else if(width == -1 && GTK_IS_SPIN_BUTTON(item)) |
38c4484f5b90
Don't use natural size on GTK3 for entryfields, spinbuttons and comboboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1413
diff
changeset
|
8421 gtk_widget_set_size_request(item, 50, height); |
38c4484f5b90
Don't use natural size on GTK3 for entryfields, spinbuttons and comboboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1413
diff
changeset
|
8422 else |
38c4484f5b90
Don't use natural size on GTK3 for entryfields, spinbuttons and comboboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1413
diff
changeset
|
8423 gtk_widget_set_size_request(item, width, height); |
38c4484f5b90
Don't use natural size on GTK3 for entryfields, spinbuttons and comboboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1413
diff
changeset
|
8424 } |
1080
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8425 if(GTK_IS_RADIO_BUTTON(item)) |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8426 { |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8427 GSList *group; |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8428 GtkWidget *groupstart = (GtkWidget *)g_object_get_data(G_OBJECT(box), "_dw_group"); |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8429 |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8430 if(groupstart) |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8431 { |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8432 group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(groupstart)); |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8433 gtk_radio_button_set_group(GTK_RADIO_BUTTON(item), group); |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8434 } |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8435 else |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8436 g_object_set_data(G_OBJECT(box), "_dw_group", (gpointer)item); |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8437 } |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8438 } |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8439 DW_MUTEX_UNLOCK; |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8440 |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8441 if(warn) |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8442 { |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8443 if ( width == 0 && hsize == FALSE ) |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8444 dw_messagebox(funcname, DW_MB_OK|DW_MB_ERROR, "Width and expand Horizonal both unset for box: %x item: %x",box,item); |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8445 if ( height == 0 && vsize == FALSE ) |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8446 dw_messagebox(funcname, DW_MB_OK|DW_MB_ERROR, "Height and expand Vertical both unset for box: %x item: %x",box,item); |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8447 } |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8448 } |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8449 |
27e9a063fbb5
Committing initial version of dw_box_pack_at_index() for GTK2 and GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1076
diff
changeset
|
8450 /* |
1087
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8451 * Pack windows (widgets) into a box at an arbitrary location. |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8452 * Parameters: |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8453 * box: Window handle of the box to be packed into. |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8454 * item: Window handle of the item to be back. |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
8455 * index: 0 based index of packed items. |
1087
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8456 * width: Width in pixels of the item or -1 to be self determined. |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8457 * height: Height in pixels of the item or -1 to be self determined. |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8458 * hsize: TRUE if the window (widget) should expand horizontally to fill space given. |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8459 * vsize: TRUE if the window (widget) should expand vertically to fill space given. |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8460 * pad: Number of pixels of padding around the item. |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8461 */ |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8462 void API dw_box_pack_at_index(HWND box, HWND item, int index, int width, int height, int hsize, int vsize, int pad) |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8463 { |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8464 _dw_box_pack(box, item, index, width, height, hsize, vsize, pad, "dw_box_pack_at_index()"); |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8465 } |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8466 |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8467 /* |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8468 * Pack windows (widgets) into a box from the start (or top). |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8469 * Parameters: |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8470 * box: Window handle of the box to be packed into. |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8471 * item: Window handle of the item to be back. |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8472 * width: Width in pixels of the item or -1 to be self determined. |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8473 * height: Height in pixels of the item or -1 to be self determined. |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8474 * hsize: TRUE if the window (widget) should expand horizontally to fill space given. |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8475 * vsize: TRUE if the window (widget) should expand vertically to fill space given. |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8476 * pad: Number of pixels of padding around the item. |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8477 */ |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8478 void API dw_box_pack_start(HWND box, HWND item, int width, int height, int hsize, int vsize, int pad) |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8479 { |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
8480 /* 65536 is the table limit on GTK... |
1087
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8481 * seems like a high enough value we will never hit it here either. |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8482 */ |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8483 _dw_box_pack(box, item, 65536, width, height, hsize, vsize, pad, "dw_box_pack_start()"); |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8484 } |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8485 |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8486 /* |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8487 * Pack windows (widgets) into a box from the end (or bottom). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8488 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8489 * box: Window handle of the box to be packed into. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8490 * item: Window handle of the item to be back. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8491 * width: Width in pixels of the item or -1 to be self determined. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8492 * height: Height in pixels of the item or -1 to be self determined. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8493 * hsize: TRUE if the window (widget) should expand horizontally to fill space given. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8494 * vsize: TRUE if the window (widget) should expand vertically to fill space given. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8495 * pad: Number of pixels of padding around the item. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8496 */ |
1087
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8497 void API dw_box_pack_end(HWND box, HWND item, int width, int height, int hsize, int vsize, int pad) |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8498 { |
173e49c2270f
Merge all 3 box packing functions into one internal function on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1081
diff
changeset
|
8499 _dw_box_pack(box, item, 0, width, height, hsize, vsize, pad, "dw_box_pack_end()"); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8500 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8501 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8502 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8503 * Sets the size of a given window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8504 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8505 * handle: Window (widget) handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8506 * width: New width in pixels. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8507 * height: New height in pixels. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8508 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8509 void dw_window_set_size(HWND handle, unsigned long width, unsigned long height) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8510 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8511 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8512 long default_width = width - _dw_border_width; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8513 long default_height = height - _dw_border_height; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8514 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8515 if(!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8516 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8517 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8518 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8519 if(GTK_IS_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8520 { |
777
c0e7200dad31
More work on comboboxes, listboxes and containers. Comboboxes now display the list properly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
775
diff
changeset
|
8521 GdkGeometry hints; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
8522 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8523 if ( width == 0 ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8524 default_width = -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8525 if ( height == 0 ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8526 default_height = -1; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
8527 |
777
c0e7200dad31
More work on comboboxes, listboxes and containers. Comboboxes now display the list properly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
775
diff
changeset
|
8528 hints.base_width = hints.base_height = 1; |
c0e7200dad31
More work on comboboxes, listboxes and containers. Comboboxes now display the list properly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
775
diff
changeset
|
8529 hints.min_width = hints.min_height = 8; |
c0e7200dad31
More work on comboboxes, listboxes and containers. Comboboxes now display the list properly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
775
diff
changeset
|
8530 hints.width_inc = hints.height_inc = 1; |
c0e7200dad31
More work on comboboxes, listboxes and containers. Comboboxes now display the list properly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
775
diff
changeset
|
8531 |
c0e7200dad31
More work on comboboxes, listboxes and containers. Comboboxes now display the list properly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
775
diff
changeset
|
8532 gtk_window_set_geometry_hints(GTK_WINDOW(handle), NULL, &hints, GDK_HINT_RESIZE_INC|GDK_HINT_MIN_SIZE|GDK_HINT_BASE_SIZE); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
8533 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8534 if(gtk_widget_get_window(handle) && default_width > 0 && default_height > 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8535 gdk_window_resize(gtk_widget_get_window(handle), default_width , default_height ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8536 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8537 gtk_window_set_default_size(GTK_WINDOW(handle), default_width , default_height ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8538 if(!g_object_get_data(G_OBJECT(handle), "_dw_size")) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8539 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8540 g_object_set_data(G_OBJECT(handle), "_dw_width", GINT_TO_POINTER(default_width) ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8541 g_object_set_data(G_OBJECT(handle), "_dw_height", GINT_TO_POINTER(default_height) ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8542 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8543 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8544 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8545 gtk_widget_set_size_request(handle, width, height); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8546 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8547 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8548 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8549 /* |
1429
fbaec6e5df63
Added dw_window_get_preferred_size() which attempts to determine the size the system wants for the widget. This is useful when creating nice looking layouts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1426
diff
changeset
|
8550 * Gets the size the system thinks the widget should be. |
fbaec6e5df63
Added dw_window_get_preferred_size() which attempts to determine the size the system wants for the widget. This is useful when creating nice looking layouts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1426
diff
changeset
|
8551 * Parameters: |
fbaec6e5df63
Added dw_window_get_preferred_size() which attempts to determine the size the system wants for the widget. This is useful when creating nice looking layouts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1426
diff
changeset
|
8552 * handle: Window handle of the item to be back. |
fbaec6e5df63
Added dw_window_get_preferred_size() which attempts to determine the size the system wants for the widget. This is useful when creating nice looking layouts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1426
diff
changeset
|
8553 * width: Width in pixels of the item or NULL if not needed. |
fbaec6e5df63
Added dw_window_get_preferred_size() which attempts to determine the size the system wants for the widget. This is useful when creating nice looking layouts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1426
diff
changeset
|
8554 * height: Height in pixels of the item or NULL if not needed. |
fbaec6e5df63
Added dw_window_get_preferred_size() which attempts to determine the size the system wants for the widget. This is useful when creating nice looking layouts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1426
diff
changeset
|
8555 */ |
fbaec6e5df63
Added dw_window_get_preferred_size() which attempts to determine the size the system wants for the widget. This is useful when creating nice looking layouts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1426
diff
changeset
|
8556 void API dw_window_get_preferred_size(HWND handle, int *width, int *height) |
fbaec6e5df63
Added dw_window_get_preferred_size() which attempts to determine the size the system wants for the widget. This is useful when creating nice looking layouts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1426
diff
changeset
|
8557 { |
fbaec6e5df63
Added dw_window_get_preferred_size() which attempts to determine the size the system wants for the widget. This is useful when creating nice looking layouts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1426
diff
changeset
|
8558 int _locked_by_me = FALSE; |
fbaec6e5df63
Added dw_window_get_preferred_size() which attempts to determine the size the system wants for the widget. This is useful when creating nice looking layouts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1426
diff
changeset
|
8559 |
fbaec6e5df63
Added dw_window_get_preferred_size() which attempts to determine the size the system wants for the widget. This is useful when creating nice looking layouts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1426
diff
changeset
|
8560 DW_MUTEX_LOCK; |
fbaec6e5df63
Added dw_window_get_preferred_size() which attempts to determine the size the system wants for the widget. This is useful when creating nice looking layouts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1426
diff
changeset
|
8561 if(width) |
fbaec6e5df63
Added dw_window_get_preferred_size() which attempts to determine the size the system wants for the widget. This is useful when creating nice looking layouts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1426
diff
changeset
|
8562 gtk_widget_get_preferred_width(handle, NULL, width); |
fbaec6e5df63
Added dw_window_get_preferred_size() which attempts to determine the size the system wants for the widget. This is useful when creating nice looking layouts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1426
diff
changeset
|
8563 if(height) |
fbaec6e5df63
Added dw_window_get_preferred_size() which attempts to determine the size the system wants for the widget. This is useful when creating nice looking layouts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1426
diff
changeset
|
8564 gtk_widget_get_preferred_height(handle, NULL, height); |
fbaec6e5df63
Added dw_window_get_preferred_size() which attempts to determine the size the system wants for the widget. This is useful when creating nice looking layouts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1426
diff
changeset
|
8565 DW_MUTEX_UNLOCK; |
fbaec6e5df63
Added dw_window_get_preferred_size() which attempts to determine the size the system wants for the widget. This is useful when creating nice looking layouts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1426
diff
changeset
|
8566 } |
fbaec6e5df63
Added dw_window_get_preferred_size() which attempts to determine the size the system wants for the widget. This is useful when creating nice looking layouts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1426
diff
changeset
|
8567 |
fbaec6e5df63
Added dw_window_get_preferred_size() which attempts to determine the size the system wants for the widget. This is useful when creating nice looking layouts.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1426
diff
changeset
|
8568 /* |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8569 * Returns the width of the screen. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8570 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8571 int dw_screen_width(void) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8572 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8573 int retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8574 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8575 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8576 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8577 retval = gdk_screen_width(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8578 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8579 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8580 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8581 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8582 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8583 * Returns the height of the screen. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8584 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8585 int dw_screen_height(void) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8586 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8587 int retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8588 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8589 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8590 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8591 retval = gdk_screen_height(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8592 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8593 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8594 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8595 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8596 /* This should return the current color depth */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8597 unsigned long dw_color_depth_get(void) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8598 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8599 int retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8600 GdkVisual *vis; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8601 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8602 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8603 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8604 vis = gdk_visual_get_system(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8605 retval = gdk_visual_get_depth(vis); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8606 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8607 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8608 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8609 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8610 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8611 * Sets the position of a given window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8612 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8613 * handle: Window (widget) handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8614 * x: X location from the bottom left. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8615 * y: Y location from the bottom left. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8616 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8617 void dw_window_set_pos(HWND handle, long x, long y) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8618 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8619 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8620 GtkWidget *mdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8621 |
1121
fb92778105b2
Fixes some major window positioning problems in GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1118
diff
changeset
|
8622 if(!handle) |
fb92778105b2
Fixes some major window positioning problems in GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1118
diff
changeset
|
8623 return; |
fb92778105b2
Fixes some major window positioning problems in GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1118
diff
changeset
|
8624 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8625 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8626 if((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8627 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8628 gtk_mdi_move(GTK_MDI(mdi), handle, x, y); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8629 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8630 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8631 { |
1121
fb92778105b2
Fixes some major window positioning problems in GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1118
diff
changeset
|
8632 GdkWindow *window = NULL; |
fb92778105b2
Fixes some major window positioning problems in GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1118
diff
changeset
|
8633 |
fb92778105b2
Fixes some major window positioning problems in GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1118
diff
changeset
|
8634 if(GTK_IS_WINDOW(handle)) |
fb92778105b2
Fixes some major window positioning problems in GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1118
diff
changeset
|
8635 gtk_window_move(GTK_WINDOW(handle), x, y); |
fb92778105b2
Fixes some major window positioning problems in GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1118
diff
changeset
|
8636 else if((window = gtk_widget_get_window(handle))) |
fb92778105b2
Fixes some major window positioning problems in GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1118
diff
changeset
|
8637 gdk_window_move(window, x, y); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8638 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8639 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8640 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8641 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8642 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8643 * Sets the position and size of a given window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8644 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8645 * handle: Window (widget) handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8646 * x: X location from the bottom left. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8647 * y: Y location from the bottom left. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8648 * width: Width of the widget. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8649 * height: Height of the widget. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8650 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8651 void dw_window_set_pos_size(HWND handle, long x, long y, unsigned long width, unsigned long height) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8652 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8653 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8654 GtkWidget *mdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8655 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8656 if(!handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8657 return; |
1121
fb92778105b2
Fixes some major window positioning problems in GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1118
diff
changeset
|
8658 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8659 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8660 if((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8661 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8662 gtk_mdi_move(GTK_MDI(mdi), handle, x, y); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8663 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8664 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8665 { |
1121
fb92778105b2
Fixes some major window positioning problems in GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1118
diff
changeset
|
8666 GdkWindow *window = NULL; |
fb92778105b2
Fixes some major window positioning problems in GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1118
diff
changeset
|
8667 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8668 if(GTK_IS_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8669 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8670 dw_window_set_size(handle, width, height); |
1121
fb92778105b2
Fixes some major window positioning problems in GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1118
diff
changeset
|
8671 gtk_window_move(GTK_WINDOW(handle), x, y); |
fb92778105b2
Fixes some major window positioning problems in GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1118
diff
changeset
|
8672 } |
fb92778105b2
Fixes some major window positioning problems in GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1118
diff
changeset
|
8673 else if((window = gtk_widget_get_window(handle))) |
fb92778105b2
Fixes some major window positioning problems in GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1118
diff
changeset
|
8674 { |
fb92778105b2
Fixes some major window positioning problems in GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1118
diff
changeset
|
8675 gdk_window_resize(window, width, height); |
fb92778105b2
Fixes some major window positioning problems in GTK3...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1118
diff
changeset
|
8676 gdk_window_move(window, x, y); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8677 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8678 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8679 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8680 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8681 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8682 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8683 * Gets the position and size of a given window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8684 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8685 * handle: Window (widget) handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8686 * x: X location from the bottom left. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8687 * y: Y location from the bottom left. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8688 * width: Width of the widget. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8689 * height: Height of the widget. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8690 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8691 void dw_window_get_pos_size(HWND handle, long *x, long *y, ULONG *width, ULONG *height) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8692 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8693 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8694 gint gx, gy, gwidth, gheight; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8695 GtkWidget *mdi; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8696 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8697 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8698 if((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8699 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8700 gint myx=0, myy=0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8701 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8702 gtk_mdi_get_pos(GTK_MDI(mdi), handle, &myx, &myy); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8703 *x = myx; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8704 *y = myy; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8705 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8706 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8707 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8708 if(handle && gtk_widget_get_window(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8709 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8710 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8711 gdk_window_get_geometry(gtk_widget_get_window(handle), &gx, &gy, &gwidth, &gheight); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8712 gdk_window_get_root_origin(gtk_widget_get_window(handle), &gx, &gy); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8713 if(x) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8714 *x = gx; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8715 if(y) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8716 *y = gy; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8717 if(GTK_IS_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8718 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8719 if(width) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8720 *width = gwidth + _dw_border_width; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8721 if(height) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8722 *height = gheight + _dw_border_height; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8723 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8724 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8725 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8726 if(width) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8727 *width = gwidth; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8728 if(height) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8729 *height = gheight; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8730 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8731 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8732 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8733 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8734 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8735 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8736 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8737 * Sets the style of a given window (widget). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8738 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8739 * handle: Window (widget) handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8740 * width: New width in pixels. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8741 * height: New height in pixels. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8742 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8743 void dw_window_set_style(HWND handle, unsigned long style, unsigned long mask) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8744 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8745 GtkWidget *handle2 = handle; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8746 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8747 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8748 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8749 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8750 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8751 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8752 if(tmp) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8753 handle2 = tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8754 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8755 else if(GTK_IS_FRAME(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8756 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8757 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_label"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8758 if(tmp && GTK_IS_LABEL(tmp)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8759 handle2 = tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8760 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8761 else if(GTK_IS_BUTTON(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8762 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8763 if(mask & DW_BS_NOBORDER) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8764 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8765 if(style & DW_BS_NOBORDER) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8766 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8767 gtk_button_set_relief((GtkButton *)handle, GTK_RELIEF_NONE); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8768 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8769 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8770 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8771 gtk_button_set_relief((GtkButton *)handle, GTK_RELIEF_NORMAL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8772 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8773 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8774 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8775 if ( GTK_IS_LABEL(handle2) ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8776 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8777 gfloat x=DW_LEFT, y=DW_CENTER; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8778 /* horizontal... */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8779 if ( style & DW_DT_CENTER ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8780 x = DW_CENTER; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8781 if ( style & DW_DT_RIGHT ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8782 x = DW_RIGHT; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8783 if ( style & DW_DT_LEFT ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8784 x = DW_LEFT; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8785 /* vertical... */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8786 if ( style & DW_DT_VCENTER ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8787 y = DW_CENTER; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8788 if ( style & DW_DT_TOP ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8789 y = DW_TOP; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8790 if ( style & DW_DT_BOTTOM ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8791 y = DW_BOTTOM; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8792 gtk_misc_set_alignment( GTK_MISC(handle2), x, y ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8793 if ( style & DW_DT_WORDBREAK ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8794 gtk_label_set_line_wrap( GTK_LABEL(handle), TRUE ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8795 } |
1314
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8796 if ( GTK_IS_CHECK_MENU_ITEM(handle2) && (mask & (DW_MIS_CHECKED | DW_MIS_UNCHECKED)) ) |
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8797 { |
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8798 int check = 0; |
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8799 |
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8800 if ( style & DW_MIS_CHECKED ) |
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8801 check = 1; |
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8802 |
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8803 _dw_ignore_click = 1; |
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8804 if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(handle2)) != check) |
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8805 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(handle2), check); |
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8806 _dw_ignore_click = 0; |
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8807 } |
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8808 if ( (GTK_IS_CHECK_MENU_ITEM(handle2) || GTK_IS_MENU_ITEM(handle2)) && (mask & (DW_MIS_ENABLED | DW_MIS_DISABLED) )) |
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8809 { |
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8810 _dw_ignore_click = 1; |
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8811 if ( style & DW_MIS_ENABLED ) |
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8812 gtk_widget_set_sensitive( handle2, TRUE ); |
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8813 else |
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8814 gtk_widget_set_sensitive( handle2, FALSE ); |
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8815 _dw_ignore_click = 0; |
c969db49606e
Initial commit allowing dw_window_set_style() to work on menu item handles.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1308
diff
changeset
|
8816 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8817 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8818 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8819 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8820 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8821 * Adds a new page to specified notebook. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8822 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8823 * handle: Window (widget) handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8824 * flags: Any additional page creation flags. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8825 * front: If TRUE page is added at the beginning. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8826 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8827 unsigned long dw_notebook_page_new(HWND handle, unsigned long flags, int front) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8828 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8829 int z; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8830 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8831 GtkWidget **pagearray; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8832 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8833 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8834 pagearray = (GtkWidget **)g_object_get_data(G_OBJECT(handle), "_dw_pagearray"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8835 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8836 if(pagearray) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8837 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8838 for(z=0;z<256;z++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8839 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8840 if(!pagearray[z]) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8841 { |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
8842 char text[101] = {0}; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8843 int num = z; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8844 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8845 if(front) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8846 num |= 1 << 16; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8847 |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
8848 snprintf(text, 100, "_dw_page%d", z); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8849 /* Save the real id and the creation flags */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8850 g_object_set_data(G_OBJECT(handle), text, GINT_TO_POINTER(num)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8851 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8852 return z; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8853 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8854 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8855 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8856 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8857 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8858 /* Hopefully this won't happen. */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8859 return 256; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8860 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8861 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8862 /* Return the physical page id from the logical page id */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8863 int _get_physical_page(HWND handle, unsigned long pageid) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8864 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8865 int z; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8866 GtkWidget *thispage, **pagearray = g_object_get_data(G_OBJECT(handle), "_dw_pagearray"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8867 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8868 if(pagearray) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8869 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8870 for(z=0;z<256;z++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8871 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8872 if((thispage = gtk_notebook_get_nth_page(GTK_NOTEBOOK(handle), z))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8873 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8874 if(thispage == pagearray[pageid]) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8875 return z; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8876 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8877 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8878 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8879 return 256; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8880 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8881 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8882 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8883 * Remove a page from a notebook. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8884 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8885 * handle: Handle to the notebook widget. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8886 * pageid: ID of the page to be destroyed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8887 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8888 void dw_notebook_page_destroy(HWND handle, unsigned int pageid) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8889 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8890 int realpage, _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8891 GtkWidget **pagearray; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8892 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8893 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8894 realpage = _get_physical_page(handle, pageid); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8895 if(realpage > -1 && realpage < 256) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8896 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8897 gtk_notebook_remove_page(GTK_NOTEBOOK(handle), realpage); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8898 if((pagearray = g_object_get_data(G_OBJECT(handle), "_dw_pagearray"))) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8899 pagearray[pageid] = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8900 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8901 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8902 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8903 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8904 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8905 * Queries the currently visible page ID. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8906 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8907 * handle: Handle to the notebook widget. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8908 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8909 unsigned long dw_notebook_page_get(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8910 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8911 int retval, phys; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8912 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8913 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8914 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8915 phys = gtk_notebook_get_current_page(GTK_NOTEBOOK(handle)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8916 retval = _get_logical_page(handle, phys); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8917 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8918 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8919 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8920 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8921 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8922 * Sets the currently visibale page ID. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8923 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8924 * handle: Handle to the notebook widget. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8925 * pageid: ID of the page to be made visible. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8926 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8927 void dw_notebook_page_set(HWND handle, unsigned int pageid) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8928 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8929 int realpage, _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8930 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8931 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8932 realpage = _get_physical_page(handle, pageid); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8933 if(realpage > -1 && realpage < 256) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8934 gtk_notebook_set_current_page(GTK_NOTEBOOK(handle), pageid); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8935 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8936 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8937 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8938 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8939 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8940 * Sets the text on the specified notebook tab. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8941 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8942 * handle: Notebook handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8943 * pageid: Page ID of the tab to set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8944 * text: Pointer to the text to set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8945 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8946 void dw_notebook_page_set_text(HWND handle, unsigned long pageid, char *text) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8947 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8948 GtkWidget *child; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8949 int realpage, _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8950 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8951 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8952 realpage = _get_physical_page(handle, pageid); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8953 if(realpage < 0 || realpage > 255) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8954 { |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
8955 char ptext[101] = {0}; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8956 int num; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8957 |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
8958 snprintf(ptext, 100, "_dw_page%d", (int)pageid); |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
8959 num = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(handle), ptext)); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8960 realpage = 0xFF & num; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8961 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8962 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8963 if(realpage > -1 && realpage < 256) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8964 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8965 child = gtk_notebook_get_nth_page(GTK_NOTEBOOK(handle), realpage); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8966 if(child) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8967 gtk_notebook_set_tab_label_text(GTK_NOTEBOOK(handle), child, text); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8968 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8969 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8970 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8971 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8972 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8973 * Sets the text on the specified notebook tab status area. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8974 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8975 * handle: Notebook handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8976 * pageid: Page ID of the tab to set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8977 * text: Pointer to the text to set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8978 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8979 void dw_notebook_page_set_status_text(HWND handle, unsigned long pageid, char *text) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8980 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8981 /* TODO (if possible) */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8982 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8983 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8984 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8985 * Packs the specified box into the notebook page. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8986 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8987 * handle: Handle to the notebook to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8988 * pageid: Page ID in the notebook which is being packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8989 * page: Box handle to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8990 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8991 void dw_notebook_pack(HWND handle, unsigned long pageid, HWND page) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8992 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8993 GtkWidget *label, *child, *oldlabel, **pagearray; |
790
1822c8a71936
Removed a now unused helper function and fixed a discared qualifier error.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
789
diff
changeset
|
8994 const gchar *text = NULL; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
8995 int num, z, realpage = -1, pad, _locked_by_me = FALSE; |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
8996 char ptext[101] = {0}; |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
8997 |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
8998 DW_MUTEX_LOCK; |
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
8999 snprintf(ptext, 100, "_dw_page%d", (int)pageid); |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
9000 num = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(handle), ptext)); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9001 g_object_set_data(G_OBJECT(handle), ptext, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9002 pagearray = (GtkWidget **)g_object_get_data(G_OBJECT(handle), "_dw_pagearray"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9003 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9004 if(!pagearray) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9005 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9006 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9007 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9008 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9009 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9010 /* The page already exists... so get it's current page */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9011 if(pagearray[pageid]) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9012 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9013 for(z=0;z<256;z++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9014 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9015 child = gtk_notebook_get_nth_page(GTK_NOTEBOOK(handle), z); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9016 if(child == pagearray[pageid]) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9017 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9018 oldlabel = gtk_notebook_get_tab_label(GTK_NOTEBOOK(handle), child); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9019 if(oldlabel) |
789
8fe51d916b36
Reenabled the set-focus code that was disabled due to combobox issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
788
diff
changeset
|
9020 text = gtk_label_get_text(GTK_LABEL(oldlabel)); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9021 gtk_notebook_remove_page(GTK_NOTEBOOK(handle), z); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9022 realpage = z; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9023 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9024 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9025 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9026 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9027 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9028 pagearray[pageid] = page; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9029 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9030 label = gtk_label_new(text ? text : ""); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9031 |
1124
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
9032 if(GTK_IS_GRID(page)) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9033 { |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
9034 pad = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(page), "_dw_boxpad")); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9035 gtk_container_set_border_width(GTK_CONTAINER(page), pad); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9036 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9037 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9038 if(realpage != -1) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9039 gtk_notebook_insert_page(GTK_NOTEBOOK(handle), page, label, realpage); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9040 else if(num & ~(0xFF)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9041 gtk_notebook_insert_page(GTK_NOTEBOOK(handle), page, label, 0); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9042 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9043 gtk_notebook_insert_page(GTK_NOTEBOOK(handle), page, label, 256); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9044 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9045 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9046 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9047 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9048 * Appends the specified text to the listbox's (or combobox) entry list. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9049 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9050 * handle: Handle to the listbox to be appended to. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9051 * text: Text to append into listbox. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9052 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9053 void dw_listbox_append(HWND handle, char *text) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9054 { |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9055 dw_listbox_insert(handle, text, -1); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9056 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9057 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9058 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9059 * Inserts the specified text int the listbox's (or combobox) entry list at the |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9060 * position indicated. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9061 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9062 * handle: Handle to the listbox to be appended to. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9063 * text: Text to insert into listbox. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9064 * pos: 0-based index into listbox. -1 will append |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9065 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9066 void dw_listbox_insert(HWND handle, char *text, int pos) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9067 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9068 GtkWidget *handle2 = handle; |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9069 GtkListStore *store = NULL; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9070 int _locked_by_me = FALSE; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9071 |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9072 DW_MUTEX_LOCK; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9073 /* Get the inner handle for scrolled controls */ |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9074 if(GTK_IS_SCROLLED_WINDOW(handle)) |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9075 { |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9076 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9077 if(tmp) |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9078 handle2 = tmp; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9079 } |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9080 if(handle2) |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9081 { |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9082 GtkTreeIter iter; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9083 |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9084 /* Make sure it is the correct tree type */ |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9085 if(GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9086 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9087 else if(GTK_IS_COMBO_BOX(handle2)) |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9088 store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(handle2)); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9089 |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9090 if(!store) |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9091 { |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9092 DW_MUTEX_UNLOCK; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9093 return; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9094 } |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9095 |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9096 if(pos < 0) |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9097 { |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9098 /* Insert an entry at the end */ |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9099 gtk_list_store_append(store, &iter); |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9100 } |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9101 else |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9102 { |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9103 /* Insert at position */ |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9104 gtk_list_store_insert(store, &iter, pos); |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9105 } |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9106 gtk_list_store_set (store, &iter, 0, text, -1); |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9107 } |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9108 DW_MUTEX_UNLOCK; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9109 } |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9110 |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9111 /* |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9112 * Appends the specified text items to the listbox's (or combobox) entry list. |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9113 * Parameters: |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9114 * handle: Handle to the listbox to be appended to. |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9115 * text: Text strings to append into listbox. |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9116 * count: Number of text strings to append |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9117 */ |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9118 void dw_listbox_list_append(HWND handle, char **text, int count) |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9119 { |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9120 GtkWidget *handle2 = handle; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9121 GtkListStore *store = NULL; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9122 int _locked_by_me = FALSE; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9123 |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9124 DW_MUTEX_LOCK; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9125 /* Get the inner handle for scrolled controls */ |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9126 if(GTK_IS_SCROLLED_WINDOW(handle)) |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9127 { |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9128 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9129 if(tmp) |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9130 handle2 = tmp; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9131 } |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9132 if(handle2) |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9133 { |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9134 int z; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9135 GtkTreeIter iter; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9136 |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9137 /* Make sure it is the correct tree type */ |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9138 if(GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9139 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9140 else if(GTK_IS_COMBO_BOX(handle2)) |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9141 store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(handle2)); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9142 |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9143 if(!store) |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9144 { |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9145 DW_MUTEX_UNLOCK; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9146 return; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9147 } |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9148 |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9149 /* Insert entries at the end */ |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9150 for(z=0;z<count;z++) |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9151 { |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9152 gtk_list_store_append(store, &iter); |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9153 gtk_list_store_set (store, &iter, 0, text[z], -1); |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9154 } |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9155 } |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9156 DW_MUTEX_UNLOCK; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9157 } |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9158 |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9159 /* |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9160 * Clears the listbox's (or combobox) list of all entries. |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9161 * Parameters: |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9162 * handle: Handle to the listbox to be cleared. |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9163 */ |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9164 void dw_listbox_clear(HWND handle) |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9165 { |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9166 GtkWidget *handle2 = handle; |
777
c0e7200dad31
More work on comboboxes, listboxes and containers. Comboboxes now display the list properly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
775
diff
changeset
|
9167 GtkListStore *store = NULL; |
c0e7200dad31
More work on comboboxes, listboxes and containers. Comboboxes now display the list properly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
775
diff
changeset
|
9168 int _locked_by_me = FALSE; |
c0e7200dad31
More work on comboboxes, listboxes and containers. Comboboxes now display the list properly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
775
diff
changeset
|
9169 |
c0e7200dad31
More work on comboboxes, listboxes and containers. Comboboxes now display the list properly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
775
diff
changeset
|
9170 DW_MUTEX_LOCK; |
c0e7200dad31
More work on comboboxes, listboxes and containers. Comboboxes now display the list properly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
775
diff
changeset
|
9171 /* Get the inner handle for scrolled controls */ |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9172 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9173 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9174 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9175 if(tmp) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9176 handle2 = tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9177 } |
777
c0e7200dad31
More work on comboboxes, listboxes and containers. Comboboxes now display the list properly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
775
diff
changeset
|
9178 if(handle2) |
c0e7200dad31
More work on comboboxes, listboxes and containers. Comboboxes now display the list properly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
775
diff
changeset
|
9179 { |
c0e7200dad31
More work on comboboxes, listboxes and containers. Comboboxes now display the list properly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
775
diff
changeset
|
9180 /* Make sure it is the correct tree type */ |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9181 if(GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9182 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
777
c0e7200dad31
More work on comboboxes, listboxes and containers. Comboboxes now display the list properly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
775
diff
changeset
|
9183 else if(GTK_IS_COMBO_BOX(handle2)) |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9184 store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(handle2)); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9185 |
777
c0e7200dad31
More work on comboboxes, listboxes and containers. Comboboxes now display the list properly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
775
diff
changeset
|
9186 if(!store) |
c0e7200dad31
More work on comboboxes, listboxes and containers. Comboboxes now display the list properly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
775
diff
changeset
|
9187 { |
c0e7200dad31
More work on comboboxes, listboxes and containers. Comboboxes now display the list properly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
775
diff
changeset
|
9188 DW_MUTEX_UNLOCK; |
c0e7200dad31
More work on comboboxes, listboxes and containers. Comboboxes now display the list properly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
775
diff
changeset
|
9189 return; |
c0e7200dad31
More work on comboboxes, listboxes and containers. Comboboxes now display the list properly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
775
diff
changeset
|
9190 } |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9191 /* Clear the list */ |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9192 gtk_list_store_clear(store); |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9193 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9194 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9195 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9196 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9197 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9198 * Returns the listbox's item count. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9199 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9200 * handle: Handle to the listbox to be counted |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9201 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9202 int dw_listbox_count(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9203 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9204 GtkWidget *handle2 = handle; |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9205 GtkListStore *store = NULL; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9206 int _locked_by_me = FALSE; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9207 int retval = 0; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9208 |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9209 DW_MUTEX_LOCK; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9210 /* Get the inner handle for scrolled controls */ |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9211 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9212 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9213 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9214 if(tmp) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9215 handle2 = tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9216 } |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9217 if(handle2) |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9218 { |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9219 /* Make sure it is the correct tree type */ |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9220 if(GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9221 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9222 else if(GTK_IS_COMBO_BOX(handle2)) |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9223 store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(handle2)); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9224 |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9225 if(store) |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9226 { |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9227 /* Get the number of children at the top level */ |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9228 retval = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), NULL); |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9229 } |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9230 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9231 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9232 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9233 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9234 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9235 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9236 * Sets the topmost item in the viewport. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9237 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9238 * handle: Handle to the listbox to be cleared. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9239 * top: Index to the top item. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9240 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9241 void dw_listbox_set_top(HWND handle, int top) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9242 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9243 GtkWidget *handle2 = handle; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9244 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9245 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9246 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9247 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9248 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9249 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9250 if(tmp) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9251 handle2 = tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9252 } |
877
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9253 /* Make sure it is the correct tree type */ |
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9254 if(handle2 && GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9255 { |
1330
c63069148357
Mostly fixed dw_listbox_set_top() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1327
diff
changeset
|
9256 GtkAdjustment *adjust = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(handle)); |
877
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9257 GtkListStore *store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9258 |
877
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9259 if(store && adjust) |
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9260 { |
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9261 /* Get the number of children at the top level */ |
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9262 gint rowcount = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), NULL); |
1330
c63069148357
Mostly fixed dw_listbox_set_top() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1327
diff
changeset
|
9263 gdouble pagesize = gtk_adjustment_get_page_size(adjust); |
c63069148357
Mostly fixed dw_listbox_set_top() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1327
diff
changeset
|
9264 gdouble upper = gtk_adjustment_get_upper(adjust) - pagesize; |
877
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9265 gdouble lower = gtk_adjustment_get_lower(adjust); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9266 gdouble change; |
1330
c63069148357
Mostly fixed dw_listbox_set_top() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1327
diff
changeset
|
9267 |
877
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9268 /* Safety check */ |
1330
c63069148357
Mostly fixed dw_listbox_set_top() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1327
diff
changeset
|
9269 if(rowcount < 2) |
877
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9270 { |
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9271 DW_MUTEX_UNLOCK; |
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9272 return; |
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9273 } |
1330
c63069148357
Mostly fixed dw_listbox_set_top() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1327
diff
changeset
|
9274 |
c63069148357
Mostly fixed dw_listbox_set_top() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1327
diff
changeset
|
9275 /* Verify the range */ |
c63069148357
Mostly fixed dw_listbox_set_top() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1327
diff
changeset
|
9276 rowcount--; |
c63069148357
Mostly fixed dw_listbox_set_top() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1327
diff
changeset
|
9277 if(top > rowcount) |
c63069148357
Mostly fixed dw_listbox_set_top() on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1327
diff
changeset
|
9278 top = rowcount; |
877
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9279 |
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9280 change = ((gdouble)top/(gdouble)rowcount) * (upper - lower); |
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9281 |
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9282 gtk_adjustment_set_value(adjust, change + lower); |
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9283 } |
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9284 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9285 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9286 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9287 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9288 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9289 * Copies the given index item's text into buffer. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9290 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9291 * handle: Handle to the listbox to be queried. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9292 * index: Index into the list to be queried. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9293 * buffer: Buffer where text will be copied. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9294 * length: Length of the buffer (including NULL). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9295 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9296 void dw_listbox_get_text(HWND handle, unsigned int index, char *buffer, unsigned int length) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9297 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9298 GtkWidget *handle2 = handle; |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9299 GtkListStore *store = NULL; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9300 int _locked_by_me = FALSE; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9301 |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9302 DW_MUTEX_LOCK; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9303 /* Get the inner handle for scrolled controls */ |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9304 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9305 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9306 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9307 if(tmp) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9308 handle2 = tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9309 } |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9310 if(handle2) |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9311 { |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9312 /* Make sure it is the correct tree type */ |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9313 if(GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9314 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9315 else if(GTK_IS_COMBO_BOX(handle2)) |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9316 store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(handle2)); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9317 |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9318 if(store && index < gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), NULL)) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9319 { |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9320 GtkTreeIter iter; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9321 |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9322 /* Get the nth child at the top level */ |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9323 if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, index)) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9324 { |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9325 /* Get the text */ |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9326 gchar *text; |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9327 gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, 0, &text, -1); |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9328 strncpy(buffer, text, length); |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9329 DW_MUTEX_UNLOCK; |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9330 return; |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9331 } |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9332 } |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9333 } |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9334 buffer[0] = '\0'; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9335 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9336 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9337 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9338 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9339 * Sets the text of a given listbox entry. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9340 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9341 * handle: Handle to the listbox to be queried. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9342 * index: Index into the list to be queried. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9343 * buffer: Buffer where text will be copied. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9344 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9345 void dw_listbox_set_text(HWND handle, unsigned int index, char *buffer) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9346 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9347 GtkWidget *handle2 = handle; |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9348 GtkListStore *store = NULL; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9349 int _locked_by_me = FALSE; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9350 |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9351 DW_MUTEX_LOCK; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9352 /* Get the inner handle for scrolled controls */ |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9353 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9354 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9355 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9356 if(tmp) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9357 handle2 = tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9358 } |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9359 if(handle2) |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9360 { |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9361 /* Make sure it is the correct tree type */ |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9362 if(GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9363 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9364 else if(GTK_IS_COMBO_BOX(handle2)) |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9365 store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(handle2)); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9366 |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9367 if(store && index < gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), NULL)) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9368 { |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9369 GtkTreeIter iter; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9370 |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9371 /* Get the nth child at the top level */ |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9372 if (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, index)) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9373 { |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9374 /* Update the text */ |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9375 gtk_list_store_set(store, &iter, buffer); |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9376 } |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9377 } |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9378 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9379 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9380 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9381 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9382 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9383 * Returns the index to the current selected item or -1 when done. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9384 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9385 * handle: Handle to the listbox to be queried. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9386 * where: Either the previous return or -1 to restart. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9387 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9388 int dw_listbox_selected_multi(HWND handle, int where) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9389 { |
788
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9390 GtkWidget *handle2; |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9391 GtkListStore *store = NULL; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9392 int retval = DW_LIT_NONE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9393 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9394 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9395 DW_MUTEX_LOCK; |
788
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9396 handle2 = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9397 |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9398 /* Make sure it is the correct tree type */ |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9399 if(handle2 && GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9400 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9401 |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9402 if(store) |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9403 { |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9404 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(handle2)); |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9405 GList *list = gtk_tree_selection_get_selected_rows(sel, NULL); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9406 |
788
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9407 if(list) |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9408 { |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9409 int counter = 0; |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9410 GtkTreePath *path = g_list_nth_data(list, 0); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9411 |
788
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9412 while(path) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9413 { |
788
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9414 gint *indices = gtk_tree_path_get_indices(path); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9415 |
788
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9416 if(indices && indices[0] > where) |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9417 { |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9418 retval = indices[0]; |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9419 break; |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9420 } |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9421 |
788
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9422 counter++; |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9423 path = g_list_nth_data(list, counter); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9424 } |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9425 |
788
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9426 g_list_foreach(list, (GFunc) gtk_tree_path_free, NULL); |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9427 g_list_free(list); |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9428 } |
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
9429 } |
1124
aff4aeca858f
Experimental change to use GtkGrid instead of GtkTable for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1122
diff
changeset
|
9430 DW_MUTEX_UNLOCK; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9431 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9432 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9433 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9434 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9435 * Returns the index to the item in the list currently selected. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9436 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9437 * handle: Handle to the listbox to be queried. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9438 */ |
986
87dc0f5f96d0
Fix return type of dw_listbox_selected() to be "int" instead of "unsigned int" to allow -1 return.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
976
diff
changeset
|
9439 int dw_listbox_selected(HWND handle) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9440 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9441 GtkWidget *handle2 = handle; |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9442 GtkListStore *store = NULL; |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9443 int _locked_by_me = FALSE; |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9444 unsigned int retval = 0; |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9445 |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9446 DW_MUTEX_LOCK; |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9447 /* Get the inner handle for scrolled controls */ |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9448 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9449 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9450 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9451 if(tmp) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9452 handle2 = tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9453 } |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9454 if(handle2) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9455 { |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9456 /* Make sure it is the correct tree type */ |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9457 if(GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9458 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9459 else if(GTK_IS_COMBO_BOX(handle2)) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9460 store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(handle2)); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9461 |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9462 if(store) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9463 { |
780
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9464 if(GTK_IS_TREE_VIEW(handle2)) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9465 { |
780
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9466 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(handle2)); |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9467 GList *list = gtk_tree_selection_get_selected_rows(sel, NULL); |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9468 if(list) |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9469 { |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9470 GtkTreePath *path = g_list_nth_data(list, 0); |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9471 gint *indices = gtk_tree_path_get_indices(path); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9472 |
780
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9473 if(indices) |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9474 { |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9475 retval = indices[0]; |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9476 } |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9477 |
780
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9478 g_list_foreach(list, (GFunc) gtk_tree_path_free, NULL); |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9479 g_list_free(list); |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9480 } |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9481 } |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9482 else |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9483 { |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9484 GtkTreeIter iter; |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9485 GtkTreePath *path; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9486 |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
9487 if(gtk_combo_box_get_active_iter(GTK_COMBO_BOX(handle2), &iter)) |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9488 { |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
9489 path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iter); |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
9490 if(path) |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
9491 { |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
9492 gint *indices = gtk_tree_path_get_indices(path); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9493 |
883
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
9494 if(indices) |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
9495 { |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
9496 retval = indices[0]; |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
9497 } |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
9498 gtk_tree_path_free(path); |
63a8e77191c7
Experimental changes to the containers so filsystem icon and name are same column for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
877
diff
changeset
|
9499 } |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9500 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9501 } |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9502 } |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9503 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9504 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9505 return retval; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9506 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9507 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9508 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9509 * Sets the selection state of a given index. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9510 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9511 * handle: Handle to the listbox to be set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9512 * index: Item index. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9513 * state: TRUE if selected FALSE if unselected. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9514 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9515 void dw_listbox_select(HWND handle, int index, int state) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9516 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9517 GtkWidget *handle2 = handle; |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9518 GtkListStore *store = NULL; |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9519 int _locked_by_me = FALSE; |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9520 |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9521 DW_MUTEX_LOCK; |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9522 /* Get the inner handle for scrolled controls */ |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9523 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9524 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9525 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9526 if(tmp) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9527 handle2 = tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9528 } |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9529 if(handle2) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9530 { |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9531 /* Make sure it is the correct tree type */ |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9532 if(GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9533 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9534 else if(GTK_IS_COMBO_BOX(handle2)) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9535 store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(handle2)); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9536 |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9537 if(store && index < gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), NULL)) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9538 { |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9539 GtkTreeIter iter; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9540 |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9541 /* Get the nth child at the top level */ |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9542 if (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, index)) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9543 { |
787
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
9544 if(GTK_IS_COMBO_BOX(handle2)) |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9545 { |
787
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
9546 gtk_combo_box_set_active_iter(GTK_COMBO_BOX(handle2), &iter); |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9547 } |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9548 else |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9549 { |
787
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
9550 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(handle2)); |
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
9551 if(state) |
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
9552 { |
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
9553 /* Select the item */ |
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
9554 gtk_tree_selection_select_iter(sel, &iter); |
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
9555 } |
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
9556 else |
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
9557 { |
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
9558 /* Deselect the item */ |
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
9559 gtk_tree_selection_unselect_iter(sel, &iter); |
098458f3bdfb
Fixes some missing checks for combobox causing GTK warnings running HandyFTP.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
786
diff
changeset
|
9560 } |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9561 } |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9562 } |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9563 } |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9564 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9565 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9566 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9567 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9568 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9569 * Deletes the item with given index from the list. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9570 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9571 * handle: Handle to the listbox to be set. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9572 * index: Item index. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9573 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9574 void dw_listbox_delete(HWND handle, int index) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9575 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9576 GtkWidget *handle2 = handle; |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9577 GtkListStore *store = NULL; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9578 int _locked_by_me = FALSE; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9579 |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9580 DW_MUTEX_LOCK; |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9581 /* Get the inner handle for scrolled controls */ |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9582 if(GTK_IS_SCROLLED_WINDOW(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9583 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9584 GtkWidget *tmp = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9585 if(tmp) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9586 handle2 = tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9587 } |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9588 if(handle2) |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9589 { |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9590 /* Make sure it is the correct tree type */ |
780
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9591 if(GTK_IS_TREE_VIEW(handle2) && g_object_get_data(G_OBJECT(handle2), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_LISTBOX)) |
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9592 store = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(handle2)); |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9593 else if(GTK_IS_COMBO_BOX(handle2)) |
780
fda93b441c4d
Lots of listbox/combobox/container fixes. Things are starting to come together.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
779
diff
changeset
|
9594 store = (GtkListStore *)gtk_combo_box_get_model(GTK_COMBO_BOX(handle2)); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9595 |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9596 if(store) |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9597 { |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9598 GtkTreeIter iter; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
9599 |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9600 /* Get the nth child at the top level */ |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9601 if (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, index)) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9602 { |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9603 gtk_list_store_remove(store, &iter); |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
9604 } |
778
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9605 } |
99ce0ea1f271
Implemented many of the dw_listbox_* functions using the new tree view for comboboxes and listboxes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
777
diff
changeset
|
9606 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9607 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9608 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9609 |
1353
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9610 /* Function to do delayed positioning */ |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9611 gboolean _splitbar_set_percent(gpointer data) |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9612 { |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9613 GtkWidget *widget = data; |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9614 float *percent = (float *)g_object_get_data(G_OBJECT(widget), "_dw_percent"); |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9615 |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9616 if(percent) |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9617 { |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9618 GtkAllocation alloc; |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9619 |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9620 gtk_widget_get_allocation(widget, &alloc); |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9621 |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9622 if(GTK_IS_HPANED(widget)) |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9623 gtk_paned_set_position(GTK_PANED(widget), (int)(alloc.width * (*percent / 100.0))); |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9624 if(GTK_IS_VPANED(widget)) |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9625 gtk_paned_set_position(GTK_PANED(widget), (int)(alloc.height * (*percent / 100.0))); |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9626 g_object_set_data(G_OBJECT(widget), "_dw_percent", NULL); |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9627 free(percent); |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9628 } |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9629 return FALSE; |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9630 } |
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9631 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9632 /* Reposition the bar according to the percentage */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9633 static gint _splitbar_size_allocate(GtkWidget *widget, GtkAllocation *event, gpointer data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9634 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9635 float *percent = (float *)g_object_get_data(G_OBJECT(widget), "_dw_percent"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9636 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9637 /* Prevent infinite recursion ;) */ |
1005
751522e9f3ac
Switchted to using dw_paned_pack*() to pack the splitbar on GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1001
diff
changeset
|
9638 if(!percent || event->width < 20 || event->height < 20) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9639 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9640 |
1353
f4ad4ba39b61
Apparently it is unsafe to set properties in the GTK3 size allocate callback.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1352
diff
changeset
|
9641 g_idle_add(_splitbar_set_percent, widget); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9642 return FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9643 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9644 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9645 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9646 * Creates a splitbar window (widget) with given parameters. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9647 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9648 * type: Value can be DW_VERT or DW_HORZ. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9649 * topleft: Handle to the window to be top or left. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9650 * bottomright: Handle to the window to be bottom or right. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9651 * Returns: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9652 * A handle to a splitbar window or NULL on failure. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9653 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9654 HWND dw_splitbar_new(int type, HWND topleft, HWND bottomright, unsigned long id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9655 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9656 GtkWidget *tmp = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9657 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9658 float *percent = malloc(sizeof(float)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9659 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9660 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9661 if(type == DW_HORZ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9662 tmp = gtk_hpaned_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9663 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9664 tmp = gtk_vpaned_new(); |
1125
95d7eb4e85c6
The shrink flag on GtkPanded (splitbar) in GTK 3 causes tons
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1124
diff
changeset
|
9665 gtk_paned_pack1(GTK_PANED(tmp), topleft, TRUE, FALSE); |
95d7eb4e85c6
The shrink flag on GtkPanded (splitbar) in GTK 3 causes tons
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1124
diff
changeset
|
9666 gtk_paned_pack2(GTK_PANED(tmp), bottomright, TRUE, FALSE); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9667 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9668 *percent = 50.0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9669 g_object_set_data(G_OBJECT(tmp), "_dw_percent", (gpointer)percent); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9670 g_signal_connect(G_OBJECT(tmp), "size-allocate", G_CALLBACK(_splitbar_size_allocate), NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9671 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9672 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9673 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9674 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9675 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9676 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9677 * Sets the position of a splitbar (pecentage). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9678 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9679 * handle: The handle to the splitbar returned by dw_splitbar_new(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9680 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9681 void dw_splitbar_set(HWND handle, float percent) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9682 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9683 float *mypercent = (float *)dw_window_get_data(handle, "_dw_percent"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9684 int size = 0, position; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9685 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9686 if(GTK_IS_VPANED(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9687 size = gtk_widget_get_allocated_height(handle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9688 else if(GTK_IS_HPANED(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9689 size = gtk_widget_get_allocated_width(handle); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9690 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9691 if(mypercent) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9692 *mypercent = percent; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9693 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9694 if(size > 10) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9695 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9696 position = (int)((float)size * (percent / 100.0)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9697 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9698 gtk_paned_set_position(GTK_PANED(handle), position); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9699 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9700 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9701 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9702 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9703 * Gets the position of a splitbar (pecentage). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9704 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9705 * handle: The handle to the splitbar returned by dw_splitbar_new(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9706 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9707 float dw_splitbar_get(HWND handle) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9708 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9709 float *percent = (float *)dw_window_get_data(handle, "_dw_percent"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9710 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9711 if(percent) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9712 return *percent; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9713 return 0.0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9714 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9715 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9716 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9717 * Creates a calendar window (widget) with given parameters. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9718 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9719 * id: Unique identifier for calendar widget |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9720 * Returns: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9721 * A handle to a calendar window or NULL on failure. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9722 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9723 HWND dw_calendar_new(unsigned long id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9724 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9725 GtkWidget *tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9726 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9727 GtkCalendarDisplayOptions flags; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9728 time_t now; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9729 struct tm *tmdata; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9730 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9731 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9732 tmp = gtk_calendar_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9733 gtk_widget_show(tmp); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9734 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9735 /* select today */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9736 flags = GTK_CALENDAR_SHOW_HEADING|GTK_CALENDAR_SHOW_DAY_NAMES; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9737 gtk_calendar_set_display_options( GTK_CALENDAR(tmp), flags ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9738 now = time( NULL ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9739 tmdata = localtime( & now ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9740 gtk_calendar_select_month( GTK_CALENDAR(tmp), tmdata->tm_mon, 1900+tmdata->tm_year ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9741 gtk_calendar_select_day( GTK_CALENDAR(tmp), tmdata->tm_mday ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9742 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9743 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9744 return tmp; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9745 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9746 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9747 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9748 * Sets the current date of a calendar |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9749 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9750 * handle: The handle to the calendar returned by dw_calendar_new(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9751 * year... |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9752 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9753 void dw_calendar_set_date(HWND handle, unsigned int year, unsigned int month, unsigned int day) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9754 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9755 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9756 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9757 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9758 if(GTK_IS_CALENDAR(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9759 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9760 gtk_calendar_select_month(GTK_CALENDAR(handle),month-1,year); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9761 gtk_calendar_select_day(GTK_CALENDAR(handle), day); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9762 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9763 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9764 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9765 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9766 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9767 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9768 * Gets the position of a splitbar (pecentage). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9769 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9770 * handle: The handle to the splitbar returned by dw_splitbar_new(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9771 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9772 void dw_calendar_get_date(HWND handle, unsigned int *year, unsigned int *month, unsigned int *day) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9773 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9774 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9775 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9776 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9777 if(GTK_IS_CALENDAR(handle)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9778 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9779 gtk_calendar_get_date(GTK_CALENDAR(handle),year,month,day); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9780 *month = *month + 1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9781 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9782 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9783 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9784 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9785 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9786 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9787 * Sets the default focus item for a window/dialog. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9788 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9789 * window: Toplevel window or dialog. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9790 * defaultitem: Handle to the dialog item to be default. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9791 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9792 void dw_window_default(HWND window, HWND defaultitem) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9793 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9794 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9795 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9796 if(!window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9797 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9798 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9799 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9800 g_object_set_data(G_OBJECT(window), "_dw_defaultitem", (gpointer)defaultitem); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9801 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9802 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9803 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9804 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9805 * Sets window to click the default dialog item when an ENTER is pressed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9806 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9807 * window: Window (widget) to look for the ENTER press. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9808 * next: Window (widget) to move to next (or click) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9809 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9810 void dw_window_click_default(HWND window, HWND next) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9811 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9812 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9813 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9814 if(!window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9815 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9816 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9817 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9818 g_signal_connect(G_OBJECT(window), "key_press_event", G_CALLBACK(_default_key_press_event), next); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9819 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9820 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9821 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9822 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9823 * Returns some information about the current operating environment. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9824 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9825 * env: Pointer to a DWEnv struct. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9826 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9827 void dw_environment_query(DWEnv *env) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9828 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9829 struct utsname name; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9830 char tempbuf[100]; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9831 int len, z; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9832 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9833 uname(&name); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9834 strcpy(env->osName, name.sysname); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9835 strcpy(tempbuf, name.release); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9836 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9837 env->MajorBuild = env->MinorBuild = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9838 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9839 len = strlen(tempbuf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9840 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9841 strcpy(env->buildDate, __DATE__); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9842 strcpy(env->buildTime, __TIME__); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9843 env->DWMajorVersion = DW_MAJOR_VERSION; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9844 env->DWMinorVersion = DW_MINOR_VERSION; |
1160
924c8087a755
Attempt to use the subversion revision number as the sub version number.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1158
diff
changeset
|
9845 #ifdef VER_REV |
1161
e4b13cd7a002
Update configure script and fix a miscommit of the GTK3 code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1160
diff
changeset
|
9846 env->DWSubVersion = VER_REV; |
1160
924c8087a755
Attempt to use the subversion revision number as the sub version number.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1158
diff
changeset
|
9847 #else |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9848 env->DWSubVersion = DW_SUB_VERSION; |
1160
924c8087a755
Attempt to use the subversion revision number as the sub version number.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1158
diff
changeset
|
9849 #endif |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9850 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9851 for(z=1;z<len;z++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9852 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9853 if(tempbuf[z] == '.') |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9854 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9855 tempbuf[z] = '\0'; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9856 env->MajorVersion = atoi(&tempbuf[z-1]); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9857 env->MinorVersion = atoi(&tempbuf[z+1]); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9858 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9859 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9860 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9861 env->MajorVersion = atoi(tempbuf); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9862 env->MinorVersion = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9863 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9864 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9865 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9866 * Opens a file dialog and queries user selection. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9867 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9868 * title: Title bar text for dialog. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9869 * defpath: The default path of the open dialog. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9870 * ext: Default file extention. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9871 * flags: DW_FILE_OPEN or DW_FILE_SAVE or DW_DIRECTORY_OPEN |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9872 * Returns: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9873 * NULL on error. A malloced buffer containing |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9874 * the file path on success. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9875 * |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9876 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9877 char *dw_file_browse(char *title, char *defpath, char *ext, int flags) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9878 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9879 GtkWidget *filew; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9880 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9881 GtkFileChooserAction action; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9882 GtkFileFilter *filter1 = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9883 GtkFileFilter *filter2 = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9884 gchar *button; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9885 char *filename = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9886 char buf[1000]; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9887 char mypath[PATH_MAX+1]; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9888 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9889 switch (flags ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9890 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9891 case DW_DIRECTORY_OPEN: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9892 action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9893 button = GTK_STOCK_OPEN; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9894 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9895 case DW_FILE_OPEN: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9896 action = GTK_FILE_CHOOSER_ACTION_OPEN; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9897 button = GTK_STOCK_OPEN; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9898 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9899 case DW_FILE_SAVE: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9900 action = GTK_FILE_CHOOSER_ACTION_SAVE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9901 button = GTK_STOCK_SAVE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9902 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9903 default: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9904 dw_messagebox( "Coding error", DW_MB_OK|DW_MB_ERROR, "dw_file_browse() flags argument invalid."); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9905 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9906 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9907 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9908 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9909 filew = gtk_file_chooser_dialog_new ( title, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9910 NULL, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9911 action, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9912 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9913 button, GTK_RESPONSE_ACCEPT, |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9914 NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9915 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9916 if ( flags == DW_FILE_SAVE ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9917 gtk_file_chooser_set_do_overwrite_confirmation( GTK_FILE_CHOOSER( filew ), TRUE ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9918 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9919 if ( ext ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9920 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9921 filter1 = gtk_file_filter_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9922 sprintf( buf, "*.%s", ext ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9923 gtk_file_filter_add_pattern( filter1, (gchar *)buf ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9924 sprintf( buf, "\"%s\" files", ext ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9925 gtk_file_filter_set_name( filter1, (gchar *)buf ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9926 filter2 = gtk_file_filter_new(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9927 gtk_file_filter_add_pattern( filter2, (gchar *)"*" ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9928 gtk_file_filter_set_name( filter2, (gchar *)"All Files" ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9929 gtk_file_chooser_add_filter( GTK_FILE_CHOOSER( filew ), filter1 ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9930 gtk_file_chooser_add_filter( GTK_FILE_CHOOSER( filew ), filter2 ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9931 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9932 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9933 if ( defpath ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9934 { |
1295
d0c9d4d0ff3b
Implement default filename support for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1291
diff
changeset
|
9935 struct stat buf; |
d0c9d4d0ff3b
Implement default filename support for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1291
diff
changeset
|
9936 |
877
d3693ceec9b1
Implemented dw_listbox_set_top() for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
876
diff
changeset
|
9937 if ( g_path_is_absolute( defpath ) || !realpath(defpath, mypath)) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9938 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9939 strcpy( mypath, defpath ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9940 } |
1295
d0c9d4d0ff3b
Implement default filename support for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1291
diff
changeset
|
9941 |
d0c9d4d0ff3b
Implement default filename support for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1291
diff
changeset
|
9942 /* See if the path exists */ |
d0c9d4d0ff3b
Implement default filename support for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1291
diff
changeset
|
9943 if(stat(mypath, &buf) == 0) |
d0c9d4d0ff3b
Implement default filename support for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1291
diff
changeset
|
9944 { |
d0c9d4d0ff3b
Implement default filename support for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1291
diff
changeset
|
9945 /* If the path is a directory... set the current folder */ |
d0c9d4d0ff3b
Implement default filename support for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1291
diff
changeset
|
9946 if(buf.st_mode & S_IFDIR) |
d0c9d4d0ff3b
Implement default filename support for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1291
diff
changeset
|
9947 gtk_file_chooser_set_current_folder( GTK_FILE_CHOOSER( filew ), mypath ); |
d0c9d4d0ff3b
Implement default filename support for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1291
diff
changeset
|
9948 else if(flags == DW_FILE_SAVE) /* Otherwise set the filename */ |
d0c9d4d0ff3b
Implement default filename support for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1291
diff
changeset
|
9949 gtk_file_chooser_set_filename( GTK_FILE_CHOOSER( filew ), mypath ); |
d0c9d4d0ff3b
Implement default filename support for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1291
diff
changeset
|
9950 else if(flags == DW_FILE_OPEN) |
d0c9d4d0ff3b
Implement default filename support for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1291
diff
changeset
|
9951 gtk_file_chooser_select_filename( GTK_FILE_CHOOSER( filew), mypath ); |
d0c9d4d0ff3b
Implement default filename support for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1291
diff
changeset
|
9952 } |
d0c9d4d0ff3b
Implement default filename support for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1291
diff
changeset
|
9953 else if(flags == DW_FILE_SAVE) |
d0c9d4d0ff3b
Implement default filename support for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1291
diff
changeset
|
9954 { |
1300
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9955 if(strchr(mypath, '/')) |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9956 { |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9957 unsigned long x = strlen(mypath) - 1; |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9958 |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9959 /* Trim off the filename */ |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9960 while(x > 0 && mypath[x] != '/') |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9961 { |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9962 x--; |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9963 } |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9964 if(mypath[x] == '/') |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9965 { |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9966 char *file = NULL; |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9967 char temp[PATH_MAX+1]; |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9968 |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9969 /* Save the original path in temp */ |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9970 strcpy(temp, mypath); |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9971 mypath[x] = 0; |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9972 |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9973 /* Check to make sure the trimmed piece is a directory */ |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9974 if(realpath(mypath, temp) && stat(temp, &buf) == 0) |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9975 { |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9976 if(buf.st_mode & S_IFDIR) |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9977 { |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9978 /* We now have it split */ |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9979 file = &mypath[x+1]; |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9980 } |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9981 } |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9982 |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9983 /* Select folder... */ |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9984 gtk_file_chooser_set_current_folder( GTK_FILE_CHOOSER(filew), temp ); |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9985 /* ... and file separately */ |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9986 if(file) |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9987 gtk_file_chooser_set_current_name( GTK_FILE_CHOOSER(filew), file ); |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9988 } |
9c8de9cccc07
Fix for file and folder not being selected on GTK if file does not exist.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1295
diff
changeset
|
9989 } |
1295
d0c9d4d0ff3b
Implement default filename support for GTK.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1291
diff
changeset
|
9990 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9991 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9992 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9993 if ( gtk_dialog_run( GTK_DIALOG( filew ) ) == GTK_RESPONSE_ACCEPT ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9994 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9995 filename = gtk_file_chooser_get_filename( GTK_FILE_CHOOSER( filew ) ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9996 /*g_free (filename);*/ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9997 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9998 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
9999 gtk_widget_destroy( filew ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10000 return filename; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10001 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10002 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10003 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10004 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10005 * Execute and external program in a seperate session. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10006 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10007 * program: Program name with optional path. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10008 * type: Either DW_EXEC_CON or DW_EXEC_GUI. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10009 * params: An array of pointers to string arguements. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10010 * Returns: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10011 * -1 on error. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10012 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10013 int dw_exec(char *program, int type, char **params) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10014 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10015 int ret = -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10016 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10017 if((ret = fork()) == 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10018 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10019 int i; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10020 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10021 for (i = 3; i < 256; i++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10022 close(i); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10023 setsid(); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10024 if(type == DW_EXEC_GUI) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10025 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10026 execvp(program, params); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10027 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10028 else if(type == DW_EXEC_CON) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10029 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10030 char **tmpargs; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10031 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10032 if(!params) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10033 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10034 tmpargs = malloc(sizeof(char *)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10035 tmpargs[0] = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10036 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10037 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10038 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10039 int z = 0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10040 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10041 while(params[z]) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10042 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10043 z++; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10044 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10045 tmpargs = malloc(sizeof(char *)*(z+3)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10046 z=0; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10047 tmpargs[0] = "xterm"; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10048 tmpargs[1] = "-e"; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10049 while(params[z]) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10050 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10051 tmpargs[z+2] = params[z]; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10052 z++; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10053 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10054 tmpargs[z+2] = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10055 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10056 execvp("xterm", tmpargs); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10057 free(tmpargs); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10058 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10059 /* If we got here exec failed */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10060 _exit(-1); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10061 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10062 return ret; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10063 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10064 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10065 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10066 * Loads a web browser pointed at the given URL. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10067 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10068 * url: Uniform resource locator. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10069 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10070 int dw_browse(char *url) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10071 { |
1118
63dd52ba9a8f
Added support for attempting to launch a browser using a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1116
diff
changeset
|
10072 /* If possible load the URL/URI using gvfs... */ |
63dd52ba9a8f
Added support for attempting to launch a browser using a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1116
diff
changeset
|
10073 if(gtk_show_uri(gdk_screen_get_default(), url, GDK_CURRENT_TIME, NULL)) |
63dd52ba9a8f
Added support for attempting to launch a browser using a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1116
diff
changeset
|
10074 { |
63dd52ba9a8f
Added support for attempting to launch a browser using a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1116
diff
changeset
|
10075 return DW_ERROR_NONE; |
63dd52ba9a8f
Added support for attempting to launch a browser using a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1116
diff
changeset
|
10076 } |
63dd52ba9a8f
Added support for attempting to launch a browser using a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1116
diff
changeset
|
10077 else |
63dd52ba9a8f
Added support for attempting to launch a browser using a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1116
diff
changeset
|
10078 { |
63dd52ba9a8f
Added support for attempting to launch a browser using a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1116
diff
changeset
|
10079 /* Otherwise just fall back to executing firefox... |
63dd52ba9a8f
Added support for attempting to launch a browser using a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1116
diff
changeset
|
10080 * or the browser defined by the DW_BROWSER variable. |
63dd52ba9a8f
Added support for attempting to launch a browser using a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1116
diff
changeset
|
10081 */ |
63dd52ba9a8f
Added support for attempting to launch a browser using a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1116
diff
changeset
|
10082 char *execargs[3], *browser = "firefox", *tmp; |
63dd52ba9a8f
Added support for attempting to launch a browser using a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1116
diff
changeset
|
10083 |
63dd52ba9a8f
Added support for attempting to launch a browser using a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1116
diff
changeset
|
10084 tmp = getenv( "DW_BROWSER" ); |
63dd52ba9a8f
Added support for attempting to launch a browser using a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1116
diff
changeset
|
10085 if(tmp) browser = tmp; |
63dd52ba9a8f
Added support for attempting to launch a browser using a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1116
diff
changeset
|
10086 execargs[0] = browser; |
63dd52ba9a8f
Added support for attempting to launch a browser using a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1116
diff
changeset
|
10087 execargs[1] = url; |
63dd52ba9a8f
Added support for attempting to launch a browser using a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1116
diff
changeset
|
10088 execargs[2] = NULL; |
63dd52ba9a8f
Added support for attempting to launch a browser using a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1116
diff
changeset
|
10089 |
63dd52ba9a8f
Added support for attempting to launch a browser using a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1116
diff
changeset
|
10090 return dw_exec(browser, DW_EXEC_GUI, execargs); |
63dd52ba9a8f
Added support for attempting to launch a browser using a
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1116
diff
changeset
|
10091 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10092 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10093 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10094 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10095 * Causes the embedded HTML widget to take action. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10096 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10097 * handle: Handle to the window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10098 * action: One of the DW_HTML_* constants. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10099 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10100 void dw_html_action(HWND handle, int action) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10101 { |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
10102 #ifdef USE_WEBKIT |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10103 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10104 WebKitWebView *web_view; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10105 WebKitWebFrame *frame; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10106 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10107 if (!_webkit_web_view_open) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10108 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10109 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10110 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10111 web_view = (WebKitWebView *)g_object_get_data(G_OBJECT(handle), "_dw_web_view"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10112 if ( web_view ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10113 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10114 switch( action ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10115 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10116 case DW_HTML_GOBACK: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10117 _webkit_web_view_go_back( web_view ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10118 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10119 case DW_HTML_GOFORWARD: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10120 _webkit_web_view_go_forward( web_view ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10121 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10122 case DW_HTML_GOHOME: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10123 _webkit_web_view_open( web_view, "http://dwindows.netlabs.org" ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10124 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10125 case DW_HTML_RELOAD: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10126 _webkit_web_view_reload( web_view ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10127 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10128 case DW_HTML_STOP: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10129 _webkit_web_view_stop_loading( web_view ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10130 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10131 case DW_HTML_PRINT: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10132 frame = _webkit_web_view_get_focused_frame( web_view ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10133 _webkit_web_frame_print( frame ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10134 break; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10135 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10136 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10137 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10138 #endif |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10139 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10140 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10141 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10142 * Render raw HTML code in the embedded HTML widget.. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10143 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10144 * handle: Handle to the window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10145 * string: String buffer containt HTML code to |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10146 * be rendered. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10147 * Returns: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10148 * 0 on success. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10149 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10150 int dw_html_raw(HWND handle, char *string) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10151 { |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
10152 #ifdef USE_WEBKIT |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10153 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10154 WebKitWebView *web_view; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10155 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10156 if (!_webkit_web_view_open) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10157 return -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10158 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10159 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10160 web_view = (WebKitWebView *)g_object_get_data(G_OBJECT(handle), "_dw_web_view"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10161 if ( web_view ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10162 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10163 _webkit_web_view_load_html_string( web_view, string, "file:///"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10164 gtk_widget_show( GTK_WIDGET(handle) ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10165 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10166 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10167 return 0; |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
10168 #else |
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
10169 return -1; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10170 #endif |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10171 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10172 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10173 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10174 * Render file or web page in the embedded HTML widget.. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10175 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10176 * handle: Handle to the window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10177 * url: Universal Resource Locator of the web or |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10178 * file object to be rendered. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10179 * Returns: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10180 * 0 on success. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10181 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10182 int dw_html_url(HWND handle, char *url) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10183 { |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
10184 #ifdef USE_WEBKIT |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10185 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10186 WebKitWebView *web_view; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10187 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10188 if (!_webkit_web_view_open) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10189 return -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10190 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10191 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10192 web_view = (WebKitWebView *)g_object_get_data(G_OBJECT(handle), "_dw_web_view"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10193 if ( web_view ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10194 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10195 _webkit_web_view_open( web_view, url ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10196 gtk_widget_show(GTK_WIDGET(handle)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10197 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10198 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10199 return 0; |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
10200 #else |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10201 return -1; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10202 #endif |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
10203 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10204 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10205 #ifdef USE_WEBKIT |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10206 static void _dw_html_print_cb( GtkWidget *widget, gpointer *data ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10207 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10208 WebKitWebView *web_view = DW_WEBKIT_WEB_VIEW(data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10209 WebKitWebFrame *frame; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10210 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10211 frame = _webkit_web_view_get_focused_frame( web_view ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10212 _webkit_web_frame_print( frame ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10213 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10214 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10215 * Fired when the user right-clicks to get the popup-menu on the HTML widget |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10216 * We add a "Print" menu item to enable printing |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10217 * user_data is not used |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10218 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10219 static void _dw_html_populate_popup_cb( WebKitWebView *web_view, GtkMenu *menu, gpointer user_data ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10220 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10221 GtkWidget *image = gtk_image_new_from_stock( GTK_STOCK_PRINT, GTK_ICON_SIZE_MENU ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10222 GtkWidget *item = gtk_image_menu_item_new_with_label( "Print" ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10223 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10224 gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(item), image ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10225 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10226 g_signal_connect( item, "activate", G_CALLBACK(_dw_html_print_cb), web_view ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10227 gtk_widget_show(item); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10228 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10229 #endif |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10230 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10231 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10232 * Create a new Entryfield window (widget) to be packed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10233 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10234 * text: The default text to be in the entryfield widget. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10235 * id: An ID to be used with dw_window_from_id() or 0L. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10236 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10237 HWND dw_html_new(unsigned long id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10238 { |
1355
dd252596227b
Removed a now unused variable on GTK in dw_html_new().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1354
diff
changeset
|
10239 GtkWidget *widget = NULL; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10240 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10241 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10242 DW_MUTEX_LOCK; |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
10243 #ifdef USE_WEBKIT |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10244 if (!_webkit_web_view_open) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10245 { |
1358
2f5e54b0c5c4
dw_debug() lines in dw_html_new() should end with a newline.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1355
diff
changeset
|
10246 dw_debug( "HTML widget not available; you do not have access to webkit.\n" ); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10247 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10248 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10249 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10250 WebKitWebView *web_view; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10251 widget = gtk_scrolled_window_new (NULL, NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10252 gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW (widget), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10253 web_view = (WebKitWebView *)_webkit_web_view_new(); |
1320
6bebcfa03b2b
Added support for dw_font_set_default() on GTK for appropriate widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1314
diff
changeset
|
10254 /* web_view = WEBKIT_WEB_VIEW(_webkit_web_view_new() ); */ |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10255 gtk_container_add( GTK_CONTAINER (widget), GTK_WIDGET(web_view) ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10256 gtk_widget_show( GTK_WIDGET(web_view) ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10257 g_object_set_data(G_OBJECT(widget), "_dw_web_view", (gpointer)web_view); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10258 g_signal_connect( web_view, "populate-popup", G_CALLBACK(_dw_html_populate_popup_cb), NULL ); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10259 } |
1354
1f22addc2722
Changed the behavior of dw_html_new() to return NULL on failure like the documentation indicates...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1353
diff
changeset
|
10260 gtk_widget_show(widget); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10261 #else |
1358
2f5e54b0c5c4
dw_debug() lines in dw_html_new() should end with a newline.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1355
diff
changeset
|
10262 dw_debug( "HTML widget not available; you do not have access to webkit.\n" ); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10263 #endif |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10264 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10265 return widget; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10266 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10267 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10268 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10269 * Gets the contents of the default clipboard as text. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10270 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10271 * None. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10272 * Returns: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10273 * Pointer to an allocated string of text or NULL if clipboard empty or contents could not |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10274 * be converted to text. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10275 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10276 char *dw_clipboard_get_text() |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10277 { |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10278 int _locked_by_me = FALSE; |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10279 GtkClipboard *clipboard_object; |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10280 char *ret = NULL; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
10281 |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10282 DW_MUTEX_LOCK; |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10283 if((clipboard_object = gtk_clipboard_get( GDK_SELECTION_CLIPBOARD ))) |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10284 { |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10285 gchar *clipboard_contents; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
10286 |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10287 if((clipboard_contents = gtk_clipboard_wait_for_text( clipboard_object ))) |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10288 { |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10289 ret = strdup((char *)clipboard_contents); |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10290 g_free(clipboard_contents); |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10291 } |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10292 } |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10293 DW_MUTEX_UNLOCK; |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10294 return ret; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10295 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10296 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10297 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10298 * Sets the contents of the default clipboard to the supplied text. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10299 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10300 * Text. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10301 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10302 void dw_clipboard_set_text( char *str, int len ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10303 { |
971
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10304 int _locked_by_me = FALSE; |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10305 GtkClipboard *clipboard_object; |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10306 |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10307 DW_MUTEX_LOCK; |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10308 if((clipboard_object = gtk_clipboard_get( GDK_SELECTION_CLIPBOARD ))) |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10309 { |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10310 gtk_clipboard_set_text( clipboard_object, str, len ); |
2a21915684d1
Step 1 in modernizing the GTK3 module.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
959
diff
changeset
|
10311 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10312 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10313 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10314 |
1136
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10315 /* Internal function to create the drawable pixmap and call the function */ |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10316 static void _dw_draw_page(GtkPrintOperation *operation, GtkPrintContext *context, int page_nr) |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10317 { |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10318 cairo_t *cr = gtk_print_context_get_cairo_context(context); |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10319 void *drawdata = g_object_get_data(G_OBJECT(operation), "_dw_drawdata"); |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10320 int (*drawfunc)(HPRINT, HPIXMAP, int, void *) = g_object_get_data(G_OBJECT(operation), "_dw_drawfunc"); |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10321 int result = 0; |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10322 HPIXMAP pixmap; |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10323 |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10324 if(cr && drawfunc && (pixmap = calloc(1,sizeof(struct _hpixmap)))) |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10325 { |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10326 pixmap->image = cairo_get_group_target(cr); |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10327 pixmap->handle = (HWND)operation; |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10328 pixmap->width = gtk_print_context_get_width(context); |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10329 pixmap->height = gtk_print_context_get_height(context); |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10330 result = drawfunc((HPRINT)operation, pixmap, page_nr, drawdata); |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10331 if(result) |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10332 gtk_print_operation_draw_page_finish(operation); |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10333 free(pixmap); |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10334 } |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10335 } |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10336 |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10337 /* |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10338 * Creates a new print object. |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10339 * Parameters: |
1152
58b5374355ab
Added print jobname parameter to dw_print_new().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1149
diff
changeset
|
10340 * jobname: Name of the print job to show in the queue. |
1136
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10341 * flags: Flags to initially configure the print object. |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10342 * pages: Number of pages to print. |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10343 * drawfunc: The pointer to the function to be used as the callback. |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10344 * drawdata: User data to be passed to the handler function. |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10345 * Returns: |
1137
e24e5a13ff2c
Added code to test the new print functions in dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1136
diff
changeset
|
10346 * A handle to the print object or NULL on failure. |
1136
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10347 */ |
1152
58b5374355ab
Added print jobname parameter to dw_print_new().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1149
diff
changeset
|
10348 HPRINT API dw_print_new(char *jobname, unsigned long flags, unsigned int pages, void *drawfunc, void *drawdata) |
1136
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10349 { |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10350 GtkPrintOperation *op; |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10351 int _locked_by_me = FALSE; |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10352 |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10353 if(!drawfunc) |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10354 return NULL; |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10355 |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10356 DW_MUTEX_LOCK; |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10357 if((op = gtk_print_operation_new())) |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10358 { |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10359 gtk_print_operation_set_n_pages(op, pages); |
1152
58b5374355ab
Added print jobname parameter to dw_print_new().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1149
diff
changeset
|
10360 gtk_print_operation_set_job_name(op, jobname ? jobname : "Dynamic Windows Print Job"); |
1136
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10361 g_object_set_data(G_OBJECT(op), "_dw_drawfunc", drawfunc); |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10362 g_object_set_data(G_OBJECT(op), "_dw_drawdata", drawdata); |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10363 g_signal_connect(op, "draw_page", G_CALLBACK(_dw_draw_page), NULL); |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10364 } |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10365 DW_MUTEX_UNLOCK; |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10366 return (HPRINT)op; |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10367 } |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10368 |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10369 /* |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10370 * Runs the print job, causing the draw page callbacks to fire. |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10371 * Parameters: |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10372 * print: Handle to the print object returned by dw_print_new(). |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10373 * flags: Flags to run the print job. |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10374 * Returns: |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10375 * DW_ERROR_UNKNOWN on error or DW_ERROR_NONE on success. |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10376 */ |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10377 int API dw_print_run(HPRINT print, unsigned long flags) |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10378 { |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10379 GtkPrintOperationResult res; |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10380 GtkPrintOperation *op = (GtkPrintOperation *)print; |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10381 int _locked_by_me = FALSE; |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10382 |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10383 DW_MUTEX_LOCK; |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10384 res = gtk_print_operation_run(op, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, NULL, NULL); |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10385 DW_MUTEX_UNLOCK; |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10386 return (res == GTK_PRINT_OPERATION_RESULT_ERROR ? DW_ERROR_UNKNOWN : DW_ERROR_NONE); |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10387 } |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10388 |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10389 /* |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10390 * Cancels the print job, typically called from a draw page callback. |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10391 * Parameters: |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10392 * print: Handle to the print object returned by dw_print_new(). |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10393 */ |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10394 void API dw_print_cancel(HPRINT print) |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10395 { |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10396 int _locked_by_me = FALSE; |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10397 GtkPrintOperation *op = (GtkPrintOperation *)print; |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10398 |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10399 DW_MUTEX_LOCK; |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10400 gtk_print_operation_cancel(op); |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10401 DW_MUTEX_UNLOCK; |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10402 } |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10403 |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10404 /* |
1a5b0908659b
Initial implementation of the DynamicWindows Print object for GTK3.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1127
diff
changeset
|
10405 * Returns a pointer to a static buffer which contains the |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10406 * current user directory. Or the root directory (C:\ on |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10407 * OS/2 and Windows). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10408 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10409 char *dw_user_dir(void) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10410 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10411 static char _user_dir[1024] = ""; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10412 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10413 if(!_user_dir[0]) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10414 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10415 char *home = getenv("HOME"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10416 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10417 if(home) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10418 strcpy(_user_dir, home); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10419 else |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10420 strcpy(_user_dir, "/"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10421 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10422 return _user_dir; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10423 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10424 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10425 /* |
1384
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
10426 * Returns a pointer to a static buffer which containes the |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
10427 * private application data directory. |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
10428 */ |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
10429 char * API dw_app_dir(void) |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
10430 { |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
10431 return _dw_share_path; |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
10432 } |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
10433 |
156e32814c83
Cleanup of the previous commits and added Unix support.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1373
diff
changeset
|
10434 /* |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10435 * Call a function from the window (widget)'s context. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10436 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10437 * handle: Window handle of the widget. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10438 * function: Function pointer to be called. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10439 * data: Pointer to the data to be passed to the function. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10440 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10441 void dw_window_function(HWND handle, void *function, void *data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10442 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10443 void (* windowfunc)(void *); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10444 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10445 windowfunc = function; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10446 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10447 if(windowfunc) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10448 windowfunc(data); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10449 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10450 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10451 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10452 * Add a named user data item to a window handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10453 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10454 * window: Window handle of signal to be called back. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10455 * dataname: A string pointer identifying which signal to be hooked. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10456 * data: User data to be passed to the handler function. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10457 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10458 void dw_window_set_data(HWND window, char *dataname, void *data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10459 { |
784
fb21fdd6b839
Slight code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
783
diff
changeset
|
10460 HWND thiswindow = window; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10461 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10462 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10463 if(!window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10464 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10465 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10466 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10467 if(GTK_IS_SCROLLED_WINDOW(window)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10468 { |
784
fb21fdd6b839
Slight code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
783
diff
changeset
|
10469 thiswindow = (HWND)g_object_get_data(G_OBJECT(window), "_dw_user"); |
fb21fdd6b839
Slight code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
783
diff
changeset
|
10470 } |
fb21fdd6b839
Slight code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
783
diff
changeset
|
10471 if(thiswindow && G_IS_OBJECT(thiswindow)) |
fb21fdd6b839
Slight code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
783
diff
changeset
|
10472 g_object_set_data(G_OBJECT(thiswindow), dataname, (gpointer)data); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10473 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10474 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10475 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10476 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10477 * Gets a named user data item to a window handle. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10478 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10479 * window: Window handle of signal to be called back. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10480 * dataname: A string pointer identifying which signal to be hooked. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10481 * data: User data to be passed to the handler function. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10482 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10483 void *dw_window_get_data(HWND window, char *dataname) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10484 { |
784
fb21fdd6b839
Slight code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
783
diff
changeset
|
10485 HWND thiswindow = window; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10486 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10487 void *ret = NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10488 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10489 if(!window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10490 return NULL; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10491 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10492 DW_MUTEX_LOCK; |
784
fb21fdd6b839
Slight code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
783
diff
changeset
|
10493 if(GTK_IS_SCROLLED_WINDOW(window)) |
fb21fdd6b839
Slight code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
783
diff
changeset
|
10494 { |
fb21fdd6b839
Slight code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
783
diff
changeset
|
10495 thiswindow = (HWND)g_object_get_data(G_OBJECT(window), "_dw_user"); |
fb21fdd6b839
Slight code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
783
diff
changeset
|
10496 } |
fb21fdd6b839
Slight code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
783
diff
changeset
|
10497 if(G_IS_OBJECT(thiswindow)) |
fb21fdd6b839
Slight code cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
783
diff
changeset
|
10498 ret = (void *)g_object_get_data(G_OBJECT(thiswindow), dataname); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10499 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10500 return ret; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10501 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10502 |
874
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10503 /* Internal function to get the state of the timer before firing */ |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10504 gboolean _dw_timer_func(gpointer data) |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10505 { |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10506 void (*sigfunc)(void *data) = NULL; |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10507 void *sdata; |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
10508 char tmpbuf[31] = {0}; |
874
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10509 int *tag = data; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
10510 |
874
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10511 if(tag) |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10512 { |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10513 snprintf(tmpbuf, 30, "_dw_timer%d", *tag); |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10514 sigfunc = g_object_get_data(G_OBJECT(_DWObject), tmpbuf); |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10515 snprintf(tmpbuf, 30, "_dw_timerdata%d", *tag); |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10516 sdata = g_object_get_data(G_OBJECT(_DWObject), tmpbuf); |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10517 } |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10518 if(!sigfunc) |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10519 { |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10520 if(tag) |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10521 free(tag); |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10522 return FALSE; |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10523 } |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10524 sigfunc(sdata); |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10525 return TRUE; |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10526 } |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10527 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10528 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10529 * Add a callback to a timer event. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10530 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10531 * interval: Milliseconds to delay between calls. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10532 * sigfunc: The pointer to the function to be used as the callback. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10533 * data: User data to be passed to the handler function. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10534 * Returns: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10535 * Timer ID for use with dw_timer_disconnect(), 0 on error. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10536 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10537 int API dw_timer_connect(int interval, void *sigfunc, void *data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10538 { |
874
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10539 int *tag, _locked_by_me = FALSE; |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
10540 char tmpbuf[31] = {0}; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
10541 |
874
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10542 tag = calloc(1, sizeof(int)); |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
10543 |
874
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10544 DW_MUTEX_LOCK; |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10545 *tag = g_timeout_add(interval, (GSourceFunc)_dw_timer_func, (gpointer)tag); |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10546 snprintf(tmpbuf, 30, "_dw_timer%d", *tag); |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10547 g_object_set_data(G_OBJECT(_DWObject), tmpbuf, sigfunc); |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10548 snprintf(tmpbuf, 30, "_dw_timerdata%d", *tag); |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10549 g_object_set_data(G_OBJECT(_DWObject), tmpbuf, data); |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10550 DW_MUTEX_UNLOCK; |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10551 return *tag; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10552 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10553 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10554 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10555 * Removes timer callback. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10556 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10557 * id: Timer ID returned by dw_timer_connect(). |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10558 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10559 void API dw_timer_disconnect(int id) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10560 { |
874
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10561 int _locked_by_me = FALSE; |
1306
dbd507f42947
Added dw_debug() logging function which will output a message to the debugging console.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1300
diff
changeset
|
10562 char tmpbuf[31] = {0}; |
876
13442724eb5d
One last change... use 30 bytes instead of 20... don't want to overflow.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
875
diff
changeset
|
10563 |
13442724eb5d
One last change... use 30 bytes instead of 20... don't want to overflow.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
875
diff
changeset
|
10564 snprintf(tmpbuf, 30, "_dw_timer%d", id); |
874
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10565 DW_MUTEX_LOCK; |
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10566 g_object_set_data(G_OBJECT(_DWObject), tmpbuf, NULL); |
876
13442724eb5d
One last change... use 30 bytes instead of 20... don't want to overflow.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
875
diff
changeset
|
10567 snprintf(tmpbuf, 30, "_dw_timerdata%d", id); |
875
e1afa43261d9
After thinking about it... probably need to get rid of the saved data to so we don't leak.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
874
diff
changeset
|
10568 g_object_set_data(G_OBJECT(_DWObject), tmpbuf, NULL); |
874
18eab415ff0c
Rewrote the timers for GTK3. Due to the removal of the timer remove by ID function.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
861
diff
changeset
|
10569 DW_MUTEX_UNLOCK; |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10570 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10571 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10572 /* Get the actual signal window handle not the user window handle |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10573 * Should mimic the code in dw_signal_connect() below. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10574 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10575 static HWND _find_signal_window(HWND window, char *signame) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10576 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10577 HWND thiswindow = window; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10578 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10579 if(GTK_IS_SCROLLED_WINDOW(thiswindow)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10580 thiswindow = (HWND)g_object_get_data(G_OBJECT(window), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10581 else if(GTK_IS_VSCALE(thiswindow) || GTK_IS_HSCALE(thiswindow) || |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10582 GTK_IS_VSCROLLBAR(thiswindow) || GTK_IS_HSCROLLBAR(thiswindow) || |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10583 GTK_IS_SPIN_BUTTON(thiswindow)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10584 thiswindow = (GtkWidget *)g_object_get_data(G_OBJECT(thiswindow), "_dw_adjustment"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10585 else if(GTK_IS_TREE_VIEW(thiswindow) && strcmp(signame, DW_SIGNAL_ITEM_SELECT) == 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10586 thiswindow = (GtkWidget *)gtk_tree_view_get_selection(GTK_TREE_VIEW(thiswindow)); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10587 return thiswindow; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10588 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10589 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10590 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10591 * Add a callback to a window event. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10592 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10593 * window: Window handle of signal to be called back. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10594 * signame: A string pointer identifying which signal to be hooked. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10595 * sigfunc: The pointer to the function to be used as the callback. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10596 * data: User data to be passed to the handler function. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10597 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10598 void dw_signal_connect(HWND window, char *signame, void *sigfunc, void *data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10599 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10600 void *thisfunc = _findsigfunc(signame); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10601 char *thisname = signame; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10602 HWND thiswindow = window; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10603 int sigid, _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10604 gint cid; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10605 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10606 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10607 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10608 * If the window we are setting the signal on is a scrolled window we need to get |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10609 * the "real" widget type. thiswindow is the "real" widget type |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10610 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10611 if (GTK_IS_SCROLLED_WINDOW(thiswindow)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10612 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10613 thiswindow = (HWND)g_object_get_data(G_OBJECT(window), "_dw_user"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10614 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10615 |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
10616 if (strcmp(signame, DW_SIGNAL_EXPOSE) == 0) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
10617 { |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
10618 thisname = "draw"; |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
10619 } |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
10620 else if (GTK_IS_MENU_ITEM(thiswindow) && strcmp(signame, DW_SIGNAL_CLICKED) == 0) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10621 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10622 thisname = "activate"; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10623 thisfunc = _findsigfunc(thisname); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10624 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10625 else if (GTK_IS_TREE_VIEW(thiswindow) && strcmp(signame, DW_SIGNAL_ITEM_CONTEXT) == 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10626 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10627 sigid = _set_signal_handler(thiswindow, window, sigfunc, data, thisfunc); |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
10628 cid = g_signal_connect(G_OBJECT(thiswindow), "button_press_event", G_CALLBACK(thisfunc), GINT_TO_POINTER(sigid)); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10629 _set_signal_handler_id(thiswindow, sigid, cid); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10630 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10631 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10632 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10633 } |
785
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
10634 else if ((GTK_IS_TREE_VIEW(thiswindow) && strcmp(signame, DW_SIGNAL_ITEM_SELECT) == 0) || |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
10635 (GTK_IS_COMBO_BOX(thiswindow) && strcmp(signame, DW_SIGNAL_LIST_SELECT) == 0)) |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
10636 { |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
10637 GtkWidget *widget = thiswindow; |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
10638 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10639 thisname = "changed"; |
1096
5261439c7227
Fix bug with setting up container on 64bit platform.
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1092
diff
changeset
|
10640 |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
10641 sigid = _set_signal_handler(widget, window, sigfunc, data, thisfunc); |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
10642 if(GTK_IS_TREE_VIEW(thiswindow)) |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
10643 { |
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
10644 thiswindow = (GtkWidget *)gtk_tree_view_get_selection(GTK_TREE_VIEW(thiswindow)); |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
10645 cid = g_signal_connect(G_OBJECT(thiswindow), thisname, G_CALLBACK(thisfunc), GINT_TO_POINTER(sigid)); |
785
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
10646 } |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
10647 else |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
10648 { |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
10649 cid = g_signal_connect(G_OBJECT(thiswindow), thisname, G_CALLBACK(_combobox_select_event), GINT_TO_POINTER(sigid)); |
785
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
10650 } |
a86c54519de0
Implemented list select event for both combobox and listbox (implemented via the tree view).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
784
diff
changeset
|
10651 _set_signal_handler_id(widget, sigid, cid); |
779
d67d2f626c33
More code and cleanups for listboxes/combobox and event handling...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
778
diff
changeset
|
10652 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10653 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10654 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10655 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10656 else if (GTK_IS_TREE_VIEW(thiswindow) && strcmp(signame, DW_SIGNAL_TREE_EXPAND) == 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10657 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10658 thisname = "row-expanded"; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10659 } |
783
9ef49898a5e6
Container events now working except for column-click.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
782
diff
changeset
|
10660 else if (GTK_IS_TREE_VIEW(thiswindow) && strcmp(signame, DW_SIGNAL_ITEM_ENTER) == 0) |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10661 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10662 sigid = _set_signal_handler(thiswindow, window, sigfunc, data, _container_enter_event); |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
10663 cid = g_signal_connect(G_OBJECT(thiswindow), "key_press_event", G_CALLBACK(_container_enter_event), GINT_TO_POINTER(sigid)); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10664 _set_signal_handler_id(thiswindow, sigid, cid); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10665 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10666 thisname = "button_press_event"; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10667 thisfunc = _findsigfunc(DW_SIGNAL_ITEM_ENTER); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10668 } |
786
0e251c2f5d08
Implemented the column click event handler...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
785
diff
changeset
|
10669 else if (GTK_IS_TREE_VIEW(thiswindow) && strcmp(signame, DW_SIGNAL_COLUMN_CLICK) == 0) |
0e251c2f5d08
Implemented the column click event handler...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
785
diff
changeset
|
10670 { |
0e251c2f5d08
Implemented the column click event handler...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
785
diff
changeset
|
10671 /* We don't actually need a signal handler here... just need to assign the handler ID |
0e251c2f5d08
Implemented the column click event handler...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
785
diff
changeset
|
10672 * Since the handlers for the columns were already created in _dw_container_setup() |
0e251c2f5d08
Implemented the column click event handler...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
785
diff
changeset
|
10673 */ |
0e251c2f5d08
Implemented the column click event handler...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
785
diff
changeset
|
10674 sigid = _set_signal_handler(thiswindow, window, sigfunc, data, _column_click_event); |
788
f8f4f72d6462
Implemented dw_listbox_selected_multi() however need to do some testing to make sure this works in all cases.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
787
diff
changeset
|
10675 g_object_set_data(G_OBJECT(thiswindow), "_dw_column_click_id", GINT_TO_POINTER(sigid+1)); |
786
0e251c2f5d08
Implemented the column click event handler...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
785
diff
changeset
|
10676 DW_MUTEX_UNLOCK; |
0e251c2f5d08
Implemented the column click event handler...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
785
diff
changeset
|
10677 return; |
0e251c2f5d08
Implemented the column click event handler...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
785
diff
changeset
|
10678 } |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10679 else if (strcmp(signame, DW_SIGNAL_SET_FOCUS) == 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10680 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10681 thisname = "focus-in-event"; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10682 if (GTK_IS_COMBO_BOX(thiswindow)) |
789
8fe51d916b36
Reenabled the set-focus code that was disabled due to combobox issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
788
diff
changeset
|
10683 thiswindow = gtk_bin_get_child(GTK_BIN(thiswindow)); |
8fe51d916b36
Reenabled the set-focus code that was disabled due to combobox issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
788
diff
changeset
|
10684 } |
8fe51d916b36
Reenabled the set-focus code that was disabled due to combobox issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
788
diff
changeset
|
10685 #if 0 |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10686 else if (strcmp(signame, DW_SIGNAL_LOSE_FOCUS) == 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10687 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10688 thisname = "focus-out-event"; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10689 if(GTK_IS_COMBO_BOX(thiswindow)) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10690 thiswindow = GTK_COMBO_BOX(thiswindow)->entry; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10691 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10692 #endif |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10693 else if (GTK_IS_VSCALE(thiswindow) || GTK_IS_HSCALE(thiswindow) || |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10694 GTK_IS_VSCROLLBAR(thiswindow) || GTK_IS_HSCROLLBAR(thiswindow) || |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10695 GTK_IS_SPIN_BUTTON(thiswindow) ) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10696 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10697 thiswindow = (GtkWidget *)g_object_get_data(G_OBJECT(thiswindow), "_dw_adjustment"); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10698 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10699 else if (GTK_IS_NOTEBOOK(thiswindow) && strcmp(signame, DW_SIGNAL_SWITCH_PAGE) == 0) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10700 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10701 thisname = "switch-page"; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10702 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10703 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10704 if (!thisfunc || !thiswindow) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10705 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10706 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10707 return; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10708 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10709 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10710 sigid = _set_signal_handler(thiswindow, window, sigfunc, data, thisfunc); |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
10711 cid = g_signal_connect(G_OBJECT(thiswindow), thisname, G_CALLBACK(thisfunc),GINT_TO_POINTER(sigid)); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10712 _set_signal_handler_id(thiswindow, sigid, cid); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10713 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10714 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10715 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10716 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10717 * Removes callbacks for a given window with given name. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10718 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10719 * window: Window handle of callback to be removed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10720 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10721 void dw_signal_disconnect_by_name(HWND window, char *signame) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10722 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10723 HWND thiswindow; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10724 int z, count; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10725 void *thisfunc; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10726 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10727 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10728 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10729 thiswindow = _find_signal_window(window, signame); |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
10730 count = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(thiswindow), "_dw_sigcounter")); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10731 thisfunc = _findsigfunc(signame); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10732 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10733 for(z=0;z<count;z++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10734 { |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
10735 SignalHandler sh = _get_signal_handler(thiswindow, GINT_TO_POINTER(z)); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10736 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10737 if(sh.intfunc == thisfunc) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10738 _remove_signal_handler(thiswindow, z); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10739 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10740 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10741 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10742 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10743 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10744 * Removes all callbacks for a given window. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10745 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10746 * window: Window handle of callback to be removed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10747 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10748 void dw_signal_disconnect_by_window(HWND window) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10749 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10750 HWND thiswindow; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10751 int z, count; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10752 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10753 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10754 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10755 thiswindow = _find_signal_window(window, NULL); |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
10756 count = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(thiswindow), "_dw_sigcounter")); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10757 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10758 for(z=0;z<count;z++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10759 _remove_signal_handler(thiswindow, z); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10760 g_object_set_data(G_OBJECT(thiswindow), "_dw_sigcounter", NULL); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10761 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10762 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10763 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10764 /* |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10765 * Removes all callbacks for a given window with specified data. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10766 * Parameters: |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10767 * window: Window handle of callback to be removed. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10768 * data: Pointer to the data to be compared against. |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10769 */ |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10770 void dw_signal_disconnect_by_data(HWND window, void *data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10771 { |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10772 HWND thiswindow; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10773 int z, count; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10774 int _locked_by_me = FALSE; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10775 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10776 DW_MUTEX_LOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10777 thiswindow = _find_signal_window(window, NULL); |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
10778 count = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(thiswindow), "_dw_sigcounter")); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10779 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10780 for(z=0;z<count;z++) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10781 { |
1092
0fc7387abfd1
Similar GTK3 changes to what I just committed for GTK2, to avoid casting warnings on 64bit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1087
diff
changeset
|
10782 SignalHandler sh = _get_signal_handler(thiswindow, GINT_TO_POINTER(z)); |
775
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10783 |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10784 if(sh.data == data) |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10785 _remove_signal_handler(thiswindow, z); |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10786 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10787 DW_MUTEX_UNLOCK; |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10788 } |
5ec50e403a8a
Added initial support for GTK 3.0. Split it off into its own directory.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff
changeset
|
10789 |