Mercurial > pidgin.yaz
annotate pidgin/win32/gtkwin32dep.c @ 30291:5c639069557d
disapproval of revision '5f410e729e7a8a2e46752d46b37a7c11e17d5ed7'
In favor of Evan's changes
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Tue, 04 May 2010 02:22:26 +0000 |
parents | 80e05718db82 |
children | 129f973c38b5 |
rev | line source |
---|---|
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
1 /** |
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
2 * @file gtkwin32dep.c UI Win32 Specific Functionality |
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
3 * @ingroup win32 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4 * |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
5 * Pidgin is the legal property of its developers, whose names are too numerous |
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
6 * to list here. Please refer to the COPYRIGHT file distributed with this |
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
7 * source distribution. |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
9 * This program is free software; you can redistribute it and/or modify |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
10 * it under the terms of the GNU General Public License as published by |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
11 * the Free Software Foundation; either version 2 of the License, or |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
12 * (at your option) any later version. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
13 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
14 * This program is distributed in the hope that it will be useful, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
17 * GNU General Public License for more details. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
18 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
19 * You should have received a copy of the GNU General Public License |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
20 * along with this program; if not, write to the Free Software |
19680
44b4e8bd759b
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
18448
diff
changeset
|
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
22 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
23 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
24 #define _WIN32_IE 0x500 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
25 #ifndef WINVER |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
26 #define WINVER 0x0500 /* W2K */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
27 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
28 #include <windows.h> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
29 #include <io.h> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
30 #include <stdlib.h> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
31 #include <stdio.h> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
32 #include <winuser.h> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
33 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
34 #include <glib.h> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
35 #include <glib/gstdio.h> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
36 #include <gtk/gtk.h> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
37 #include <gdk/gdkwin32.h> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
38 |
18448
4b1e2aefeb9d
Fix the win32 build. Thanks to Etan and Lee Roach. Fixes #1929.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
17078
diff
changeset
|
39 #include "internal.h" |
4b1e2aefeb9d
Fix the win32 build. Thanks to Etan and Lee Roach. Fixes #1929.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
17078
diff
changeset
|
40 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
41 #include "debug.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
42 #include "notify.h" |
21828
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
43 #include "network.h" |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
44 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
45 #include "resource.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
46 #include "idletrack.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
47 #include "zlib.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
48 #include "untar.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
49 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
50 #include "gtkwin32dep.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
51 #include "win32dep.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
52 #include "gtkconv.h" |
21828
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
53 #include "gtkconn.h" |
15613
b0471b2a1de9
Core support for external protocol URIs. The actual handling of the URIs will be in the prpls and other plugins. This commit only includes the win32 method of actually passing in a URI - the dbus implementation still needs to be written.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15516
diff
changeset
|
54 #include "util.h" |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
55 #include "wspell.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
56 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
57 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
58 * GLOBALS |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
59 */ |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
60 HINSTANCE exe_hInstance = 0; |
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
61 HINSTANCE dll_hInstance = 0; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
62 HWND messagewin_hwnd; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
63 static int gtkwin32_handle; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
64 |
21828
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
65 static gboolean pwm_handles_connections = TRUE; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
66 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
67 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
68 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
69 * PUBLIC CODE |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
70 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
71 |
15997
495800004c0a
4bit icons for windows < XP. These are certainly not as pretty as the originals, but look a lot better than scaled down versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15823
diff
changeset
|
72 HINSTANCE winpidgin_exe_hinstance(void) { |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
73 return exe_hInstance; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
74 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
75 |
15997
495800004c0a
4bit icons for windows < XP. These are certainly not as pretty as the originals, but look a lot better than scaled down versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15823
diff
changeset
|
76 HINSTANCE winpidgin_dll_hinstance(void) { |
495800004c0a
4bit icons for windows < XP. These are certainly not as pretty as the originals, but look a lot better than scaled down versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15823
diff
changeset
|
77 return dll_hInstance; |
495800004c0a
4bit icons for windows < XP. These are certainly not as pretty as the originals, but look a lot better than scaled down versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15823
diff
changeset
|
78 } |
495800004c0a
4bit icons for windows < XP. These are certainly not as pretty as the originals, but look a lot better than scaled down versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15823
diff
changeset
|
79 |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
80 int winpidgin_gz_decompress(const char* in, const char* out) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
81 gzFile fin; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
82 FILE *fout; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
83 char buf[1024]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
84 int ret; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
85 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
86 if((fin = gzopen(in, "rb"))) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
87 if(!(fout = g_fopen(out, "wb"))) { |
15823 | 88 purple_debug_error("winpidgin_gz_decompress", "Error opening file: %s\n", out); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
89 gzclose(fin); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
90 return 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
91 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
92 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
93 else { |
15823 | 94 purple_debug_error("winpidgin_gz_decompress", "gzopen failed to open: %s\n", in); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
95 return 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
96 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
97 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
98 while((ret = gzread(fin, buf, 1024))) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
99 if(fwrite(buf, 1, ret, fout) < ret) { |
15823 | 100 purple_debug_error("wpurple_gz_decompress", "Error writing %d bytes to file\n", ret); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
101 gzclose(fin); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
102 fclose(fout); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
103 return 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
104 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
105 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
106 fclose(fout); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
107 gzclose(fin); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
108 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
109 if(ret < 0) { |
15823 | 110 purple_debug_error("winpidgin_gz_decompress", "gzread failed while reading: %s\n", in); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
111 return 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
112 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
113 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
114 return 1; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
115 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
116 |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
117 int winpidgin_gz_untar(const char* filename, const char* destdir) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
118 char tmpfile[_MAX_PATH]; |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
119 char template[]="wpidginXXXXXX"; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
120 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
121 sprintf(tmpfile, "%s%s%s", g_get_tmp_dir(), G_DIR_SEPARATOR_S, _mktemp(template)); |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
122 if(winpidgin_gz_decompress(filename, tmpfile)) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
123 int ret; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
124 if(untar(tmpfile, destdir, UNTAR_FORCE | UNTAR_QUIET)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
125 ret = 1; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
126 else { |
15823 | 127 purple_debug_error("winpidgin_gz_untar", "Failure untarring %s\n", tmpfile); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
128 ret = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
129 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
130 g_unlink(tmpfile); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
131 return ret; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
132 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
133 else { |
15823 | 134 purple_debug_error("winpidgin_gz_untar", "Failed to gz decompress %s\n", filename); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
135 return 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
136 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
137 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
138 |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
139 void winpidgin_shell_execute(const char *target, const char *verb, const char *clazz) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
140 |
29493
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
141 SHELLEXECUTEINFOW wsinfo; |
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
142 wchar_t *w_uri, *w_verb, *w_clazz = NULL; |
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
143 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
144 g_return_if_fail(target != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
145 g_return_if_fail(verb != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
146 |
29493
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
147 w_uri = g_utf8_to_utf16(target, -1, NULL, NULL, NULL); |
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
148 w_verb = g_utf8_to_utf16(verb, -1, NULL, NULL, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
149 |
29493
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
150 memset(&wsinfo, 0, sizeof(wsinfo)); |
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
151 wsinfo.cbSize = sizeof(wsinfo); |
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
152 wsinfo.lpVerb = w_verb; |
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
153 wsinfo.lpFile = w_uri; |
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
154 wsinfo.nShow = SW_SHOWNORMAL; |
29757
2ad2e3490b23
propagate from branch 'im.pidgin.pidgin' (head 1d831e835bac31debd4d67cc75397c378c00bc7e)
Paul Aurich <paul@darkrain42.org>
diff
changeset
|
155 wsinfo.fMask |= SEE_MASK_FLAG_NO_UI; |
29493
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
156 if (clazz != NULL) { |
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
157 w_clazz = g_utf8_to_utf16(clazz, -1, NULL, NULL, NULL); |
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
158 wsinfo.fMask |= SEE_MASK_CLASSNAME; |
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
159 wsinfo.lpClass = w_clazz; |
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
160 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
161 |
29493
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
162 if(!ShellExecuteExW(&wsinfo)) |
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
163 purple_debug_error("winpidgin", "Error opening URI: %s error: %d\n", |
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
164 target, (int) wsinfo.hInstApp); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
165 |
29493
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
166 g_free(w_uri); |
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
167 g_free(w_verb); |
224f9674a57e
Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23784
diff
changeset
|
168 g_free(w_clazz); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
169 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
170 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
171 |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
172 void winpidgin_notify_uri(const char *uri) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
173 /* We'll allow whatever URI schemes are supported by the |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
174 * default http browser. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
175 */ |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
176 winpidgin_shell_execute(uri, "open", "http"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
177 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
178 |
15613
b0471b2a1de9
Core support for external protocol URIs. The actual handling of the URIs will be in the prpls and other plugins. This commit only includes the win32 method of actually passing in a URI - the dbus implementation still needs to be written.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15516
diff
changeset
|
179 #define PIDGIN_WM_FOCUS_REQUEST (WM_APP + 13) |
b0471b2a1de9
Core support for external protocol URIs. The actual handling of the URIs will be in the prpls and other plugins. This commit only includes the win32 method of actually passing in a URI - the dbus implementation still needs to be written.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15516
diff
changeset
|
180 #define PIDGIN_WM_PROTOCOL_HANDLE (WM_APP + 14) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
181 |
21828
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
182 static void* |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
183 winpidgin_netconfig_changed_cb(void *data) |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
184 { |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
185 pwm_handles_connections = FALSE; |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
186 |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
187 return NULL; |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
188 } |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
189 |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
190 static void* |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
191 winpidgin_get_handle(void) |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
192 { |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
193 static int handle; |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
194 |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
195 return &handle; |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
196 } |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
197 |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
198 static gboolean |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
199 winpidgin_pwm_reconnect() |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
200 { |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
201 purple_signal_disconnect(purple_network_get_handle(), "network-configuration-changed", |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
202 winpidgin_get_handle(), PURPLE_CALLBACK(winpidgin_netconfig_changed_cb)); |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
203 |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
204 if (pwm_handles_connections == TRUE) { |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
205 PurpleConnectionUiOps *ui_ops = pidgin_connections_get_ui_ops(); |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
206 |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
207 purple_debug_info("winpidgin", "Resumed from standby, reconnecting accounts.\n"); |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
208 |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
209 if (ui_ops != NULL && ui_ops->network_connected != NULL) |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
210 ui_ops->network_connected(); |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
211 } else { |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
212 purple_debug_info("winpidgin", "Resumed from standby, gtkconn will handle reconnecting.\n"); |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
213 pwm_handles_connections = TRUE; |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
214 } |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
215 |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
216 return FALSE; |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
217 } |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
218 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
219 static LRESULT CALLBACK message_window_handler(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
220 |
15613
b0471b2a1de9
Core support for external protocol URIs. The actual handling of the URIs will be in the prpls and other plugins. This commit only includes the win32 method of actually passing in a URI - the dbus implementation still needs to be written.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15516
diff
changeset
|
221 if (msg == PIDGIN_WM_FOCUS_REQUEST) { |
15823 | 222 purple_debug_info("winpidgin", "Got external Buddy List focus request."); |
223 purple_blist_set_visible(TRUE); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
224 return TRUE; |
15613
b0471b2a1de9
Core support for external protocol URIs. The actual handling of the URIs will be in the prpls and other plugins. This commit only includes the win32 method of actually passing in a URI - the dbus implementation still needs to be written.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15516
diff
changeset
|
225 } else if (msg == PIDGIN_WM_PROTOCOL_HANDLE) { |
b0471b2a1de9
Core support for external protocol URIs. The actual handling of the URIs will be in the prpls and other plugins. This commit only includes the win32 method of actually passing in a URI - the dbus implementation still needs to be written.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15516
diff
changeset
|
226 char *proto_msg = (char *) lparam; |
15823 | 227 purple_debug_info("winpidgin", "Got protocol handler request: %s\n", proto_msg ? proto_msg : ""); |
228 purple_got_protocol_handler_uri(proto_msg); | |
15613
b0471b2a1de9
Core support for external protocol URIs. The actual handling of the URIs will be in the prpls and other plugins. This commit only includes the win32 method of actually passing in a URI - the dbus implementation still needs to be written.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15516
diff
changeset
|
229 return TRUE; |
21828
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
230 } else if (msg == WM_POWERBROADCAST) { |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
231 if (wparam == PBT_APMQUERYSUSPEND) { |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
232 purple_debug_info("winpidgin", "Windows requesting permission to suspend.\n"); |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
233 return TRUE; |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
234 } else if (wparam == PBT_APMSUSPEND) { |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
235 PurpleConnectionUiOps *ui_ops = pidgin_connections_get_ui_ops(); |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
236 |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
237 purple_debug_info("winpidgin", "Entering system standby, disconnecting accounts.\n"); |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
238 |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
239 if (ui_ops != NULL && ui_ops->network_disconnected != NULL) |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
240 ui_ops->network_disconnected(); |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
241 |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
242 purple_signal_connect(purple_network_get_handle(), "network-configuration-changed", winpidgin_get_handle(), |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
243 PURPLE_CALLBACK(winpidgin_netconfig_changed_cb), NULL); |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
244 |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
245 return TRUE; |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
246 } else if (wparam == PBT_APMRESUMESUSPEND) { |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
247 purple_debug_info("winpidgin", "Resuming from system standby.\n"); |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
248 /* TODO: It seems like it'd be wise to use the NLA message, if possible, instead of this. */ |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
249 purple_timeout_add_seconds(1, winpidgin_pwm_reconnect, NULL); |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
250 return TRUE; |
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
251 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
252 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
253 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
254 return DefWindowProc(hwnd, msg, wparam, lparam); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
255 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
256 |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
257 static HWND winpidgin_message_window_init(void) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
258 HWND win_hwnd; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
259 WNDCLASSEX wcx; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
260 LPCTSTR wname; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
261 |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
262 wname = TEXT("WinpidginMsgWinCls"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
263 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
264 wcx.cbSize = sizeof(wcx); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
265 wcx.style = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
266 wcx.lpfnWndProc = message_window_handler; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
267 wcx.cbClsExtra = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
268 wcx.cbWndExtra = 0; |
15997
495800004c0a
4bit icons for windows < XP. These are certainly not as pretty as the originals, but look a lot better than scaled down versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15823
diff
changeset
|
269 wcx.hInstance = winpidgin_exe_hinstance(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
270 wcx.hIcon = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
271 wcx.hCursor = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
272 wcx.hbrBackground = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
273 wcx.lpszMenuName = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
274 wcx.lpszClassName = wname; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
275 wcx.hIconSm = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
276 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
277 RegisterClassEx(&wcx); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
278 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
279 /* Create the window */ |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
280 if(!(win_hwnd = CreateWindow(wname, TEXT("WinpidginMsgWin"), 0, 0, 0, 0, 0, |
21828
85fcbd3b9d32
This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21528
diff
changeset
|
281 NULL, NULL, winpidgin_exe_hinstance(), 0))) { |
15823 | 282 purple_debug_error("winpidgin", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
283 "Unable to create message window.\n"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
284 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
285 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
286 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
287 return win_hwnd; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
288 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
289 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
290 static gboolean stop_flashing(GtkWidget *widget, GdkEventFocus *event, gpointer data) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
291 GtkWindow *window = data; |
17077
c3add818a46c
Don't stop all windows from flashing when any Windows Pidgin window is focused. I also noticed that we were registering a callback for the focus-in-event for each flash start and never unregistering it, so this fixes that too. Fixes #554.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
16264
diff
changeset
|
292 gpointer handler_id; |
c3add818a46c
Don't stop all windows from flashing when any Windows Pidgin window is focused. I also noticed that we were registering a callback for the focus-in-event for each flash start and never unregistering it, so this fixes that too. Fixes #554.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
16264
diff
changeset
|
293 |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
294 winpidgin_window_flash(window, FALSE); |
17077
c3add818a46c
Don't stop all windows from flashing when any Windows Pidgin window is focused. I also noticed that we were registering a callback for the focus-in-event for each flash start and never unregistering it, so this fixes that too. Fixes #554.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
16264
diff
changeset
|
295 |
23784
d9d388a27d01
Use the "Flash taskbar button X times" value from the win32 Tweak UI "Prevent
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21828
diff
changeset
|
296 if ((handler_id = g_object_get_data(G_OBJECT(window), "flash_stop_handler_id"))) { |
17077
c3add818a46c
Don't stop all windows from flashing when any Windows Pidgin window is focused. I also noticed that we were registering a callback for the focus-in-event for each flash start and never unregistering it, so this fixes that too. Fixes #554.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
16264
diff
changeset
|
297 g_signal_handler_disconnect(G_OBJECT(window), (gulong) GPOINTER_TO_UINT(handler_id)); |
23784
d9d388a27d01
Use the "Flash taskbar button X times" value from the win32 Tweak UI "Prevent
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21828
diff
changeset
|
298 g_object_steal_data(G_OBJECT(window), "flash_stop_handler_id"); |
d9d388a27d01
Use the "Flash taskbar button X times" value from the win32 Tweak UI "Prevent
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21828
diff
changeset
|
299 } |
17077
c3add818a46c
Don't stop all windows from flashing when any Windows Pidgin window is focused. I also noticed that we were registering a callback for the focus-in-event for each flash start and never unregistering it, so this fixes that too. Fixes #554.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
16264
diff
changeset
|
300 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
301 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
302 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
303 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
304 void |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
305 winpidgin_window_flash(GtkWindow *window, gboolean flash) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
306 GdkWindow * gdkwin; |
29803
c3cd8f9fe4b1
Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29757
diff
changeset
|
307 FLASHWINFO info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
308 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
309 g_return_if_fail(window != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
310 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
311 gdkwin = GTK_WIDGET(window)->window; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
312 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
313 g_return_if_fail(GDK_IS_WINDOW(gdkwin)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
314 g_return_if_fail(GDK_WINDOW_TYPE(gdkwin) != GDK_WINDOW_CHILD); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
315 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
316 if(GDK_WINDOW_DESTROYED(gdkwin)) |
16264
47907d031291
Don't flash the conv. window if it is in the foreground.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
16062
diff
changeset
|
317 return; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
318 |
29803
c3cd8f9fe4b1
Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29757
diff
changeset
|
319 memset(&info, 0, sizeof(FLASHWINFO)); |
c3cd8f9fe4b1
Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29757
diff
changeset
|
320 info.cbSize = sizeof(FLASHWINFO); |
c3cd8f9fe4b1
Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29757
diff
changeset
|
321 info.hwnd = GDK_WINDOW_HWND(gdkwin); |
c3cd8f9fe4b1
Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29757
diff
changeset
|
322 if (flash) { |
c3cd8f9fe4b1
Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29757
diff
changeset
|
323 DWORD flashCount; |
c3cd8f9fe4b1
Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29757
diff
changeset
|
324 info.uCount = 3; |
c3cd8f9fe4b1
Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29757
diff
changeset
|
325 if (SystemParametersInfo(SPI_GETFOREGROUNDFLASHCOUNT, 0, &flashCount, 0)) |
c3cd8f9fe4b1
Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29757
diff
changeset
|
326 info.uCount = flashCount; |
c3cd8f9fe4b1
Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29757
diff
changeset
|
327 info.dwFlags = FLASHW_ALL | FLASHW_TIMER; |
c3cd8f9fe4b1
Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29757
diff
changeset
|
328 } else |
c3cd8f9fe4b1
Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29757
diff
changeset
|
329 info.dwFlags = FLASHW_STOP; |
c3cd8f9fe4b1
Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29757
diff
changeset
|
330 info.dwTimeout = 0; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
331 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
332 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
333 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
334 void |
15823 | 335 winpidgin_conv_blink(PurpleConversation *conv, PurpleMessageFlags flags) { |
15501
d75099d2567e
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents:
15374
diff
changeset
|
336 PidginWindow *win; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
337 GtkWindow *window; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
338 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
339 /* Don't flash for our own messages or system messages */ |
15823 | 340 if(flags & PURPLE_MESSAGE_SEND || flags & PURPLE_MESSAGE_SYSTEM) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
341 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
342 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
343 if(conv == NULL) { |
15823 | 344 purple_debug_info("winpidgin", "No conversation found to blink.\n"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
345 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
346 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
347 |
15502 | 348 win = pidgin_conv_get_window(PIDGIN_CONVERSATION(conv)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
349 if(win == NULL) { |
15823 | 350 purple_debug_info("winpidgin", "No conversation windows found to blink.\n"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
351 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
352 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
353 window = GTK_WINDOW(win->window); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
354 |
16264
47907d031291
Don't flash the conv. window if it is in the foreground.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
16062
diff
changeset
|
355 /* Don't flash if the window is in the foreground */ |
47907d031291
Don't flash the conv. window if it is in the foreground.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
16062
diff
changeset
|
356 if (GetForegroundWindow() == GDK_WINDOW_HWND(GTK_WIDGET(window)->window)) |
47907d031291
Don't flash the conv. window if it is in the foreground.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
16062
diff
changeset
|
357 return; |
47907d031291
Don't flash the conv. window if it is in the foreground.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
16062
diff
changeset
|
358 |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
359 winpidgin_window_flash(window, TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
360 /* Stop flashing when window receives focus */ |
17077
c3add818a46c
Don't stop all windows from flashing when any Windows Pidgin window is focused. I also noticed that we were registering a callback for the focus-in-event for each flash start and never unregistering it, so this fixes that too. Fixes #554.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
16264
diff
changeset
|
361 if (g_object_get_data(G_OBJECT(window), "flash_stop_handler_id") == NULL) { |
c3add818a46c
Don't stop all windows from flashing when any Windows Pidgin window is focused. I also noticed that we were registering a callback for the focus-in-event for each flash start and never unregistering it, so this fixes that too. Fixes #554.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
16264
diff
changeset
|
362 gulong handler_id = g_signal_connect(G_OBJECT(window), "focus-in-event", |
c3add818a46c
Don't stop all windows from flashing when any Windows Pidgin window is focused. I also noticed that we were registering a callback for the focus-in-event for each flash start and never unregistering it, so this fixes that too. Fixes #554.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
16264
diff
changeset
|
363 G_CALLBACK(stop_flashing), window); |
c3add818a46c
Don't stop all windows from flashing when any Windows Pidgin window is focused. I also noticed that we were registering a callback for the focus-in-event for each flash start and never unregistering it, so this fixes that too. Fixes #554.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
16264
diff
changeset
|
364 g_object_set_data(G_OBJECT(window), "flash_stop_handler_id", GUINT_TO_POINTER(handler_id)); |
c3add818a46c
Don't stop all windows from flashing when any Windows Pidgin window is focused. I also noticed that we were registering a callback for the focus-in-event for each flash start and never unregistering it, so this fixes that too. Fixes #554.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
16264
diff
changeset
|
365 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
366 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
367 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
368 static gboolean |
15823 | 369 winpidgin_conv_im_blink(PurpleAccount *account, const char *who, char **message, |
370 PurpleConversation *conv, PurpleMessageFlags flags, void *data) | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
371 { |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
15997
diff
changeset
|
372 if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/win32/blink_im")) |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
373 winpidgin_conv_blink(conv, flags); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
374 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
375 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
376 |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
377 void winpidgin_init(HINSTANCE hint) { |
29885
80e05718db82
Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29803
diff
changeset
|
378 FARPROC proc; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
379 |
15823 | 380 purple_debug_info("winpidgin", "winpidgin_init start\n"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
381 |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
382 exe_hInstance = hint; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
383 |
29885
80e05718db82
Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29803
diff
changeset
|
384 proc = wpurple_find_and_loadproc("exchndl.dll", "SetLogFile"); |
80e05718db82
Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29803
diff
changeset
|
385 if (proc) { |
80e05718db82
Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29803
diff
changeset
|
386 gchar *debug_dir, *locale_debug_dir; |
80e05718db82
Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29803
diff
changeset
|
387 |
80e05718db82
Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29803
diff
changeset
|
388 debug_dir = g_build_filename(purple_user_dir(), "pidgin.RPT", NULL); |
80e05718db82
Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29803
diff
changeset
|
389 locale_debug_dir = g_locale_from_utf8(debug_dir, -1, NULL, NULL, NULL); |
80e05718db82
Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29803
diff
changeset
|
390 |
80e05718db82
Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29803
diff
changeset
|
391 purple_debug_info("winpidgin", "Setting exchndl.dll LogFile to %s\n", debug_dir); |
80e05718db82
Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29803
diff
changeset
|
392 |
80e05718db82
Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29803
diff
changeset
|
393 (proc)(locale_debug_dir); |
80e05718db82
Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29803
diff
changeset
|
394 |
80e05718db82
Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29803
diff
changeset
|
395 g_free(debug_dir); |
80e05718db82
Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29803
diff
changeset
|
396 g_free(locale_debug_dir); |
80e05718db82
Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29803
diff
changeset
|
397 } |
80e05718db82
Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29803
diff
changeset
|
398 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
399 /* IdleTracker Initialization */ |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
400 if(!winpidgin_set_idlehooks()) |
15823 | 401 purple_debug_error("winpidgin", "Failed to initialize idle tracker\n"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
402 |
15638
026f9c6cc942
winpidgin warning fixes
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15613
diff
changeset
|
403 winpidgin_spell_init(); |
15823 | 404 purple_debug_info("winpidgin", "GTK+ :%u.%u.%u\n", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
405 gtk_major_version, gtk_minor_version, gtk_micro_version); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
406 |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
407 messagewin_hwnd = winpidgin_message_window_init(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
408 |
15823 | 409 purple_debug_info("winpidgin", "winpidgin_init end\n"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
410 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
411 |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
412 void winpidgin_post_init(void) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
413 |
16062
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
15997
diff
changeset
|
414 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/win32"); |
07554cc5d090
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents:
15997
diff
changeset
|
415 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/win32/blink_im", TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
416 |
15823 | 417 purple_signal_connect(pidgin_conversations_get_handle(), |
418 "displaying-im-msg", >kwin32_handle, PURPLE_CALLBACK(winpidgin_conv_im_blink), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
419 NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
420 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
421 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
422 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
423 /* Windows Cleanup */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
424 |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
425 void winpidgin_cleanup(void) { |
15823 | 426 purple_debug_info("winpidgin", "winpidgin_cleanup\n"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
427 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
428 if(messagewin_hwnd) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
429 DestroyWindow(messagewin_hwnd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
430 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
431 /* Idle tracker cleanup */ |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
432 winpidgin_remove_idlehooks(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
433 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
434 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
435 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
436 /* DLL initializer */ |
15638
026f9c6cc942
winpidgin warning fixes
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15613
diff
changeset
|
437 /* suppress gcc "no previous prototype" warning */ |
026f9c6cc942
winpidgin warning fixes
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15613
diff
changeset
|
438 BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
439 BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
440 dll_hInstance = hinstDLL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
441 return TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
442 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
443 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
444 static gboolean |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
445 get_WorkingAreaRectForWindow(HWND hwnd, RECT *workingAreaRc) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
446 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
447 HMONITOR monitor; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
448 MONITORINFO info; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
449 |
29803
c3cd8f9fe4b1
Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29757
diff
changeset
|
450 monitor = MonitorFromWindow(hwnd, MONITOR_DEFAULTTOPRIMARY); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
451 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
452 info.cbSize = sizeof(info); |
29803
c3cd8f9fe4b1
Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
29757
diff
changeset
|
453 if(!GetMonitorInfo(monitor, &info)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
454 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
455 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
456 CopyRect(workingAreaRc, &(info.rcWork)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
457 return TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
458 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
459 |
15515
75ffc646647f
Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15502
diff
changeset
|
460 void winpidgin_ensure_onscreen(GtkWidget *win) { |
20242
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
461 RECT winR, wAR, intR; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
462 HWND hwnd = GDK_WINDOW_HWND(win->window); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
463 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
464 g_return_if_fail(hwnd != NULL); |
20242
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
465 GetWindowRect(hwnd, &winR); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
466 |
15823 | 467 purple_debug_info("win32placement", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
468 "Window RECT: L:%ld R:%ld T:%ld B:%ld\n", |
20242
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
469 winR.left, winR.right, |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
470 winR.top, winR.bottom); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
471 |
20242
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
472 if(!get_WorkingAreaRectForWindow(hwnd, &wAR)) { |
15823 | 473 purple_debug_info("win32placement", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
474 "Couldn't get multimonitor working area\n"); |
20242
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
475 if(!SystemParametersInfo(SPI_GETWORKAREA, 0, &wAR, FALSE)) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
476 /* I don't think this will ever happen */ |
20242
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
477 wAR.left = 0; |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
478 wAR.top = 0; |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
479 wAR.bottom = GetSystemMetrics(SM_CYSCREEN); |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
480 wAR.right = GetSystemMetrics(SM_CXSCREEN); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
481 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
482 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
483 |
15823 | 484 purple_debug_info("win32placement", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
485 "Working Area RECT: L:%ld R:%ld T:%ld B:%ld\n", |
20242
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
486 wAR.left, wAR.right, |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
487 wAR.top, wAR.bottom); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
488 |
20242
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
489 /** If the conversation window doesn't intersect perfectly, move it to do so */ |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
490 if(!(IntersectRect(&intR, &winR, &wAR) |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
491 && EqualRect(&intR, &winR))) { |
15823 | 492 purple_debug_info("win32placement", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
493 "conversation window out of working area, relocating\n"); |
20242
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
494 |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
495 /* Make sure the working area is big enough. */ |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
496 if ((winR.right - winR.left) <= (wAR.right - wAR.left) |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
497 && (winR.bottom - winR.top) <= (wAR.bottom - wAR.top)) { |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
498 /* Is it off the bottom? */ |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
499 if (winR.bottom > wAR.bottom) { |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
500 winR.top = wAR.bottom - (winR.bottom - winR.top); |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
501 winR.bottom = wAR.bottom; |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
502 } |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
503 /* Is it off the top? */ |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
504 else if (winR.top < wAR.top) { |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
505 winR.bottom = wAR.top + (winR.bottom - winR.top); |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
506 winR.top = wAR.top; |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
507 } |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
508 |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
509 /* Is it off the left? */ |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
510 if (winR.left < wAR.left) { |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
511 winR.right = wAR.left + (winR.right - winR.left); |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
512 winR.left = wAR.left; |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
513 } |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
514 /* Is it off the right? */ |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
515 else if (winR.right > wAR.right) { |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
516 winR.left = wAR.right - (winR.right - winR.left); |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
517 winR.right = wAR.right; |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
518 } |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
519 |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
520 } else { |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
521 /* We couldn't salvage it; move it to the top left corner of the working area */ |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
522 winR.right = wAR.left + (winR.right - winR.left); |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
523 winR.bottom = wAR.top + (winR.bottom - winR.top); |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
524 winR.left = wAR.left; |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
525 winR.top = wAR.top; |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
526 } |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
527 |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
528 purple_debug_info("win32placement", |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
529 "Relocation RECT: L:%ld R:%ld T:%ld B:%ld\n", |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
530 winR.left, winR.right, |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
531 winR.top, winR.bottom); |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
532 |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
533 MoveWindow(hwnd, winR.left, winR.top, |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
534 (winR.right - winR.left), |
c320bc7b1383
applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
535 (winR.bottom - winR.top), TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
536 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
537 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
538 |