From 1460301afa7a98175e116b264d70351a62dc95b7 Mon Sep 17 00:00:00 2001 From: pescuma Date: Fri, 1 May 2009 05:57:23 +0000 Subject: extraicons: 0.2.1.0 * Fix for multi selection in Windows Vista + CTRL now deselects too git-svn-id: http://pescuma.googlecode.com/svn/trunk/Miranda@172 c086bb3d-8645-0410-b8da-73a8550f86e7 --- Plugins/extraicons/BaseExtraIcon.h | 19 ++++++++ Plugins/extraicons/Docs/extraicons_changelog.txt | 4 ++ Plugins/extraicons/Docs/extraicons_readme.txt | 3 +- Plugins/extraicons/Docs/extraicons_version.txt | 2 +- Plugins/extraicons/Docs/langpack_extraicons.txt | 2 +- Plugins/extraicons/ExtraIconGroup.cpp | 6 +-- Plugins/extraicons/extraicons.cpp | 2 +- Plugins/extraicons/options.cpp | 55 +++++++++++++++++++++--- Plugins/extraicons/options.h | 35 ++++++++------- Plugins/extraicons/resource.rc | 2 +- 10 files changed, 97 insertions(+), 33 deletions(-) diff --git a/Plugins/extraicons/BaseExtraIcon.h b/Plugins/extraicons/BaseExtraIcon.h index ef225bc..e484dd2 100644 --- a/Plugins/extraicons/BaseExtraIcon.h +++ b/Plugins/extraicons/BaseExtraIcon.h @@ -1,3 +1,22 @@ +/* + Copyright (C) 2009 Ricardo Pescuma Domenecci + + This is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this file; see the file license.txt. If + not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + */ + #ifndef __BASEEXTRAICON_H__ #define __BASEEXTRAICON_H__ diff --git a/Plugins/extraicons/Docs/extraicons_changelog.txt b/Plugins/extraicons/Docs/extraicons_changelog.txt index fdceb04..3ce4d69 100644 --- a/Plugins/extraicons/Docs/extraicons_changelog.txt +++ b/Plugins/extraicons/Docs/extraicons_changelog.txt @@ -2,6 +2,10 @@ Extra Icons Service Changelog: +. 0.2.1.0 + * Fix for multi selection in Windows Vista + + CTRL now deselects too + . 0.2.0.0 + Allows group/ungroup of icons + New options dialog diff --git a/Plugins/extraicons/Docs/extraicons_readme.txt b/Plugins/extraicons/Docs/extraicons_readme.txt index 3b1a370..56ae4c9 100644 --- a/Plugins/extraicons/Docs/extraicons_readme.txt +++ b/Plugins/extraicons/Docs/extraicons_readme.txt @@ -11,7 +11,8 @@ It is based on the idea that plugins register icons, the contact list shows them - E-mail - Phone/SMS - Homepage - - Visibility/Chat activity + - Visibility + - Chat activity - Gender By now it is supported my clist_modern and clist_mw from 0.8#29. I intend to add clist_nicer next. diff --git a/Plugins/extraicons/Docs/extraicons_version.txt b/Plugins/extraicons/Docs/extraicons_version.txt index 860ec4e..cff5772 100644 --- a/Plugins/extraicons/Docs/extraicons_version.txt +++ b/Plugins/extraicons/Docs/extraicons_version.txt @@ -1 +1 @@ -Extra Icons Service 0.2.0.0 \ No newline at end of file +Extra Icons Service 0.2.1.0 \ No newline at end of file diff --git a/Plugins/extraicons/Docs/langpack_extraicons.txt b/Plugins/extraicons/Docs/langpack_extraicons.txt index 0e97a49..037ad6a 100644 --- a/Plugins/extraicons/Docs/langpack_extraicons.txt +++ b/Plugins/extraicons/Docs/langpack_extraicons.txt @@ -12,4 +12,4 @@ [Gender] [* only the first %d icons will be shown] -[You can group/ungroup icons by selecting then and using the popup menu] +[You can group/ungroup icons by selecting then (CTRL+left click) and using the popup menu (right click)] diff --git a/Plugins/extraicons/ExtraIconGroup.cpp b/Plugins/extraicons/ExtraIconGroup.cpp index 6b46fbe..ca12394 100644 --- a/Plugins/extraicons/ExtraIconGroup.cpp +++ b/Plugins/extraicons/ExtraIconGroup.cpp @@ -1,9 +1,5 @@ /* - Copyright (C) 2009void ExtraIconGroup::storeIcon(int id, HANDLE hContact, void *icon) - { - } - - Ricardo Pescuma Domenecci + Copyright (C) 2009 Ricardo Pescuma Domenecci This is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public diff --git a/Plugins/extraicons/extraicons.cpp b/Plugins/extraicons/extraicons.cpp index 370fd65..d7e8d88 100644 --- a/Plugins/extraicons/extraicons.cpp +++ b/Plugins/extraicons/extraicons.cpp @@ -24,7 +24,7 @@ PLUGININFOEX pluginInfo = { sizeof(PLUGININFOEX), "Extra Icons Service", - PLUGIN_MAKE_VERSION(0,2,0,0), + PLUGIN_MAKE_VERSION(0,2,1,0), "Extra Icons Service", "Ricardo Pescuma Domenecci", "", diff --git a/Plugins/extraicons/options.cpp b/Plugins/extraicons/options.cpp index 75f8a56..6c1ed72 100644 --- a/Plugins/extraicons/options.cpp +++ b/Plugins/extraicons/options.cpp @@ -192,6 +192,25 @@ static int GetNumSelected(HWND tree) return ret; } +static void Tree_GetSelected(HWND tree, vector &selected) +{ + int ret = 0; + HTREEITEM hItem = TreeView_GetRoot(tree); + while (hItem) + { + if (IsSelected(tree, hItem)) + selected.push_back(hItem); + hItem = TreeView_GetNextSibling(tree, hItem); + } +} + +static void Tree_Select(HWND tree, vector &selected) +{ + for(unsigned int i = 0; i < selected.size(); i++) + if (selected[i] != NULL) + Tree_Select(tree, selected[i]); +} + LRESULT CALLBACK TreeProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) @@ -219,10 +238,33 @@ LRESULT CALLBACK TreeProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) if (wParam & MK_CONTROL) { - HTREEITEM hItem = TreeView_GetSelection(hwndDlg); + vector selected; + Tree_GetSelected(hwndDlg, selected); + + // Check if have to deselect it + for(unsigned int i = 0; i < selected.size(); i++) + { + if (selected[i] == hti.hItem) + { + // Deselect it + UnselectAll(hwndDlg); + selected[i] = NULL; + + if (i > 0) + hti.hItem = selected[0]; + + else if (i + 1 < selected.size()) + hti.hItem = selected[i+1]; + + else + hti.hItem = NULL; + + break; + } + } + TreeView_SelectItem(hwndDlg, hti.hItem); - if (hItem != NULL) - Tree_Select(hwndDlg, hItem); + Tree_Select(hwndDlg, selected); } else if (wParam & MK_SHIFT) { @@ -230,9 +272,12 @@ LRESULT CALLBACK TreeProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) if (hItem == NULL) break; - TreeView_SelectItem(hwndDlg, NULL); - Tree_SelectRange(hwndDlg, hItem, hti.hItem); + vector selected; + Tree_GetSelected(hwndDlg, selected); + TreeView_SelectItem(hwndDlg, hti.hItem); + Tree_Select(hwndDlg, selected); + Tree_SelectRange(hwndDlg, hItem, hti.hItem); } return 0; diff --git a/Plugins/extraicons/options.h b/Plugins/extraicons/options.h index 81204be..5d50348 100644 --- a/Plugins/extraicons/options.h +++ b/Plugins/extraicons/options.h @@ -1,22 +1,21 @@ /* -Copyright (C) 2009 Ricardo Pescuma Domenecci - -This is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public -License as published by the Free Software Foundation; either -version 2 of the License, or (at your option) any later version. - -This is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with this file; see the file license.txt. If -not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. -*/ - + Copyright (C) 2009 Ricardo Pescuma Domenecci + + This is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this file; see the file license.txt. If + not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + */ #ifndef __OPTIONS_H__ # define __OPTIONS_H__ diff --git a/Plugins/extraicons/resource.rc b/Plugins/extraicons/resource.rc index 0ca7b35..22cbf02 100644 --- a/Plugins/extraicons/resource.rc +++ b/Plugins/extraicons/resource.rc @@ -39,7 +39,7 @@ BEGIN WS_TABSTOP,1,24,274,160 LTEXT "* only the first %d icons will be shown", IDC_MAX_ICONS_L,1,190,274,13,NOT WS_VISIBLE - LTEXT "You can group/ungroup icons by selecting then and using the popup menu", + LTEXT "You can group/ungroup icons by selecting then (CTRL+left click) and using the popup menu (right click)", IDC_STATIC,1,208,274,20 END -- cgit v1.2.3