Mercurial > pidgin
diff plugins/docklet/docklet-win32.c @ 11709:cae2fb7e8594
[gaim-migrate @ 14000]
This is a patch from Casey Harkins to significantly overhaul the docklet plugin. I'm pretty happy about this because it enables us to remove a win32 GTK+ dependency on the core and all the prpls.
committer: Tailor Script <tailor@pidgin.im>
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Sat, 22 Oct 2005 01:18:08 +0000 |
parents | 976c7b186789 |
children | 24c7fb94d3a3 |
line wrap: on
line diff
--- a/plugins/docklet/docklet-win32.c Sat Oct 22 01:03:18 2005 +0000 +++ b/plugins/docklet/docklet-win32.c Sat Oct 22 01:18:08 2005 +0000 @@ -114,7 +114,7 @@ wcex.cbSize = sizeof(WNDCLASSEX); - wcex.style = 0; + wcex.style = 0; wcex.lpfnWndProc = (WNDPROC)systray_mainmsg_handler; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; @@ -152,11 +152,11 @@ static void systray_change_icon(HICON icon, char* text) { char *locenc=NULL; wgaim_nid.hIcon = icon; - if(text) { - locenc = g_locale_from_utf8(text, -1, NULL, NULL, NULL); - lstrcpy(wgaim_nid.szTip, locenc); - g_free(locenc); - } + if (text) { + locenc = g_locale_from_utf8(text, -1, NULL, NULL, NULL); + lstrcpy(wgaim_nid.szTip, locenc); + g_free(locenc); + } Shell_NotifyIcon(NIM_MODIFY,&wgaim_nid); } @@ -164,31 +164,30 @@ Shell_NotifyIcon(NIM_DELETE,&wgaim_nid); } -static void wgaim_tray_update_icon(enum docklet_status icon) { +static void wgaim_tray_update_icon(DockletStatus icon) { switch (icon) { - case offline: + case DOCKLET_STATUS_OFFLINE: systray_change_icon(sysicon_disconn, GAIM_SYSTRAY_DISCONN_HINT); break; - case offline_connecting: - case online_connecting: + case DOCKLET_STATUS_CONNECTING: break; - case online: + case DOCKLET_STATUS_ONLINE: systray_change_icon(sysicon_conn, GAIM_SYSTRAY_HINT); break; - case online_pending: + case DOCKLET_STATUS_ONLINE_PENDING: systray_change_icon(sysicon_pend, GAIM_SYSTRAY_HINT); break; - case away: + case DOCKLET_STATUS_AWAY: systray_change_icon(sysicon_away, GAIM_SYSTRAY_AWAY_HINT); break; - case away_pending: + case DOCKLET_STATUS_AWAY_PENDING: systray_change_icon(sysicon_awypend, GAIM_SYSTRAY_AWAY_HINT); break; } } static void wgaim_tray_blank_icon() { - systray_change_icon(sysicon_blank, NULL); + systray_change_icon(sysicon_blank, NULL); } static void wgaim_tray_create() { @@ -230,12 +229,22 @@ docklet_remove(TRUE); } +void wgaim_tray_minimize(GtkWidget *window) { + MinimizeWndToTray(GDK_WINDOW_HWND(window->window)); +} + +void wgaim_tray_maximize(GtkWidget *window) { + RestoreWndFromTray(GDK_WINDOW_HWND(window->window)); +} + static struct docklet_ui_ops wgaim_tray_ops = { wgaim_tray_create, wgaim_tray_destroy, wgaim_tray_update_icon, wgaim_tray_blank_icon, + wgaim_tray_minimize, + wgaim_tray_maximize, NULL };