Mercurial > pidgin.yaz
view src/win32/MinimizeToTray.c @ 5438:6e7ba9efd1f4
[gaim-migrate @ 5820]
I wrote sort-by-status.
Index: src/gtkblist.c
===================================================================
RCS file: /cvsroot/gaim/gaim/src/gtkblist.c,v
retrieving revision 1.28
diff -u -r1.28 gtkblist.c
--- src/gtkblist.c 18 May 2003 07:54:53 -0000 1.28
+++ src/gtkblist.c 18 May 2003 21:13:36 -0000
@@ -1319,11 +1320,11 @@
void gaim_gtk_blist_setup_sort_methods()
{
- gaim_gtk_blist_sort_method_reg("None", sort_method_none);
- gaim_gtk_blist_sort_method_reg("Alphabetical", sort_method_alphabetical);
- gaim_gtk_blist_sort_method_reg("By status", sort_method_status);
- gaim_gtk_blist_sort_method_reg("By log size", sort_method_log);
- gaim_gtk_blist_sort_method_set(sort_method[0] ? sort_method : "None");
+ gaim_gtk_blist_sort_method_reg(_("None"), sort_method_none);
+ gaim_gtk_blist_sort_method_reg(_("Alphabetical"), sort_method_alphabetical);
+ gaim_gtk_blist_sort_method_reg(_("By status"), sort_method_status);
+ gaim_gtk_blist_sort_method_reg(_("By log size"), sort_method_log);
+ gaim_gtk_blist_sort_method_set(sort_method[0] ? sort_method : _("None"));
}
@@ -2229,15 +2230,23 @@
if (n && GAIM_BLIST_NODE_IS_BUDDY(n)) {
struct buddy *new = (struct buddy*)node, *it = (struct buddy*)n;
- - if (it->idle > new->idle)
+ printf("Add %s (%d) before %s (%d)... ", new->name, new->idle, it->name, it->idle);
+ + /* This is the worst if statement ever. */
+ if ((it->present < new->present) ||
+ ((it->present == new->present) && (it->uc & UC_UNAVAILABLE) > (new->uc & UC_UNAVAILABLE)) ||
+ ((it->present == new->present) && ((it->uc & UC_UNAVAILABLE) == (new->uc & UC_UNAVAILABLE)) &&
+ ((it->idle && !new->idle) || (it->idle && (it->idle < new->idle)))) ||
+ + ((it->present == new->present) && (it->uc & UC_UNAVAILABLE) == (new->uc & UC_UNAVAILABLE) && (it->idle == new->idle) &&
+ (gaim_utf8_strcasecmp(gaim_get_buddy_alias((struct buddy*)node), gaim_get_buddy_alias((struct buddy*)n)) < 0)))
{
- printf("Inserting %s before %s\n", new->name, it->name);
+ printf("yes\n");
gtk_tree_store_insert_before(gtkblist->treemodel, &iter, &groupiter, &more_z);
newpath = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &iter);
gtknode->row = gtk_tree_row_reference_new(GTK_TREE_MODEL(gtkblist->treemodel), newpath);
gtk_tree_path_free(newpath);
return iter;
}
+ printf("no\n");
g_value_unset(&val);
}
} while (gtk_tree_model_iter_next (GTK_TREE_MODEL(gtkblist->treemodel), &more_z));
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Sun, 18 May 2003 21:17:31 +0000 |
parents | 7e384ded0d4e |
children | 92cbf9713795 |
line wrap: on
line source
/* MinimizeToTray * * A couple of routines to show how to make it produce a custom caption * animation to make it look like we are minimizing to and maximizing * from the system tray * * These routines are public domain, but it would be nice if you dropped * me a line if you use them! * * 1.0 29.06.2000 Initial version * 1.1 01.07.2000 The window retains it's place in the Z-order of windows * when minimized/hidden. This means that when restored/shown, it doen't * always appear as the foreground window unless we call SetForegroundWindow * * Copyright 2000 Matthew Ellis <m.t.ellis@bigfoot.com> */ #include "stdafx.h" #ifndef IDANI_OPEN #define IDANI_OPEN 1 #endif #ifndef IDANI_CLOSE #define IDANI_CLOSE 2 #endif #ifndef IDANI_CAPTION #define IDANI_CAPTION 3 #endif #define DEFAULT_RECT_WIDTH 150 #define DEFAULT_RECT_HEIGHT 30 static void GetTrayWndRect(LPRECT lpTrayRect) { APPBARDATA appBarData; HWND hShellTrayWnd=FindWindowEx(NULL,NULL,TEXT("Shell_TrayWnd"),NULL); if(hShellTrayWnd) { HWND hTrayNotifyWnd=FindWindowEx(hShellTrayWnd,NULL,TEXT("TrayNotifyWnd"),NULL); if(hTrayNotifyWnd) { GetWindowRect(hTrayNotifyWnd,lpTrayRect); return; } } appBarData.cbSize=sizeof(appBarData); if(SHAppBarMessage(ABM_GETTASKBARPOS,&appBarData)) { switch(appBarData.uEdge) { case ABE_LEFT: case ABE_RIGHT: lpTrayRect->top=appBarData.rc.bottom-100; lpTrayRect->bottom=appBarData.rc.bottom-16; lpTrayRect->left=appBarData.rc.left; lpTrayRect->right=appBarData.rc.right; break; case ABE_TOP: case ABE_BOTTOM: lpTrayRect->top=appBarData.rc.top; lpTrayRect->bottom=appBarData.rc.bottom; lpTrayRect->left=appBarData.rc.right-100; lpTrayRect->right=appBarData.rc.right-16; break; } return; } hShellTrayWnd=FindWindowEx(NULL,NULL,TEXT("Shell_TrayWnd"),NULL); if(hShellTrayWnd) { GetWindowRect(hShellTrayWnd,lpTrayRect); if(lpTrayRect->right-lpTrayRect->left>DEFAULT_RECT_WIDTH) lpTrayRect->left=lpTrayRect->right-DEFAULT_RECT_WIDTH; if(lpTrayRect->bottom-lpTrayRect->top>DEFAULT_RECT_HEIGHT) lpTrayRect->top=lpTrayRect->bottom-DEFAULT_RECT_HEIGHT; return; } SystemParametersInfo(SPI_GETWORKAREA,0,lpTrayRect,0); lpTrayRect->left=lpTrayRect->right-DEFAULT_RECT_WIDTH; lpTrayRect->top=lpTrayRect->bottom-DEFAULT_RECT_HEIGHT; } static int GetDoAnimateMinimize(void) { ANIMATIONINFO ai; ai.cbSize=sizeof(ai); SystemParametersInfo(SPI_GETANIMATION,sizeof(ai),&ai,0); return ai.iMinAnimate?TRUE:FALSE; } void MinimizeWndToTray(HWND hWnd) { if(!IsWindowVisible(hWnd)) return; if(GetDoAnimateMinimize()) { RECT rcFrom,rcTo; GetWindowRect(hWnd,&rcFrom); GetTrayWndRect(&rcTo); DrawAnimatedRects(hWnd,IDANI_CAPTION,&rcFrom,&rcTo); } ShowWindow(hWnd,SW_HIDE); } void RestoreWndFromTray(HWND hWnd) { if(IsWindowVisible(hWnd)) return; if(GetDoAnimateMinimize()) { RECT rcFrom,rcTo; GetTrayWndRect(&rcFrom); GetWindowRect(hWnd,&rcTo); DrawAnimatedRects(hWnd,IDANI_CAPTION,&rcFrom,&rcTo); } ShowWindow(hWnd,SW_SHOW); SetActiveWindow(hWnd); SetForegroundWindow(hWnd); }