Mercurial > pidgin.yaz
comparison plugins/docklet/docklet-win32.c @ 10520:976c7b186789
[gaim-migrate @ 11835]
It turns out that Windows 2000 and ME will load icons with a greater color depth than 4 bits, but will only display them in 4-bit color. This is very ugly, so the new icons will only be used for Windows XP and newer.
committer: Tailor Script <tailor@pidgin.im>
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Mon, 17 Jan 2005 01:35:42 +0000 |
parents | d082b2a71ee7 |
children | cae2fb7e8594 |
comparison
equal
deleted
inserted
replaced
10519:bec9130b24d2 | 10520:976c7b186789 |
---|---|
190 static void wgaim_tray_blank_icon() { | 190 static void wgaim_tray_blank_icon() { |
191 systray_change_icon(sysicon_blank, NULL); | 191 systray_change_icon(sysicon_blank, NULL); |
192 } | 192 } |
193 | 193 |
194 static void wgaim_tray_create() { | 194 static void wgaim_tray_create() { |
195 OSVERSIONINFO osinfo; | |
195 /* dummy window to process systray messages */ | 196 /* dummy window to process systray messages */ |
196 systray_hwnd = systray_create_hiddenwin(); | 197 systray_hwnd = systray_create_hiddenwin(); |
197 | 198 |
198 /* Load icons, and init systray notify icon */ | 199 osinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); |
199 sysicon_disconn = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_OFFLINE_TRAY_ICON), IMAGE_ICON, 16, 16, 0); | 200 GetVersionEx(&osinfo); |
200 sysicon_conn = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_TRAY_ICON), IMAGE_ICON, 16, 16, 0); | 201 |
201 sysicon_away = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAY_TRAY_ICON), IMAGE_ICON, 16, 16, 0); | 202 /* Load icons, and init systray notify icon |
202 sysicon_pend = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_PEND_TRAY_ICON), IMAGE_ICON, 16, 16, 0); | 203 * NOTE: Windows > XP only supports displaying 4-bit images in the Systray, |
203 sysicon_awypend = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAYPEND_TRAY_ICON), IMAGE_ICON, 16, 16, 0); | 204 * 2K and ME will use the highest color depth that the desktop will support, |
205 * but will scale it back to 4-bits for display. | |
206 * That is why we use custom 4-bit icons for pre XP Windowses */ | |
207 if (osinfo.dwMajorVersion == 5 && osinfo.dwMinorVersion > 0) { | |
208 sysicon_disconn = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_OFFLINE_TRAY_ICON), IMAGE_ICON, 16, 16, 0); | |
209 sysicon_conn = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_TRAY_ICON), IMAGE_ICON, 16, 16, 0); | |
210 sysicon_away = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAY_TRAY_ICON), IMAGE_ICON, 16, 16, 0); | |
211 sysicon_pend = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_PEND_TRAY_ICON), IMAGE_ICON, 16, 16, 0); | |
212 sysicon_awypend = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAYPEND_TRAY_ICON), IMAGE_ICON, 16, 16, 0); | |
213 } else { | |
214 sysicon_disconn = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_OFFLINE_TRAY_ICON_4BIT), IMAGE_ICON, 16, 16, 0); | |
215 sysicon_conn = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_TRAY_ICON_4BIT), IMAGE_ICON, 16, 16, 0); | |
216 sysicon_away = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAY_TRAY_ICON_4BIT), IMAGE_ICON, 16, 16, 0); | |
217 sysicon_pend = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_PEND_TRAY_ICON_4BIT), IMAGE_ICON, 16, 16, 0); | |
218 sysicon_awypend = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAYPEND_TRAY_ICON_4BIT), IMAGE_ICON, 16, 16, 0); | |
219 } | |
204 sysicon_blank = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_BLANK_TRAY_ICON), IMAGE_ICON, 16, 16, 0); | 220 sysicon_blank = (HICON)LoadImage(wgaim_hinstance(), MAKEINTRESOURCE(GAIM_BLANK_TRAY_ICON), IMAGE_ICON, 16, 16, 0); |
205 | 221 |
206 /* Create icon in systray */ | 222 /* Create icon in systray */ |
207 systray_init_icon(systray_hwnd, sysicon_disconn); | 223 systray_init_icon(systray_hwnd, sysicon_disconn); |
208 gaim_debug(GAIM_DEBUG_INFO, "tray icon", "created\n"); | 224 gaim_debug(GAIM_DEBUG_INFO, "tray icon", "created\n"); |