Mercurial > pidgin.yaz
comparison plugins/docklet/docklet-win32.c @ 6894:c2fb9192377b
[gaim-migrate @ 7441]
robot101: instead of blinking between the one with the envelope, and the one without, it's going to blink between blank and the one with the envelope
committer: Tailor Script <tailor@pidgin.im>
author | Herman Bloggs <hermanator12002@yahoo.com> |
---|---|
date | Fri, 19 Sep 2003 23:18:40 +0000 |
parents | 26b739bc9f1a |
children | 4d05b6e9e9cd |
comparison
equal
deleted
inserted
replaced
6893:126e123bf065 | 6894:c2fb9192377b |
---|---|
53 static HICON sysicon_disconn=0; | 53 static HICON sysicon_disconn=0; |
54 static HICON sysicon_conn=0; | 54 static HICON sysicon_conn=0; |
55 static HICON sysicon_away=0; | 55 static HICON sysicon_away=0; |
56 static HICON sysicon_pend=0; | 56 static HICON sysicon_pend=0; |
57 static HICON sysicon_awypend=0; | 57 static HICON sysicon_awypend=0; |
58 static HICON sysicon_blank=0; | |
58 static NOTIFYICONDATA wgaim_nid; | 59 static NOTIFYICONDATA wgaim_nid; |
59 | 60 |
60 | 61 |
61 static LRESULT CALLBACK systray_mainmsg_handler(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { | 62 static LRESULT CALLBACK systray_mainmsg_handler(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { |
62 static UINT taskbarRestartMsg; /* static here means value is kept across multiple calls to this func */ | 63 static UINT taskbarRestartMsg; /* static here means value is kept across multiple calls to this func */ |
149 } | 150 } |
150 | 151 |
151 static void systray_change_icon(HICON icon, char* text) { | 152 static void systray_change_icon(HICON icon, char* text) { |
152 char *locenc=NULL; | 153 char *locenc=NULL; |
153 wgaim_nid.hIcon = icon; | 154 wgaim_nid.hIcon = icon; |
154 locenc = g_locale_from_utf8(text, -1, NULL, NULL, NULL); | 155 if(text) { |
155 lstrcpy(wgaim_nid.szTip, locenc); | 156 locenc = g_locale_from_utf8(text, -1, NULL, NULL, NULL); |
156 g_free(locenc); | 157 lstrcpy(wgaim_nid.szTip, locenc); |
158 g_free(locenc); | |
159 } | |
157 Shell_NotifyIcon(NIM_MODIFY,&wgaim_nid); | 160 Shell_NotifyIcon(NIM_MODIFY,&wgaim_nid); |
158 } | 161 } |
159 | 162 |
160 static void systray_remove_nid(void) { | 163 static void systray_remove_nid(void) { |
161 Shell_NotifyIcon(NIM_DELETE,&wgaim_nid); | 164 Shell_NotifyIcon(NIM_DELETE,&wgaim_nid); |
180 break; | 183 break; |
181 case away_pending: | 184 case away_pending: |
182 systray_change_icon(sysicon_awypend, GAIM_SYSTRAY_AWAY_HINT); | 185 systray_change_icon(sysicon_awypend, GAIM_SYSTRAY_AWAY_HINT); |
183 break; | 186 break; |
184 } | 187 } |
188 } | |
189 | |
190 static void wgaim_tray_blank_icon() { | |
191 systray_change_icon(sysicon_blank, NULL); | |
185 } | 192 } |
186 | 193 |
187 static void wgaim_tray_create() { | 194 static void wgaim_tray_create() { |
188 /* dummy window to process systray messages */ | 195 /* dummy window to process systray messages */ |
189 systray_hwnd = systray_create_hiddenwin(); | 196 systray_hwnd = systray_create_hiddenwin(); |
192 sysicon_disconn = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_OFFLINE_TRAY_ICON), IMAGE_ICON, 16, 16, 0); | 199 sysicon_disconn = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_OFFLINE_TRAY_ICON), IMAGE_ICON, 16, 16, 0); |
193 sysicon_conn = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_TRAY_ICON), IMAGE_ICON, 16, 16, 0); | 200 sysicon_conn = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_TRAY_ICON), IMAGE_ICON, 16, 16, 0); |
194 sysicon_away = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAY_TRAY_ICON), IMAGE_ICON, 16, 16, 0); | 201 sysicon_away = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAY_TRAY_ICON), IMAGE_ICON, 16, 16, 0); |
195 sysicon_pend = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_PEND_TRAY_ICON), IMAGE_ICON, 16, 16, 0); | 202 sysicon_pend = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_PEND_TRAY_ICON), IMAGE_ICON, 16, 16, 0); |
196 sysicon_awypend = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAYPEND_TRAY_ICON), IMAGE_ICON, 16, 16, 0); | 203 sysicon_awypend = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAYPEND_TRAY_ICON), IMAGE_ICON, 16, 16, 0); |
204 sysicon_blank = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_BLANK_TRAY_ICON), IMAGE_ICON, 16, 16, 0); | |
197 | 205 |
198 /* Create icon in systray */ | 206 /* Create icon in systray */ |
199 systray_init_icon(systray_hwnd, sysicon_disconn); | 207 systray_init_icon(systray_hwnd, sysicon_disconn); |
200 gaim_debug(GAIM_DEBUG_INFO, "tray icon", "created\n"); | 208 gaim_debug(GAIM_DEBUG_INFO, "tray icon", "created\n"); |
201 } | 209 } |
208 | 216 |
209 static struct docklet_ui_ops wgaim_tray_ops = | 217 static struct docklet_ui_ops wgaim_tray_ops = |
210 { | 218 { |
211 wgaim_tray_create, | 219 wgaim_tray_create, |
212 wgaim_tray_destroy, | 220 wgaim_tray_destroy, |
213 wgaim_tray_update_icon | 221 wgaim_tray_update_icon, |
222 wgaim_tray_blank_icon | |
214 }; | 223 }; |
215 | 224 |
216 /* Used by docklet's plugin load func */ | 225 /* Used by docklet's plugin load func */ |
217 void docklet_ui_init() { | 226 void docklet_ui_init() { |
218 docklet_set_ui_ops(&wgaim_tray_ops); | 227 docklet_set_ui_ops(&wgaim_tray_ops); |