Fri, 11 Jul 2003 02:33:58 +0000
[gaim-migrate @ 6545]
remove retired systray.h
| 3630 | 1 | /* |
|
5913
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
2 | * gaim |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
3 | * |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
4 | * File: win32dep.c |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
5 | * Date: June, 2002 |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
6 | * Description: Windows dependant code for Gaim |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
7 | * |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
8 | * Copyright (C) 2002-2003, Herman Bloggs <hermanator12002@yahoo.com> |
| 3630 | 9 | * |
|
5913
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
10 | * This program is free software; you can redistribute it and/or modify |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
11 | * it under the terms of the GNU General Public License as published by |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
12 | * the Free Software Foundation; either version 2 of the License, or |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
13 | * (at your option) any later version. |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
14 | * |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
15 | * This program is distributed in the hope that it will be useful, |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
18 | * GNU General Public License for more details. |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
19 | * |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
20 | * You should have received a copy of the GNU General Public License |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
21 | * along with this program; if not, write to the Free Software |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
22 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
23 | * |
| 3630 | 24 | */ |
| 25 | #include <windows.h> | |
| 26 | #include <stdlib.h> | |
| 27 | #include <stdio.h> | |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
28 | #include <winuser.h> |
|
5913
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
29 | |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
30 | #include <gtk/gtk.h> |
| 3630 | 31 | #include <glib.h> |
|
3973
acade2595b85
[gaim-migrate @ 4157]
Herman Bloggs <herman@bluedigits.com>
parents:
3950
diff
changeset
|
32 | #include <gdk/gdkwin32.h> |
|
4097
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
33 | |
| 3630 | 34 | #include "gaim.h" |
|
5913
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
35 | #include "debug.h" |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
36 | |
| 3630 | 37 | #include "stdafx.h" |
| 38 | #include "resource.h" | |
|
3950
0cab330f1cd6
[gaim-migrate @ 4129]
Herman Bloggs <herman@bluedigits.com>
parents:
3907
diff
changeset
|
39 | #include "MinimizeToTray.h" |
|
3973
acade2595b85
[gaim-migrate @ 4157]
Herman Bloggs <herman@bluedigits.com>
parents:
3950
diff
changeset
|
40 | #include "winuser_extra.h" |
|
4535
9b3bdd5d6653
[gaim-migrate @ 4814]
Herman Bloggs <herman@bluedigits.com>
parents:
4411
diff
changeset
|
41 | #include "idletrack.h" |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
42 | #include "zlib.h" |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
43 | #include "untar.h" |
| 3630 | 44 | |
|
5913
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
45 | |
| 3630 | 46 | /* |
| 47 | * DEFINES & MACROS | |
| 48 | */ | |
|
3950
0cab330f1cd6
[gaim-migrate @ 4129]
Herman Bloggs <herman@bluedigits.com>
parents:
3907
diff
changeset
|
49 | |
| 3630 | 50 | /* |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
51 | * DATA STRUCTS |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
52 | */ |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
53 | struct _WGAIM_FLASH_INFO { |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
54 | guint t_handle; |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
55 | guint sig_handler; |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
56 | }; |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
57 | typedef struct _WGAIM_FLASH_INFO WGAIM_FLASH_INFO; |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
58 | |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
59 | /* |
| 3630 | 60 | * LOCALS |
| 61 | */ | |
| 62 | static char install_dir[MAXPATHLEN]; | |
| 63 | static char lib_dir[MAXPATHLEN]; | |
| 64 | static char locale_dir[MAXPATHLEN]; | |
|
3950
0cab330f1cd6
[gaim-migrate @ 4129]
Herman Bloggs <herman@bluedigits.com>
parents:
3907
diff
changeset
|
65 | |
| 3630 | 66 | /* |
| 67 | * GLOBALS | |
| 68 | */ | |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
69 | HINSTANCE gaimexe_hInstance = 0; |
|
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
70 | HINSTANCE gaimdll_hInstance = 0; |
| 3630 | 71 | |
| 72 | /* | |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
73 | * PROTOS |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
74 | */ |
|
4097
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
75 | |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
76 | BOOL (*MyFlashWindowEx)(PFLASHWINFO pfwi)=NULL; |
|
4097
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
77 | FARPROC wgaim_find_and_loadproc(char*, char*); |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
78 | extern void wgaim_gtkspell_init(); |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
79 | |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
80 | /* |
| 3630 | 81 | * STATIC CODE |
| 82 | */ | |
| 83 | ||
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
84 | /* Window flasher */ |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
85 | static gboolean flash_window_cb(gpointer data) { |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
86 | FlashWindow((HWND)data, TRUE); |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
87 | return TRUE; |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
88 | } |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
89 | |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
90 | static void halt_flash_filter(GtkWidget *widget, GdkEventFocus *event, WGAIM_FLASH_INFO *finfo) { |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
91 | /* Stop flashing and remove filter */ |
| 5854 | 92 | gaim_debug(GAIM_DEBUG_INFO, "wgaim", "Removing timeout\n"); |
| 4168 | 93 | g_source_remove(finfo->t_handle); |
| 5854 | 94 | gaim_debug(GAIM_DEBUG_INFO, "wgaim", "Disconnecting signal handler\n"); |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
95 | g_signal_handler_disconnect(G_OBJECT(widget),finfo->sig_handler); |
| 5854 | 96 | gaim_debug(GAIM_DEBUG_INFO, "wgaim", "done\n"); |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
97 | } |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
98 | |
|
4097
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
99 | static void load_winver_specific_procs(void) { |
|
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
100 | /* Used for Win98+ and WinNT5+ */ |
|
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
101 | MyFlashWindowEx = (void*)wgaim_find_and_loadproc("user32.dll", "FlashWindowEx" ); |
|
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
102 | } |
|
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
103 | |
|
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
104 | /* |
|
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
105 | * PUBLIC CODE |
|
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
106 | */ |
|
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
107 | |
|
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
108 | HINSTANCE wgaim_hinstance(void) { |
|
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
109 | return gaimexe_hInstance; |
|
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
110 | } |
|
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
111 | |
|
4406
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
112 | /* Escape windows dir separators. This is needed when paths are saved, |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
113 | and on being read back have their '\' chars used as an escape char. |
|
4555
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
114 | Returns an allocated string which needs to be freed. |
|
4406
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
115 | */ |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
116 | char* wgaim_escape_dirsep( char* filename ) { |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
117 | int sepcount=0; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
118 | char* ret=NULL; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
119 | int cnt=0; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
120 | |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
121 | ret = filename; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
122 | while(*ret) { |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
123 | if(*ret == '\\') |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
124 | sepcount++; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
125 | ret++; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
126 | } |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
127 | ret = g_malloc0(strlen(filename) + sepcount + 1); |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
128 | while(*filename) { |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
129 | ret[cnt] = *filename; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
130 | if(*filename == '\\') |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
131 | ret[++cnt] = '\\'; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
132 | filename++; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
133 | cnt++; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
134 | } |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
135 | ret[cnt] = '\0'; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
136 | return ret; |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
137 | } |
|
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
138 | |
|
4555
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
139 | /* |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
140 | * This is a hack to circumvent the conflict between the |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
141 | * windows behaviour of gtk_window_get_pos and gtk_window_move, which |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
142 | * exists in GTK+ v2.2.0. GTK+ documentation explains the following |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
143 | * should be true for gtk_window_get_pos: |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
144 | * This function returns the position you need to pass to |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
145 | * gtk_window_move() to keep window in its current position. |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
146 | * This is false (for windows). gtk_window_get_pos returns |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
147 | * client coords, whereas gtk_window_move accepts non-client coords. |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
148 | * Our solution, until this is fixed, is to anticipate the offset and |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
149 | * adjust the coordinates passed to gtk_window_move. |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
150 | */ |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
151 | void wgaim_gtk_window_move(GtkWindow *window, gint x, gint y) { |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
152 | LONG style, extended_style; |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
153 | RECT trect; |
|
4984
a44abb0f8d56
[gaim-migrate @ 5319]
Herman Bloggs <herman@bluedigits.com>
parents:
4882
diff
changeset
|
154 | HWND hWnd; |
|
4555
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
155 | |
|
4984
a44abb0f8d56
[gaim-migrate @ 5319]
Herman Bloggs <herman@bluedigits.com>
parents:
4882
diff
changeset
|
156 | if(!GTK_WIDGET_REALIZED(GTK_WIDGET(window))) |
|
a44abb0f8d56
[gaim-migrate @ 5319]
Herman Bloggs <herman@bluedigits.com>
parents:
4882
diff
changeset
|
157 | gtk_widget_realize(GTK_WIDGET(window)); |
|
a44abb0f8d56
[gaim-migrate @ 5319]
Herman Bloggs <herman@bluedigits.com>
parents:
4882
diff
changeset
|
158 | hWnd = GDK_WINDOW_HWND(GTK_WIDGET(window)->window); |
|
4555
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
159 | style = GetWindowLong(hWnd, GWL_STYLE); |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
160 | extended_style = GetWindowLong (hWnd, GWL_EXSTYLE); |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
161 | GetClientRect (hWnd, &trect); |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
162 | AdjustWindowRectEx (&trect, style, FALSE, extended_style); |
|
4882
28908a7a9ad4
[gaim-migrate @ 5212]
Herman Bloggs <herman@bluedigits.com>
parents:
4861
diff
changeset
|
163 | gtk_window_move(window, x + (-1 * trect.left), y + (-1 * trect.top)); |
|
4555
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
164 | } |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
165 | |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
166 | |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
167 | /* Determine whether the specified dll contains the specified procedure. |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
168 | If so, load it (if not already loaded). */ |
|
4097
3ad9e41eb933
[gaim-migrate @ 4312]
Herman Bloggs <herman@bluedigits.com>
parents:
4042
diff
changeset
|
169 | FARPROC wgaim_find_and_loadproc( char* dllname, char* procedure ) { |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
170 | HMODULE hmod; |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
171 | int did_load=0; |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
172 | FARPROC proc = 0; |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
173 | |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
174 | if(!(hmod=GetModuleHandle(dllname))) { |
| 5854 | 175 | gaim_debug(GAIM_DEBUG_WARNING, "wgaim", "%s not found. Loading it..\n", dllname); |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
176 | if(!(hmod = LoadLibrary(dllname))) { |
| 5854 | 177 | gaim_debug(GAIM_DEBUG_ERROR, "wgaim", "Could not load: %s\n", dllname); |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
178 | return NULL; |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
179 | } |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
180 | else |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
181 | did_load = 1; |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
182 | } |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
183 | |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
184 | if((proc=GetProcAddress(hmod, procedure))) { |
| 5854 | 185 | gaim_debug(GAIM_DEBUG_INFO, "wgaim", "This version of %s contains %s\n", |
|
4555
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
186 | dllname, procedure); |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
187 | return proc; |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
188 | } |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
189 | else { |
| 5854 | 190 | gaim_debug(GAIM_DEBUG_WARNING, "wgaim", "Function %s not found in dll %s\n", |
|
4555
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
191 | procedure, dllname); |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
192 | if(did_load) { |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
193 | /* unload dll */ |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
194 | FreeLibrary(hmod); |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
195 | } |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
196 | return NULL; |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
197 | } |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
198 | } |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
199 | |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
200 | /* Determine Gaim Paths during Runtime */ |
|
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
201 | |
| 3630 | 202 | char* wgaim_install_dir(void) { |
| 203 | HMODULE hmod; | |
| 204 | char* buf; | |
| 205 | ||
| 206 | hmod = GetModuleHandle(NULL); | |
| 207 | if( hmod == 0 ) { | |
| 208 | buf = g_win32_error_message( GetLastError() ); | |
| 5854 | 209 | gaim_debug(GAIM_DEBUG_ERROR, "wgaim", "GetModuleHandle error: %s\n", buf); |
| 3630 | 210 | free(buf); |
| 211 | return NULL; | |
| 212 | } | |
| 213 | if(GetModuleFileName( hmod, (char*)&install_dir, MAXPATHLEN ) == 0) { | |
| 214 | buf = g_win32_error_message( GetLastError() ); | |
| 5854 | 215 | gaim_debug(GAIM_DEBUG_ERROR, "wgaim", "GetModuleFileName error: %s\n", buf); |
| 3630 | 216 | free(buf); |
| 217 | return NULL; | |
| 218 | } | |
| 219 | buf = g_path_get_dirname( install_dir ); | |
| 220 | strcpy( (char*)&install_dir, buf ); | |
| 221 | free( buf ); | |
| 222 | ||
| 223 | return (char*)&install_dir; | |
| 224 | } | |
| 225 | ||
| 226 | char* wgaim_lib_dir(void) { | |
| 227 | strcpy(lib_dir, wgaim_install_dir()); | |
| 228 | strcat(lib_dir, G_DIR_SEPARATOR_S "plugins"); | |
| 229 | return (char*)&lib_dir; | |
| 230 | } | |
| 231 | ||
| 232 | char* wgaim_locale_dir(void) { | |
| 233 | strcpy(locale_dir, wgaim_install_dir()); | |
| 234 | strcat(locale_dir, G_DIR_SEPARATOR_S "locale"); | |
| 235 | return (char*)&locale_dir; | |
| 236 | } | |
| 237 | ||
|
3973
acade2595b85
[gaim-migrate @ 4157]
Herman Bloggs <herman@bluedigits.com>
parents:
3950
diff
changeset
|
238 | /* Miscellaneous */ |
|
acade2595b85
[gaim-migrate @ 4157]
Herman Bloggs <herman@bluedigits.com>
parents:
3950
diff
changeset
|
239 | |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
240 | /* FlashWindowEx is only supported by Win98+ and WinNT5+. If its |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
241 | not supported we do it our own way */ |
|
3973
acade2595b85
[gaim-migrate @ 4157]
Herman Bloggs <herman@bluedigits.com>
parents:
3950
diff
changeset
|
242 | void wgaim_im_blink(GtkWidget *window) { |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
243 | if(MyFlashWindowEx) { |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
244 | FLASHWINFO info; |
|
3973
acade2595b85
[gaim-migrate @ 4157]
Herman Bloggs <herman@bluedigits.com>
parents:
3950
diff
changeset
|
245 | |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
246 | info.cbSize = sizeof(FLASHWINFO); |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
247 | info.hwnd = GDK_WINDOW_HWND(window->window); |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
248 | info.dwFlags = FLASHW_ALL | FLASHW_TIMERNOFG; |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
249 | info.dwTimeout = 0; |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
250 | MyFlashWindowEx(&info); |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
251 | } |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
252 | else { |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
253 | WGAIM_FLASH_INFO *finfo = g_new0(WGAIM_FLASH_INFO, 1); |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
254 | |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
255 | /* Start Flashing window */ |
|
4555
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
256 | finfo->t_handle = g_timeout_add(1000, |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
257 | flash_window_cb, |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
258 | GDK_WINDOW_HWND(window->window)); |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
259 | finfo->sig_handler = g_signal_connect(G_OBJECT(window), |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
260 | "focus-in-event", |
|
3ff630a3045a
[gaim-migrate @ 4835]
Herman Bloggs <herman@bluedigits.com>
parents:
4535
diff
changeset
|
261 | G_CALLBACK(halt_flash_filter), finfo); |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
262 | } |
|
3973
acade2595b85
[gaim-migrate @ 4157]
Herman Bloggs <herman@bluedigits.com>
parents:
3950
diff
changeset
|
263 | } |
|
acade2595b85
[gaim-migrate @ 4157]
Herman Bloggs <herman@bluedigits.com>
parents:
3950
diff
changeset
|
264 | |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
265 | int wgaim_gz_decompress(const char* in, const char* out) { |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
266 | gzFile fin; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
267 | FILE *fout; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
268 | char buf[1024]; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
269 | int ret; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
270 | |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
271 | if((fin = gzopen(in, "rb"))) { |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
272 | if(!(fout = fopen(out, "wb"))) { |
| 5854 | 273 | gaim_debug(GAIM_DEBUG_ERROR, "wgaim_gz_decompress", "Error opening file: %s\n", out); |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
274 | gzclose(fin); |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
275 | return 0; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
276 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
277 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
278 | else { |
| 5854 | 279 | gaim_debug(GAIM_DEBUG_ERROR, "wgaim_gz_decompress", "gzopen failed to open: %s\n", in); |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
280 | return 0; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
281 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
282 | |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
283 | while((ret=gzread(fin, buf, 1024))) { |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
284 | if(fwrite(buf, 1, ret, fout) < ret) { |
| 5854 | 285 | gaim_debug(GAIM_DEBUG_ERROR, "wgaim_gz_decompress", "Error writing %d bytes to file\n", ret); |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
286 | gzclose(fin); |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
287 | fclose(fout); |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
288 | return 0; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
289 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
290 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
291 | fclose(fout); |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
292 | gzclose(fin); |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
293 | |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
294 | if(ret < 0) { |
| 5854 | 295 | gaim_debug(GAIM_DEBUG_ERROR, "wgaim_gz_decompress", "gzread failed while reading: %s\n", in); |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
296 | return 0; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
297 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
298 | |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
299 | return 1; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
300 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
301 | |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
302 | int wgaim_gz_untar(const char* filename, const char* destdir) { |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
303 | char tmpfile[_MAX_PATH]; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
304 | char template[]="wgaimXXXXXX"; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
305 | |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
306 | sprintf(tmpfile, "%s%s%s", g_get_tmp_dir(), G_DIR_SEPARATOR_S, _mktemp(template)); |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
307 | if(wgaim_gz_decompress(filename, tmpfile)) { |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
308 | int ret; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
309 | if(untar(tmpfile, destdir, UNTAR_FORCE | UNTAR_QUIET)) |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
310 | ret=1; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
311 | else { |
| 5854 | 312 | gaim_debug(GAIM_DEBUG_ERROR, "wgaim_gz_untar", "Failure untaring %s\n", tmpfile); |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
313 | ret=0; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
314 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
315 | unlink(tmpfile); |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
316 | return ret; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
317 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
318 | else { |
| 5854 | 319 | gaim_debug(GAIM_DEBUG_ERROR, "wgaim_gz_untar", "Failed to gz decompress %s\n", filename); |
|
5008
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
320 | return 0; |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
321 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
322 | } |
|
f3894181fadc
[gaim-migrate @ 5343]
Herman Bloggs <herman@bluedigits.com>
parents:
4984
diff
changeset
|
323 | |
|
6083
cc86a426e8e8
[gaim-migrate @ 6542]
Herman Bloggs <herman@bluedigits.com>
parents:
5913
diff
changeset
|
324 | /* Moved over from old systray.c */ |
|
cc86a426e8e8
[gaim-migrate @ 6542]
Herman Bloggs <herman@bluedigits.com>
parents:
5913
diff
changeset
|
325 | void wgaim_systray_minimize( GtkWidget *window ) { |
|
cc86a426e8e8
[gaim-migrate @ 6542]
Herman Bloggs <herman@bluedigits.com>
parents:
5913
diff
changeset
|
326 | MinimizeWndToTray(GDK_WINDOW_HWND(window->window)); |
|
cc86a426e8e8
[gaim-migrate @ 6542]
Herman Bloggs <herman@bluedigits.com>
parents:
5913
diff
changeset
|
327 | } |
|
cc86a426e8e8
[gaim-migrate @ 6542]
Herman Bloggs <herman@bluedigits.com>
parents:
5913
diff
changeset
|
328 | |
|
cc86a426e8e8
[gaim-migrate @ 6542]
Herman Bloggs <herman@bluedigits.com>
parents:
5913
diff
changeset
|
329 | void wgaim_systray_maximize( GtkWidget *window ) { |
|
cc86a426e8e8
[gaim-migrate @ 6542]
Herman Bloggs <herman@bluedigits.com>
parents:
5913
diff
changeset
|
330 | RestoreWndFromTray(GDK_WINDOW_HWND(window->window)); |
|
cc86a426e8e8
[gaim-migrate @ 6542]
Herman Bloggs <herman@bluedigits.com>
parents:
5913
diff
changeset
|
331 | } |
|
cc86a426e8e8
[gaim-migrate @ 6542]
Herman Bloggs <herman@bluedigits.com>
parents:
5913
diff
changeset
|
332 | |
|
cc86a426e8e8
[gaim-migrate @ 6542]
Herman Bloggs <herman@bluedigits.com>
parents:
5913
diff
changeset
|
333 | |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
334 | /* Windows Initializations */ |
|
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
335 | |
| 3630 | 336 | void wgaim_init(void) { |
|
3907
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
337 | WORD wVersionRequested; |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
338 | WSADATA wsaData; |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
339 | char* locale=0; |
|
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
340 | char newenv[128]; |
|
5472
c2f86a49abe7
[gaim-migrate @ 5864]
Herman Bloggs <herman@bluedigits.com>
parents:
5008
diff
changeset
|
341 | char* drmingw; |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
342 | |
| 5854 | 343 | gaim_debug(GAIM_DEBUG_INFO, "wgaim", "wgaim_init\n"); |
|
3950
0cab330f1cd6
[gaim-migrate @ 4129]
Herman Bloggs <herman@bluedigits.com>
parents:
3907
diff
changeset
|
344 | |
|
5472
c2f86a49abe7
[gaim-migrate @ 5864]
Herman Bloggs <herman@bluedigits.com>
parents:
5008
diff
changeset
|
345 | /* Load exception handler if we have it */ |
|
c2f86a49abe7
[gaim-migrate @ 5864]
Herman Bloggs <herman@bluedigits.com>
parents:
5008
diff
changeset
|
346 | drmingw = g_build_filename(wgaim_install_dir(), "exchndl.dll", NULL); |
|
c2f86a49abe7
[gaim-migrate @ 5864]
Herman Bloggs <herman@bluedigits.com>
parents:
5008
diff
changeset
|
347 | LoadLibrary(drmingw); |
|
c2f86a49abe7
[gaim-migrate @ 5864]
Herman Bloggs <herman@bluedigits.com>
parents:
5008
diff
changeset
|
348 | g_free(drmingw); |
|
c2f86a49abe7
[gaim-migrate @ 5864]
Herman Bloggs <herman@bluedigits.com>
parents:
5008
diff
changeset
|
349 | |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
350 | load_winver_specific_procs(); |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
351 | |
|
3907
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
352 | /* |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
353 | * Winsock init |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
354 | */ |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
355 | wVersionRequested = MAKEWORD( 2, 2 ); |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
356 | |
|
4406
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
357 | WSAStartup( wVersionRequested, &wsaData ); |
|
3907
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
358 | |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
359 | /* Confirm that the winsock DLL supports 2.2 */ |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
360 | /* Note that if the DLL supports versions greater than |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
361 | 2.2 in addition to 2.2, it will still return 2.2 in |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
362 | wVersion since that is the version we requested. */ |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
363 | |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
364 | if ( LOBYTE( wsaData.wVersion ) != 2 || |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
365 | HIBYTE( wsaData.wVersion ) != 2 ) { |
| 5854 | 366 | gaim_debug(GAIM_DEBUG_WARNING, "wgaim", "Could not find a usable WinSock DLL. Oh well.\n"); |
|
3907
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
367 | WSACleanup( ); |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
368 | } |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
369 | |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
370 | /* get default locale */ |
|
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
371 | locale = g_win32_getlocale(); |
| 5854 | 372 | gaim_debug(GAIM_DEBUG_INFO, "wgaim", "Language profile used: %s\n", locale); |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
373 | |
|
4411
24b56b115e9d
[gaim-migrate @ 4684]
Herman Bloggs <herman@bluedigits.com>
parents:
4406
diff
changeset
|
374 | /* Aspell config */ |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
375 | sprintf(newenv, "LANG=%s", locale); |
|
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
376 | if(putenv(newenv)<0) |
| 5854 | 377 | gaim_debug(GAIM_DEBUG_WARNING, "wgaim", "putenv failed\n"); |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
378 | g_free(locale); |
|
3905
9721673d9f55
[gaim-migrate @ 4058]
Herman Bloggs <herman@bluedigits.com>
parents:
3856
diff
changeset
|
379 | |
|
4411
24b56b115e9d
[gaim-migrate @ 4684]
Herman Bloggs <herman@bluedigits.com>
parents:
4406
diff
changeset
|
380 | /* Disable PANGO UNISCRIBE (for GTK 2.2.0). This may not be necessary in the |
|
24b56b115e9d
[gaim-migrate @ 4684]
Herman Bloggs <herman@bluedigits.com>
parents:
4406
diff
changeset
|
381 | future because there will most likely be a check to see if we need this, |
|
24b56b115e9d
[gaim-migrate @ 4684]
Herman Bloggs <herman@bluedigits.com>
parents:
4406
diff
changeset
|
382 | but for now we need to set this in order to avoid poor performance for some |
|
24b56b115e9d
[gaim-migrate @ 4684]
Herman Bloggs <herman@bluedigits.com>
parents:
4406
diff
changeset
|
383 | windows machines. |
|
24b56b115e9d
[gaim-migrate @ 4684]
Herman Bloggs <herman@bluedigits.com>
parents:
4406
diff
changeset
|
384 | */ |
|
24b56b115e9d
[gaim-migrate @ 4684]
Herman Bloggs <herman@bluedigits.com>
parents:
4406
diff
changeset
|
385 | sprintf(newenv, "PANGO_WIN32_NO_UNISCRIBE=1"); |
|
24b56b115e9d
[gaim-migrate @ 4684]
Herman Bloggs <herman@bluedigits.com>
parents:
4406
diff
changeset
|
386 | if(putenv(newenv)<0) |
| 5854 | 387 | gaim_debug(GAIM_DEBUG_WARNING, "wgaim", "putenv failed\n"); |
|
4411
24b56b115e9d
[gaim-migrate @ 4684]
Herman Bloggs <herman@bluedigits.com>
parents:
4406
diff
changeset
|
388 | |
|
3907
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
389 | /* |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
390 | * IdleTracker Initialization |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
391 | */ |
|
4535
9b3bdd5d6653
[gaim-migrate @ 4814]
Herman Bloggs <herman@bluedigits.com>
parents:
4411
diff
changeset
|
392 | if(!wgaim_set_idlehooks()) |
| 5854 | 393 | gaim_debug(GAIM_DEBUG_ERROR, "wgaim", "Failed to initialize idle tracker\n"); |
|
4861
3b98cd332858
[gaim-migrate @ 5188]
Herman Bloggs <herman@bluedigits.com>
parents:
4728
diff
changeset
|
394 | |
|
3b98cd332858
[gaim-migrate @ 5188]
Herman Bloggs <herman@bluedigits.com>
parents:
4728
diff
changeset
|
395 | wgaim_gtkspell_init(); |
| 3630 | 396 | } |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
397 | |
|
3907
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
398 | /* Windows Cleanup */ |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
399 | |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
400 | void wgaim_cleanup(void) { |
| 5854 | 401 | gaim_debug(GAIM_DEBUG_INFO, "wgaim", "wgaim_cleanup\n"); |
|
3907
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
402 | |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
403 | /* winsock cleanup */ |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
404 | WSACleanup( ); |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
405 | |
|
4535
9b3bdd5d6653
[gaim-migrate @ 4814]
Herman Bloggs <herman@bluedigits.com>
parents:
4411
diff
changeset
|
406 | /* Idle tracker cleanup */ |
|
9b3bdd5d6653
[gaim-migrate @ 4814]
Herman Bloggs <herman@bluedigits.com>
parents:
4411
diff
changeset
|
407 | wgaim_remove_idlehooks(); |
|
3907
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
408 | } |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
409 | |
|
3950
0cab330f1cd6
[gaim-migrate @ 4129]
Herman Bloggs <herman@bluedigits.com>
parents:
3907
diff
changeset
|
410 | /* DLL initializer */ |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
411 | BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved ) { |
|
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
412 | gaimdll_hInstance = hinstDLL; |
|
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
413 | return TRUE; |
|
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
414 | } |