Tue, 22 Jul 2003 00:37:49 +0000
[gaim-migrate @ 6758]
Changing the way the locale is set
| 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 | |
|
6262
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
333 | char* wgaim_lcid_to_posix(LCID lcid) { |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
334 | switch(lcid) { |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
335 | case 1026: return "bg"; /* bulgarian */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
336 | case 1027: return "ca"; /* catalan */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
337 | case 1050: return "hr"; /* croation */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
338 | case 1029: return "cs"; /* czech */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
339 | case 1030: return "da"; /* danaish */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
340 | case 1043: return "nl"; /* dutch - netherlands */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
341 | case 1033: return "en"; /* english - us */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
342 | case 1035: return "fi"; /* finish */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
343 | case 1036: return "fr"; /* french - france */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
344 | case 1031: return "de"; /* german - germany */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
345 | case 1032: return "el"; /* greek */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
346 | case 1037: return "he"; /* hebrew */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
347 | case 1038: return "hu"; /* hungarian */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
348 | case 1040: return "it"; /* italian - italy */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
349 | case 1041: return "ja"; /* japanese */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
350 | case 1042: return "ko"; /* korean */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
351 | case 1063: return "lt"; /* lithuanian */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
352 | case 1071: return "mk"; /* macedonian */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
353 | case 1045: return "pl"; /* polish */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
354 | case 2070: return "pt"; /* portuguese - portugal */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
355 | case 1046: return "pt_BR"; /* portuguese - brazil */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
356 | case 1048: return "ro"; /* romanian - romania */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
357 | case 1049: return "ru"; /* russian - russia */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
358 | case 2074: return "sr@Latn"; /* serbian - latin */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
359 | case 3098: return "sr"; /* serbian - cyrillic */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
360 | case 2052: return "zh_CN"; /* chinese - china (simple) */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
361 | case 1051: return "sk"; /* slovak */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
362 | case 1060: return "sl"; /* slovenian */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
363 | case 1034: return "es"; /* spanish */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
364 | case 1053: return "sv"; /* swedish */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
365 | case 1054: return "th"; /* thai */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
366 | case 1028: return "zh_TW"; /* chinese - taiwan (traditional) */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
367 | case 1055: return "tr"; /* turkish */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
368 | case 1058: return "uk"; /* ukrainian */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
369 | default: |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
370 | gaim_debug(GAIM_DEBUG_WARNING, "wgaim", "Could not find posix code for LCID: %d\n", lcid); |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
371 | return NULL; |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
372 | } |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
373 | } |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
374 | |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
375 | /* Determine and set Gaim locale as follows (in order of priority): |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
376 | - Check LANG env var |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
377 | - Check NSIS Installer Language reg value |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
378 | - Use default user locale |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
379 | */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
380 | void wgaim_set_locale() { |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
381 | HKEY hkey; |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
382 | char* locale=NULL; |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
383 | char envstr[25]; |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
384 | LCID lcid; |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
385 | |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
386 | /* Check if user set LANG env var */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
387 | if((locale = g_getenv("LANG"))) { |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
388 | gaim_debug(GAIM_DEBUG_INFO, "wgaim", "Using locale set by the LANG env var.\n"); |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
389 | goto finish; |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
390 | } |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
391 | |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
392 | /* Check reg key set at install time */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
393 | if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_CURRENT_USER, |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
394 | "SOFTWARE\\gaim", |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
395 | 0, KEY_QUERY_VALUE, &hkey)) { |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
396 | BYTE data[10]; |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
397 | DWORD ds = 10; |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
398 | if(ERROR_SUCCESS == RegQueryValueEx(hkey, "Installer Language", 0, NULL, &data, &ds)) { |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
399 | gaim_debug(GAIM_DEBUG_INFO, "wgaim", "Using locale set by the installer\n"); |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
400 | if((locale = wgaim_lcid_to_posix(atoi(data)))) |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
401 | goto finish; |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
402 | } |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
403 | } |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
404 | |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
405 | lcid = GetUserDefaultLCID(); |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
406 | if((locale = wgaim_lcid_to_posix(lcid))) |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
407 | goto finish; |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
408 | |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
409 | finish: |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
410 | if(!locale) |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
411 | locale = "en"; |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
412 | |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
413 | sprintf(envstr, "LANG=%s", locale); |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
414 | if(putenv(envstr)<0) |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
415 | gaim_debug(GAIM_DEBUG_WARNING, "wgaim", "putenv failed\n"); |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
416 | |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
417 | gaim_debug(GAIM_DEBUG_INFO, "wgaim", "Locale set to: %s\n", locale); |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
418 | } |
|
6083
cc86a426e8e8
[gaim-migrate @ 6542]
Herman Bloggs <herman@bluedigits.com>
parents:
5913
diff
changeset
|
419 | |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
420 | /* Windows Initializations */ |
|
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
421 | |
| 3630 | 422 | void wgaim_init(void) { |
|
3907
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
423 | WORD wVersionRequested; |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
424 | WSADATA wsaData; |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
425 | char newenv[128]; |
|
5472
c2f86a49abe7
[gaim-migrate @ 5864]
Herman Bloggs <herman@bluedigits.com>
parents:
5008
diff
changeset
|
426 | char* drmingw; |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
427 | |
| 5854 | 428 | gaim_debug(GAIM_DEBUG_INFO, "wgaim", "wgaim_init\n"); |
|
3950
0cab330f1cd6
[gaim-migrate @ 4129]
Herman Bloggs <herman@bluedigits.com>
parents:
3907
diff
changeset
|
429 | |
|
5472
c2f86a49abe7
[gaim-migrate @ 5864]
Herman Bloggs <herman@bluedigits.com>
parents:
5008
diff
changeset
|
430 | /* Load exception handler if we have it */ |
|
c2f86a49abe7
[gaim-migrate @ 5864]
Herman Bloggs <herman@bluedigits.com>
parents:
5008
diff
changeset
|
431 | drmingw = g_build_filename(wgaim_install_dir(), "exchndl.dll", NULL); |
|
c2f86a49abe7
[gaim-migrate @ 5864]
Herman Bloggs <herman@bluedigits.com>
parents:
5008
diff
changeset
|
432 | LoadLibrary(drmingw); |
|
c2f86a49abe7
[gaim-migrate @ 5864]
Herman Bloggs <herman@bluedigits.com>
parents:
5008
diff
changeset
|
433 | g_free(drmingw); |
|
c2f86a49abe7
[gaim-migrate @ 5864]
Herman Bloggs <herman@bluedigits.com>
parents:
5008
diff
changeset
|
434 | |
|
3983
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
435 | load_winver_specific_procs(); |
|
fd54b7e2b090
[gaim-migrate @ 4174]
Herman Bloggs <herman@bluedigits.com>
parents:
3973
diff
changeset
|
436 | |
|
3907
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
437 | /* |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
438 | * Winsock init |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
439 | */ |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
440 | wVersionRequested = MAKEWORD( 2, 2 ); |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
441 | |
|
4406
a7d91dbcdae8
[gaim-migrate @ 4675]
Herman Bloggs <herman@bluedigits.com>
parents:
4168
diff
changeset
|
442 | WSAStartup( wVersionRequested, &wsaData ); |
|
3907
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
443 | |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
444 | /* Confirm that the winsock DLL supports 2.2 */ |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
445 | /* Note that if the DLL supports versions greater than |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
446 | 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
|
447 | wVersion since that is the version we requested. */ |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
448 | |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
449 | if ( LOBYTE( wsaData.wVersion ) != 2 || |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
450 | HIBYTE( wsaData.wVersion ) != 2 ) { |
| 5854 | 451 | 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
|
452 | WSACleanup( ); |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
453 | } |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
454 | |
|
6262
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
455 | /* Set locale - determines which translations to user, and which |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
456 | aspell dictionary to use */ |
|
c5925284597c
[gaim-migrate @ 6758]
Herman Bloggs <herman@bluedigits.com>
parents:
6083
diff
changeset
|
457 | wgaim_set_locale(); |
|
3905
9721673d9f55
[gaim-migrate @ 4058]
Herman Bloggs <herman@bluedigits.com>
parents:
3856
diff
changeset
|
458 | |
|
4411
24b56b115e9d
[gaim-migrate @ 4684]
Herman Bloggs <herman@bluedigits.com>
parents:
4406
diff
changeset
|
459 | /* 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
|
460 | 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
|
461 | 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
|
462 | windows machines. |
|
24b56b115e9d
[gaim-migrate @ 4684]
Herman Bloggs <herman@bluedigits.com>
parents:
4406
diff
changeset
|
463 | */ |
|
24b56b115e9d
[gaim-migrate @ 4684]
Herman Bloggs <herman@bluedigits.com>
parents:
4406
diff
changeset
|
464 | sprintf(newenv, "PANGO_WIN32_NO_UNISCRIBE=1"); |
|
24b56b115e9d
[gaim-migrate @ 4684]
Herman Bloggs <herman@bluedigits.com>
parents:
4406
diff
changeset
|
465 | if(putenv(newenv)<0) |
| 5854 | 466 | gaim_debug(GAIM_DEBUG_WARNING, "wgaim", "putenv failed\n"); |
|
4411
24b56b115e9d
[gaim-migrate @ 4684]
Herman Bloggs <herman@bluedigits.com>
parents:
4406
diff
changeset
|
467 | |
|
3907
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
468 | /* |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
469 | * IdleTracker Initialization |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
470 | */ |
|
4535
9b3bdd5d6653
[gaim-migrate @ 4814]
Herman Bloggs <herman@bluedigits.com>
parents:
4411
diff
changeset
|
471 | if(!wgaim_set_idlehooks()) |
| 5854 | 472 | 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
|
473 | |
|
3b98cd332858
[gaim-migrate @ 5188]
Herman Bloggs <herman@bluedigits.com>
parents:
4728
diff
changeset
|
474 | wgaim_gtkspell_init(); |
| 3630 | 475 | } |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
476 | |
|
3907
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
477 | /* Windows Cleanup */ |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
478 | |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
479 | void wgaim_cleanup(void) { |
| 5854 | 480 | gaim_debug(GAIM_DEBUG_INFO, "wgaim", "wgaim_cleanup\n"); |
|
3907
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
481 | |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
482 | /* winsock cleanup */ |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
483 | WSACleanup( ); |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
484 | |
|
4535
9b3bdd5d6653
[gaim-migrate @ 4814]
Herman Bloggs <herman@bluedigits.com>
parents:
4411
diff
changeset
|
485 | /* Idle tracker cleanup */ |
|
9b3bdd5d6653
[gaim-migrate @ 4814]
Herman Bloggs <herman@bluedigits.com>
parents:
4411
diff
changeset
|
486 | wgaim_remove_idlehooks(); |
|
3907
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
487 | } |
|
7de53cfd3660
[gaim-migrate @ 4060]
Herman Bloggs <herman@bluedigits.com>
parents:
3905
diff
changeset
|
488 | |
|
3950
0cab330f1cd6
[gaim-migrate @ 4129]
Herman Bloggs <herman@bluedigits.com>
parents:
3907
diff
changeset
|
489 | /* DLL initializer */ |
|
3856
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
490 | BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved ) { |
|
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
491 | gaimdll_hInstance = hinstDLL; |
|
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
492 | return TRUE; |
|
db98b5201da8
[gaim-migrate @ 4008]
Herman Bloggs <herman@bluedigits.com>
parents:
3630
diff
changeset
|
493 | } |