Mercurial > pidgin.yaz
annotate src/win32/systray.c @ 5798:217d24d11b6e
[gaim-migrate @ 6223]
<SimGuy> it was partly my stupidity :)
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Sat, 07 Jun 2003 09:09:11 +0000 |
parents | 0efc365eed6d |
children | 9657e243d001 |
rev | line source |
---|---|
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
1 /* |
5399
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
2 * gaim - Windows Gaim systray module |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
3 * |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
4 * File: systray.c |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
5 * Date: November, 2002 |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
6 * |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
7 * Copyright (C) 2002, Herman Bloggs <hermanator12002@yahoo.com> |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
8 * |
5399
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
9 * This program is free software; you can redistribute it and/or modify |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
10 * it under the terms of the GNU General Public License as published by |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
11 * the Free Software Foundation; either version 2 of the License, or |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
12 * (at your option) any later version. |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
13 * |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
14 * This program is distributed in the hope that it will be useful, |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
17 * GNU General Public License for more details. |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
18 * |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
19 * You should have received a copy of the GNU General Public License |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
20 * along with this program; if not, write to the Free Software |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
22 * |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
23 */ |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
24 #include <windows.h> |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
25 #include <gdk/gdkwin32.h> |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
26 #include "resource.h" |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
27 #include "gaim.h" |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
28 #include "win32dep.h" |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
29 #include "MinimizeToTray.h" |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
30 #include "ui.h" |
5248 | 31 #include "gtkblist.h" |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
32 |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
33 /* |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
34 * DEFINES, MACROS & DATA TYPES |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
35 */ |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
36 #define GAIM_SYSTRAY_HINT _("Gaim Instant Messenger") |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
37 #define GAIM_SYSTRAY_DISCONN_HINT _("Gaim Instant Messenger - Signed off") |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
38 #define GAIM_SYSTRAY_AWAY_HINT _("Gaim Instant Messenger - Away") |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
39 #define WM_TRAYMESSAGE WM_USER /* User defined WM Message */ |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
40 #define MAX_AWY_MESSAGES 50 |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
41 |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
42 enum _SYSTRAY_STATE { |
4500
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
43 SYSTRAY_STATE_ONLINE, |
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
44 SYSTRAY_STATE_ONLINE_CONNECTING, |
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
45 SYSTRAY_STATE_OFFLINE, |
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
46 SYSTRAY_STATE_OFFLINE_CONNECTING, |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
47 SYSTRAY_STATE_AWAY, |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
48 SYSTRAY_STATE_COUNT |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
49 }; |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
50 typedef enum _SYSTRAY_STATE SYSTRAY_STATE; |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
51 |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
52 enum _SYSTRAY_CMND { |
5399
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
53 SYSTRAY_CMND_MENU_EXIT=100, |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
54 SYSTRAY_CMND_SIGNON, |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
55 SYSTRAY_CMND_SIGNOFF, |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
56 SYSTRAY_CMND_AUTOLOGIN, |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
57 SYSTRAY_CMND_PREFS, |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
58 SYSTRAY_CMND_BACK, |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
59 SYSTRAY_CMND_SET_AWY_NEW, |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
60 SYSTRAY_CMND_SET_AWY, |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
61 SYSTRAY_CMND_SET_AWY_LAST=SYSTRAY_CMND_SET_AWY+MAX_AWY_MESSAGES |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
62 }; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
63 typedef enum _SYSTRAY_CMND SYSTRAY_CMND; |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
64 |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
65 /* |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
66 * LOCALS |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
67 */ |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
68 static HWND systray_hwnd=0; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
69 static HICON sysicon_disconn=0; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
70 static HICON sysicon_conn=0; |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
71 static HICON sysicon_away=0; |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
72 static NOTIFYICONDATA wgaim_nid; |
4500
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
73 static SYSTRAY_STATE st_state=SYSTRAY_STATE_OFFLINE; |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
74 static HMENU systray_menu=0; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
75 static HMENU systray_away_menu=0; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
76 |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
77 /* |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
78 * GLOBALS |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
79 */ |
3972
f9e961773058
[gaim-migrate @ 4156]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3959
diff
changeset
|
80 extern GtkWidget *imaway; |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
81 |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
82 /* |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
83 * PRIVATE CODE |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
84 */ |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
85 |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
86 /* |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
87 * SYSTRAY HELPERS |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
88 ********************/ |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
89 |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
90 /* Returns 1 if menu item exists, 0 if not */ |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
91 static int IsMenuItem( HMENU hMenu, UINT id ) { |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
92 if(0xFFFFFFFF == GetMenuState(hMenu, id, MF_BYCOMMAND)) |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
93 return 0; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
94 else |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
95 return 1; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
96 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
97 |
5399
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
98 static int GetMenuItemPosition( HMENU hMenu, UINT id ) { |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
99 int count = GetMenuItemCount(hMenu); |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
100 int i; |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
101 |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
102 for(i=0;i<count;i++) { |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
103 if(GetMenuItemID(hMenu, i)==id) |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
104 return i; |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
105 } |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
106 return -1; |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
107 } |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
108 |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
109 /* |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
110 * WGAIM SYSTRAY GUI |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
111 ********************/ |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
112 |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
113 static HMENU systray_create_awy_menu(void) { |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
114 int item_count = SYSTRAY_CMND_SET_AWY; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
115 struct away_message *a = NULL; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
116 GSList *awy = away_messages; |
5377
fb0a5b872e6a
[gaim-migrate @ 5753]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5376
diff
changeset
|
117 char* locenc=NULL; |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
118 |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
119 /* Delete previous away submenu */ |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
120 if(systray_away_menu) { |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
121 DestroyMenu(systray_away_menu); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
122 systray_away_menu = 0; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
123 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
124 systray_away_menu = CreatePopupMenu(); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
125 while (awy && (item_count <= SYSTRAY_CMND_SET_AWY+MAX_AWY_MESSAGES)) { |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
126 a = (struct away_message *)awy->data; |
5376
a93c92572106
[gaim-migrate @ 5752]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5365
diff
changeset
|
127 locenc = g_locale_from_utf8(a->name, -1, NULL, NULL, NULL); |
5365
fa63b4c784b9
[gaim-migrate @ 5741]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
128 AppendMenu(systray_away_menu, MF_STRING, item_count, locenc); |
fa63b4c784b9
[gaim-migrate @ 5741]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
129 g_free(locenc); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
130 awy = g_slist_next(awy); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
131 item_count+=1; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
132 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
133 AppendMenu(systray_away_menu, MF_SEPARATOR, 0, 0); |
5376
a93c92572106
[gaim-migrate @ 5752]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5365
diff
changeset
|
134 locenc = g_locale_from_utf8(_("New"), -1, NULL, NULL, NULL); |
5365
fa63b4c784b9
[gaim-migrate @ 5741]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
135 AppendMenu(systray_away_menu, MF_STRING, SYSTRAY_CMND_SET_AWY_NEW, locenc); |
fa63b4c784b9
[gaim-migrate @ 5741]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
136 g_free(locenc); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
137 return systray_away_menu; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
138 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
139 |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
140 static void systray_show_menu(int x, int y, BOOL connected) { |
5377
fb0a5b872e6a
[gaim-migrate @ 5753]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5376
diff
changeset
|
141 char* locenc=NULL; |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
142 /* need to call this so that the menu disappears if clicking outside |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
143 of the menu scope */ |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
144 SetForegroundWindow(systray_hwnd); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
145 |
5399
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
146 /* in both connected and disconnected case delete away message menu */ |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
147 if(systray_away_menu) { |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
148 if(!DeleteMenu(systray_menu, (UINT)systray_away_menu, MF_BYCOMMAND)) |
5795
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
149 gaim_debug(GAIM_DEBUG_ERROR, "wgaim_systray", "Error using DeleteMenu\n"); |
5399
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
150 } |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
151 |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
152 |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
153 /* Different menus depending on signed on/off state */ |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
154 if(connected) { |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
155 /* If signoff item dosn't exist.. create it */ |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
156 if(!IsMenuItem(systray_menu, SYSTRAY_CMND_SIGNOFF)) { |
5399
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
157 int pos; |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
158 DeleteMenu(systray_menu, SYSTRAY_CMND_SIGNON, MF_BYCOMMAND); |
5376
a93c92572106
[gaim-migrate @ 5752]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5365
diff
changeset
|
159 locenc = g_locale_from_utf8(_("Signoff"), -1, NULL, NULL, NULL); |
5399
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
160 pos = GetMenuItemPosition(systray_menu, SYSTRAY_CMND_MENU_EXIT) - 1; |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
161 if(!InsertMenu(systray_menu, pos, |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
162 MF_BYPOSITION | MF_STRING, SYSTRAY_CMND_SIGNOFF, locenc)) |
5795
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
163 gaim_debug(GAIM_DEBUG_ERROR, "wgaim_systray", "InsertMenu failed: %s\n", GetLastError()); |
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
164 gaim_debug(GAIM_DEBUG_INFO, "wgaim_systray", "Inserted Menu with ID: %d\n", SYSTRAY_CMND_SIGNOFF); |
5365
fa63b4c784b9
[gaim-migrate @ 5741]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
165 g_free(locenc); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
166 } |
5376
a93c92572106
[gaim-migrate @ 5752]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5365
diff
changeset
|
167 locenc = g_locale_from_utf8(_("Set Away Message"), -1, NULL, NULL, NULL); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
168 InsertMenu(systray_menu, SYSTRAY_CMND_PREFS, |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
169 MF_BYCOMMAND | MF_POPUP | MF_STRING, (UINT)systray_create_awy_menu(), |
5365
fa63b4c784b9
[gaim-migrate @ 5741]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
170 locenc); |
fa63b4c784b9
[gaim-migrate @ 5741]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
171 g_free(locenc); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
172 EnableMenuItem(systray_menu, SYSTRAY_CMND_AUTOLOGIN, MF_GRAYED); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
173 /* If away, put "I'm Back" option in menu */ |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
174 if(st_state == SYSTRAY_STATE_AWAY) { |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
175 if(!IsMenuItem(systray_menu, SYSTRAY_CMND_BACK)) { |
5376
a93c92572106
[gaim-migrate @ 5752]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5365
diff
changeset
|
176 locenc = g_locale_from_utf8(_("I'm Back"), -1, NULL, NULL, NULL); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
177 InsertMenu(systray_menu, (UINT)systray_away_menu, |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
178 MF_BYCOMMAND | MF_STRING, SYSTRAY_CMND_BACK, |
5365
fa63b4c784b9
[gaim-migrate @ 5741]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
179 locenc); |
fa63b4c784b9
[gaim-migrate @ 5741]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
180 g_free(locenc); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
181 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
182 } else { |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
183 /* Delete I'm Back item if it exists */ |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
184 DeleteMenu(systray_menu, SYSTRAY_CMND_BACK, MF_BYCOMMAND); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
185 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
186 } else { |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
187 /* If signon item dosn't exist.. create it */ |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
188 if(!IsMenuItem(systray_menu, SYSTRAY_CMND_SIGNON)) { |
5399
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
189 int pos; |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
190 DeleteMenu(systray_menu, SYSTRAY_CMND_SIGNOFF, MF_BYCOMMAND); |
5376
a93c92572106
[gaim-migrate @ 5752]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5365
diff
changeset
|
191 locenc = g_locale_from_utf8(_("Sign On"), -1, NULL, NULL, NULL); |
5399
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
192 pos = GetMenuItemPosition(systray_menu, SYSTRAY_CMND_MENU_EXIT) - 1; |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
193 if(!InsertMenu(systray_menu, pos, |
afe9e1f0b9b0
[gaim-migrate @ 5775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5389
diff
changeset
|
194 MF_BYPOSITION | MF_STRING, SYSTRAY_CMND_SIGNON, locenc)) |
5795
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
195 gaim_debug(GAIM_DEBUG_ERROR, "wgaim_systray", "InsertMenu failed: %s\n", GetLastError()); |
5365
fa63b4c784b9
[gaim-migrate @ 5741]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
196 g_free(locenc); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
197 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
198 EnableMenuItem(systray_menu, SYSTRAY_CMND_AUTOLOGIN, MF_ENABLED); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
199 EnableMenuItem(systray_menu, (UINT)systray_away_menu, MF_GRAYED); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
200 /* Delete I'm Back item if it exists */ |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
201 DeleteMenu(systray_menu, SYSTRAY_CMND_BACK, MF_BYCOMMAND); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
202 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
203 |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
204 TrackPopupMenu(systray_menu, // handle to shortcut menu |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
205 TPM_RIGHTALIGN | TPM_BOTTOMALIGN | TPM_LEFTBUTTON, |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
206 x, // horizontal position, in screen coordinates |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
207 y, // vertical position, in screen coordinates |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
208 0, // reserved, must be zero |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
209 systray_hwnd, // handle to owner window |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
210 NULL // ignored |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
211 ); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
212 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
213 |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
214 /* Set nth away message from away_messages list */ |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
215 static void systray_set_away(int nth) { |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
216 int item_count = 0; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
217 GSList *awy = away_messages; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
218 struct away_message *a = NULL; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
219 |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
220 while (awy && (item_count != nth)) { |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
221 awy = g_slist_next(awy); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
222 item_count+=1; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
223 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
224 if(awy) { |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
225 a = (struct away_message *)awy->data; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
226 do_away_message(NULL, a); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
227 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
228 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
229 |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
230 static LRESULT CALLBACK systray_mainmsg_handler(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { |
5389
3a4b9b057825
[gaim-migrate @ 5765]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5377
diff
changeset
|
231 static UINT taskbarRestartMsg; /* static here means value is kept across multiple calls to this func */ |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
232 |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
233 switch(msg) { |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
234 case WM_CREATE: |
5795
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
235 gaim_debug(GAIM_DEBUG_INFO, "wgaim_systray", "WM_CREATE\n"); |
5389
3a4b9b057825
[gaim-migrate @ 5765]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5377
diff
changeset
|
236 taskbarRestartMsg = RegisterWindowMessage("TaskbarCreated"); |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
237 break; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
238 |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
239 case WM_TIMER: |
5795
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
240 gaim_debug(GAIM_DEBUG_INFO, "wgaim_systray", "WM_TIMER\n"); |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
241 break; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
242 |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
243 case WM_DESTROY: |
5795
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
244 gaim_debug(GAIM_DEBUG_INFO, "wgaim_systray", "WM_DESTROY\n"); |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
245 break; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
246 |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
247 case WM_COMMAND: |
5795
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
248 gaim_debug(GAIM_DEBUG_INFO, "wgaim_systray", "WM_COMMAND\n"); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
249 switch(LOWORD(wparam)) { |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
250 case SYSTRAY_CMND_MENU_EXIT: |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
251 do_quit(); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
252 break; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
253 case SYSTRAY_CMND_SIGNON: |
5795
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
254 gaim_debug(GAIM_DEBUG_INFO, "wgaim_systray", "signon\n"); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
255 show_login(); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
256 break; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
257 case SYSTRAY_CMND_SIGNOFF: |
5795
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
258 gaim_debug(GAIM_DEBUG_INFO, "wgaim_systray", "signoff\n"); |
5746
2c04c55222b7
[gaim-migrate @ 6171]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5399
diff
changeset
|
259 gaim_connections_disconnect_all(); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
260 break; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
261 case SYSTRAY_CMND_AUTOLOGIN: |
5795
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
262 gaim_debug(GAIM_DEBUG_INFO, "wgaim_systray", "autologin\n"); |
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
263 gaim_accounts_auto_login(GAIM_GTK_UI); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
264 break; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
265 case SYSTRAY_CMND_PREFS: |
5795
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
266 gaim_debug(GAIM_DEBUG_INFO, "wgaim_systray", "Prefs\n"); |
5746
2c04c55222b7
[gaim-migrate @ 6171]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5399
diff
changeset
|
267 gaim_gtk_prefs_show(); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
268 break; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
269 case SYSTRAY_CMND_BACK: |
5795
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
270 gaim_debug(GAIM_DEBUG_INFO, "wgaim_systray", "I'm back\n"); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
271 do_im_back(NULL, NULL); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
272 break; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
273 case SYSTRAY_CMND_SET_AWY_NEW: |
5795
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
274 gaim_debug(GAIM_DEBUG_INFO, "wgaim_systray", "New away item\n"); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
275 create_away_mess(NULL, NULL); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
276 break; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
277 default: |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
278 /* SYSTRAY_CMND_SET_AWY */ |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
279 if((LOWORD(wparam) >= SYSTRAY_CMND_SET_AWY) && |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
280 (LOWORD(wparam) <= (SYSTRAY_CMND_SET_AWY + MAX_AWY_MESSAGES))) { |
5795
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
281 gaim_debug(GAIM_DEBUG_INFO, "wgaim_systray", "Set away message\n"); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
282 systray_set_away(LOWORD(wparam)-SYSTRAY_CMND_SET_AWY); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
283 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
284 } |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
285 break; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
286 case WM_TRAYMESSAGE: |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
287 { |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
288 if( lparam == WM_LBUTTONDBLCLK ) { |
4500
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
289 /* Double Click */ |
3972
f9e961773058
[gaim-migrate @ 4156]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3959
diff
changeset
|
290 /* Either hide or show current window (login or buddy) */ |
4715
362490c75f74
[gaim-migrate @ 5026]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4500
diff
changeset
|
291 gaim_gtk_blist_docklet_toggle(); |
5795
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
292 gaim_debug(GAIM_DEBUG_INFO, "wgaim_systray", "Systray got double click\n"); |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
293 } |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
294 if( lparam == WM_RBUTTONUP ) { |
4500
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
295 /* Right Click */ |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
296 POINT mpoint; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
297 GetCursorPos(&mpoint); |
4500
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
298 |
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
299 switch(st_state) { |
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
300 case SYSTRAY_STATE_OFFLINE: |
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
301 case SYSTRAY_STATE_OFFLINE_CONNECTING: |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
302 systray_show_menu(mpoint.x, mpoint.y, 0); |
4500
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
303 break; |
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
304 default: |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
305 systray_show_menu(mpoint.x, mpoint.y, 1); |
4500
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
306 } |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
307 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
308 break; |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
309 } |
5389
3a4b9b057825
[gaim-migrate @ 5765]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5377
diff
changeset
|
310 default: |
3a4b9b057825
[gaim-migrate @ 5765]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5377
diff
changeset
|
311 if (msg == taskbarRestartMsg) { |
3a4b9b057825
[gaim-migrate @ 5765]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5377
diff
changeset
|
312 /* explorer crashed and left us hanging... |
3a4b9b057825
[gaim-migrate @ 5765]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5377
diff
changeset
|
313 This will put the systray icon back in it's place, when it restarts */ |
3a4b9b057825
[gaim-migrate @ 5765]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5377
diff
changeset
|
314 Shell_NotifyIcon(NIM_ADD,&wgaim_nid); |
3a4b9b057825
[gaim-migrate @ 5765]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5377
diff
changeset
|
315 } |
3a4b9b057825
[gaim-migrate @ 5765]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5377
diff
changeset
|
316 break; |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
317 }/* end switch */ |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
318 |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
319 return DefWindowProc(hwnd, msg, wparam, lparam); |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
320 } |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
321 |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
322 /* Create hidden window to process systray messages */ |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
323 static HWND systray_create_hiddenwin() { |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
324 WNDCLASSEX wcex; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
325 TCHAR wname[32]; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
326 |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
327 strcpy(wname, "GaimWin"); |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
328 |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
329 wcex.cbSize = sizeof(WNDCLASSEX); |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
330 |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
331 wcex.style = 0; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
332 wcex.lpfnWndProc = (WNDPROC)systray_mainmsg_handler; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
333 wcex.cbClsExtra = 0; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
334 wcex.cbWndExtra = 0; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
335 wcex.hInstance = wgaim_hinstance(); |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
336 wcex.hIcon = NULL; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
337 wcex.hCursor = NULL, |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
338 wcex.hbrBackground = NULL; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
339 wcex.lpszMenuName = NULL; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
340 wcex.lpszClassName = wname; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
341 wcex.hIconSm = NULL; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
342 |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
343 RegisterClassEx(&wcex); |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
344 |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
345 // Create the window |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
346 return (CreateWindow(wname, "", 0, 0, 0, 0, 0, GetDesktopWindow(), NULL, wgaim_hinstance(), 0)); |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
347 } |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
348 |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
349 static void systray_create_menu(void) { |
5377
fb0a5b872e6a
[gaim-migrate @ 5753]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5376
diff
changeset
|
350 char* locenc=NULL; |
fb0a5b872e6a
[gaim-migrate @ 5753]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5376
diff
changeset
|
351 |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
352 /* create popup menu */ |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
353 if((systray_menu = CreatePopupMenu())) { |
5365
fa63b4c784b9
[gaim-migrate @ 5741]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
354 if(!AppendMenu(systray_menu, MF_STRING, SYSTRAY_CMND_PREFS, |
5376
a93c92572106
[gaim-migrate @ 5752]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5365
diff
changeset
|
355 (locenc=g_locale_from_utf8(_("Preferences"), -1, NULL, NULL, NULL)))) |
5795
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
356 gaim_debug(GAIM_DEBUG_ERROR, "wgaim_systray", "AppendMenu error: %ld\n", GetLastError()); |
5365
fa63b4c784b9
[gaim-migrate @ 5741]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
357 g_free(locenc); |
fa63b4c784b9
[gaim-migrate @ 5741]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
358 if(!AppendMenu(systray_menu, MF_STRING, SYSTRAY_CMND_AUTOLOGIN, |
5376
a93c92572106
[gaim-migrate @ 5752]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5365
diff
changeset
|
359 (locenc=g_locale_from_utf8(_("Auto-login"), -1, NULL, NULL, NULL)))) |
5795
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
360 gaim_debug(GAIM_DEBUG_ERROR, "wgaim_systray", "AppendMenu error: %ld\n", GetLastError()); |
5365
fa63b4c784b9
[gaim-migrate @ 5741]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
361 g_free(locenc); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
362 if(!AppendMenu(systray_menu, MF_SEPARATOR, 0, 0)) |
5795
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
363 gaim_debug(GAIM_DEBUG_ERROR, "wgaim_systray", "AppendMenu error: %ld\n", GetLastError()); |
5365
fa63b4c784b9
[gaim-migrate @ 5741]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
364 if(!AppendMenu(systray_menu, MF_STRING, SYSTRAY_CMND_MENU_EXIT, |
5376
a93c92572106
[gaim-migrate @ 5752]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5365
diff
changeset
|
365 (locenc=g_locale_from_utf8(_("Exit"), -1, NULL, NULL, NULL)))) |
5795
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
366 gaim_debug(GAIM_DEBUG_ERROR, "wgaim_systray", "AppendMenu error: %ld\n", GetLastError()); |
5365
fa63b4c784b9
[gaim-migrate @ 5741]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
367 g_free(locenc); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
368 } else |
5795
0efc365eed6d
[gaim-migrate @ 6220]
Christian Hammond <chipx86@chipx86.com>
parents:
5746
diff
changeset
|
369 gaim_debug(GAIM_DEBUG_ERROR, "wgaim_systray", "CreatePopupMenu error: %ld\n", GetLastError()); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
370 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
371 |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
372 static void systray_init_icon(HWND hWnd, HICON icon) { |
5377
fb0a5b872e6a
[gaim-migrate @ 5753]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5376
diff
changeset
|
373 char* locenc=NULL; |
fb0a5b872e6a
[gaim-migrate @ 5753]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5376
diff
changeset
|
374 |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
375 ZeroMemory(&wgaim_nid,sizeof(wgaim_nid)); |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
376 wgaim_nid.cbSize=sizeof(NOTIFYICONDATA); |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
377 wgaim_nid.hWnd=hWnd; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
378 wgaim_nid.uID=0; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
379 wgaim_nid.uFlags=NIF_ICON | NIF_MESSAGE | NIF_TIP; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
380 wgaim_nid.uCallbackMessage=WM_TRAYMESSAGE; |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
381 wgaim_nid.hIcon=icon; |
5376
a93c92572106
[gaim-migrate @ 5752]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5365
diff
changeset
|
382 locenc=g_locale_from_utf8(GAIM_SYSTRAY_DISCONN_HINT, -1, NULL, NULL, NULL); |
5365
fa63b4c784b9
[gaim-migrate @ 5741]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
383 strcpy(wgaim_nid.szTip, locenc); |
fa63b4c784b9
[gaim-migrate @ 5741]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
384 g_free(locenc); |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
385 Shell_NotifyIcon(NIM_ADD,&wgaim_nid); |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
386 } |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
387 |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
388 static void systray_change_icon(HICON icon, char* text) { |
5377
fb0a5b872e6a
[gaim-migrate @ 5753]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5376
diff
changeset
|
389 char *locenc=NULL; |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
390 wgaim_nid.hIcon = icon; |
5376
a93c92572106
[gaim-migrate @ 5752]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5365
diff
changeset
|
391 locenc = g_locale_from_utf8(text, -1, NULL, NULL, NULL); |
5365
fa63b4c784b9
[gaim-migrate @ 5741]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
392 lstrcpy(wgaim_nid.szTip, locenc); |
fa63b4c784b9
[gaim-migrate @ 5741]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
393 g_free(locenc); |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
394 Shell_NotifyIcon(NIM_MODIFY,&wgaim_nid); |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
395 } |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
396 |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
397 static void systray_remove_nid(void) { |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
398 Shell_NotifyIcon(NIM_DELETE,&wgaim_nid); |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
399 } |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
400 |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
401 static void systray_update_icon() { |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
402 switch(st_state) { |
4500
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
403 case SYSTRAY_STATE_ONLINE: |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
404 systray_change_icon(sysicon_conn, GAIM_SYSTRAY_HINT); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
405 break; |
4500
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
406 case SYSTRAY_STATE_ONLINE_CONNECTING: |
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
407 case SYSTRAY_STATE_OFFLINE_CONNECTING: |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
408 break; |
4500
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
409 case SYSTRAY_STATE_OFFLINE: |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
410 systray_change_icon(sysicon_disconn, GAIM_SYSTRAY_DISCONN_HINT); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
411 break; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
412 case SYSTRAY_STATE_AWAY: |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
413 systray_change_icon(sysicon_away, GAIM_SYSTRAY_AWAY_HINT); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
414 break; |
5084
a96653493416
[gaim-migrate @ 5439]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4881
diff
changeset
|
415 case SYSTRAY_STATE_COUNT: /* not a state, here to avoid warning */ |
a96653493416
[gaim-migrate @ 5439]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4881
diff
changeset
|
416 default: |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
417 } |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
418 } |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
419 |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
420 static void systray_update_status() { |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
421 SYSTRAY_STATE old_state = st_state; |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
422 |
5746
2c04c55222b7
[gaim-migrate @ 6171]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5399
diff
changeset
|
423 if(gaim_connections_get_all()) { |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
424 if(awaymessage) { |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
425 st_state = SYSTRAY_STATE_AWAY; |
5746
2c04c55222b7
[gaim-migrate @ 6171]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5399
diff
changeset
|
426 } else if(gaim_connections_get_connecting()) { |
4500
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
427 st_state = SYSTRAY_STATE_ONLINE_CONNECTING; |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
428 } else { |
4500
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
429 st_state = SYSTRAY_STATE_ONLINE; |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
430 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
431 } else { |
5746
2c04c55222b7
[gaim-migrate @ 6171]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5399
diff
changeset
|
432 if(gaim_connections_get_connecting()) { |
4500
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
433 st_state = SYSTRAY_STATE_OFFLINE_CONNECTING; |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
434 } else { |
4500
f5e7949668a5
[gaim-migrate @ 4775]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4106
diff
changeset
|
435 st_state = SYSTRAY_STATE_OFFLINE; |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
436 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
437 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
438 if(st_state != old_state) { |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
439 systray_update_icon(); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
440 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
441 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
442 |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
443 /* |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
444 * GAIM EVENT CALLBACKS |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
445 ***********************/ |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
446 |
5746
2c04c55222b7
[gaim-migrate @ 6171]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5399
diff
changeset
|
447 static void st_signon(GaimConnection *gc, void *data) { |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
448 systray_update_status(); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
449 } |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
450 |
5746
2c04c55222b7
[gaim-migrate @ 6171]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5399
diff
changeset
|
451 static void st_signoff(GaimConnection *gc, void *data) { |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
452 systray_update_status(); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
453 } |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
454 |
5746
2c04c55222b7
[gaim-migrate @ 6171]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5399
diff
changeset
|
455 static void st_away(GaimConnection *gc, void *data) { |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
456 systray_update_status(); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
457 } |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
458 |
5746
2c04c55222b7
[gaim-migrate @ 6171]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5399
diff
changeset
|
459 static void st_back(GaimConnection *gc, void *data) { |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
460 systray_update_status(); |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
461 } |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
462 |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
463 /* |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
464 * PUBLIC CODE |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
465 */ |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
466 |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
467 /* Create a hidden window and associate it with the systray icon. |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
468 We use this hidden window to proccess WM_TRAYMESSAGE msgs. */ |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
469 void wgaim_systray_init(void) { |
4715
362490c75f74
[gaim-migrate @ 5026]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4500
diff
changeset
|
470 gaim_gtk_blist_docklet_add(); |
3972
f9e961773058
[gaim-migrate @ 4156]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3959
diff
changeset
|
471 |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
472 /* dummy window to process systray messages */ |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
473 systray_hwnd = systray_create_hiddenwin(); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
474 |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
475 systray_create_menu(); |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
476 |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
477 /* Load icons, and init systray notify icon */ |
4101
003e0a02d6b9
[gaim-migrate @ 4316]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4087
diff
changeset
|
478 sysicon_disconn = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_OFFLINE_TRAY_ICON), IMAGE_ICON, 16, 16, 0); |
003e0a02d6b9
[gaim-migrate @ 4316]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4087
diff
changeset
|
479 sysicon_conn = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_TRAY_ICON), IMAGE_ICON, 16, 16, 0); |
003e0a02d6b9
[gaim-migrate @ 4316]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4087
diff
changeset
|
480 sysicon_away = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAY_TRAY_ICON), IMAGE_ICON, 16, 16, 0); |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
481 |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
482 /* Create icon in systray */ |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
483 systray_init_icon(systray_hwnd, sysicon_disconn); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
484 |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
485 /* Register Gaim event callbacks */ |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
486 gaim_signal_connect(NULL, event_signon, st_signon, NULL); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
487 gaim_signal_connect(NULL, event_signoff, st_signoff, NULL); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
488 gaim_signal_connect(NULL, event_away, st_away, NULL); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
489 gaim_signal_connect(NULL, event_back, st_back, NULL); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
490 /*gaim_signal_connect(NULL, event_connecting, wgaim_st_connecting, NULL); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
491 gaim_signal_connect(NULL, event_im_displayed_rcvd, wgaim_st_im_displayed_recv, NULL);*/ |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
492 } |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
493 |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
494 void wgaim_systray_cleanup(void) { |
4728
cf718383cd60
[gaim-migrate @ 5041]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4715
diff
changeset
|
495 /*gaim_gtk_blist_docklet_remove();*/ |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
496 systray_remove_nid(); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
497 DestroyMenu(systray_menu); |
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
498 DestroyWindow(systray_hwnd); |
3946
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
499 } |
8ef1360becfe
[gaim-migrate @ 4125]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
diff
changeset
|
500 |
3972
f9e961773058
[gaim-migrate @ 4156]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3959
diff
changeset
|
501 void wgaim_systray_minimize( GtkWidget *window ) { |
f9e961773058
[gaim-migrate @ 4156]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3959
diff
changeset
|
502 MinimizeWndToTray(GDK_WINDOW_HWND(window->window)); |
3959
9c2d8579ff3e
[gaim-migrate @ 4141]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3946
diff
changeset
|
503 } |
3972
f9e961773058
[gaim-migrate @ 4156]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3959
diff
changeset
|
504 |
f9e961773058
[gaim-migrate @ 4156]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3959
diff
changeset
|
505 void wgaim_systray_maximize( GtkWidget *window ) { |
f9e961773058
[gaim-migrate @ 4156]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3959
diff
changeset
|
506 RestoreWndFromTray(GDK_WINDOW_HWND(window->window)); |
f9e961773058
[gaim-migrate @ 4156]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3959
diff
changeset
|
507 } |