diff options
| author | George Hazan <george.hazan@gmail.com> | 2012-11-03 17:32:37 +0000 | 
|---|---|---|
| committer | George Hazan <george.hazan@gmail.com> | 2012-11-03 17:32:37 +0000 | 
| commit | 31b191bc8ddb639e488ab8306f71ac1dbabf16f0 (patch) | |
| tree | aa661023372aa18381e46c7f6fcecf67856ac8ae /plugins/Rate/src | |
| parent | 6ba829af4e0c008865675b67b868f33d8e7641df (diff) | |
removing built-in Clist Modern extra icons part I
git-svn-id: http://svn.miranda-ng.org/main/trunk@2167 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/Rate/src')
| -rw-r--r-- | plugins/Rate/src/commonheaders.h | 17 | ||||
| -rw-r--r-- | plugins/Rate/src/main.cpp | 165 | ||||
| -rw-r--r-- | plugins/Rate/src/options.cpp | 221 | ||||
| -rw-r--r-- | plugins/Rate/src/resource.h | 6 | 
4 files changed, 41 insertions, 368 deletions
diff --git a/plugins/Rate/src/commonheaders.h b/plugins/Rate/src/commonheaders.h index 2637e8f42b..bdced5d33b 100644 --- a/plugins/Rate/src/commonheaders.h +++ b/plugins/Rate/src/commonheaders.h @@ -44,28 +44,11 @@  #include "resource.h"
  //external SDK headers
 -#include <m_cluiframes.h>
  #include <m_extraicons.h>
 -static const int DefaultSlot = EXTRA_ICON_PROTO;
  #define MODULENAME "Rate"
  /* 0e2866a8-6f4c-4132-98ae-6afdb8766c48 */
  #define MIID_CONTACTSRATE {0x0e2866a8, 0x6f4c, 0x4132, {0x98, 0xae, 0x6a, 0xfd, 0xb8, 0x76, 0x6c, 0x48}}
 -static struct
 -{
 -	TCHAR*  szDescr;
 -	char*  szName;
 -	int    defIconID;
 -	HANDLE hIconLibItem;
 -} iconList[] =
 -{
 -  { LPGENT( "Rate high" ), "rate_high", IDI_RATEHI },
 -  { LPGENT( "Rate medium" ), "rate_medium", IDI_RATEME },
 -  { LPGENT( "Rate low" ), "rate_low", IDI_RATELO },
 -};
 -
 -
 -
  #endif //COMMHEADERS_H
 diff --git a/plugins/Rate/src/main.cpp b/plugins/Rate/src/main.cpp index a430ef0123..586011caca 100644 --- a/plugins/Rate/src/main.cpp +++ b/plugins/Rate/src/main.cpp @@ -32,33 +32,15 @@      along with this program; if not, write to the Free Software
      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 -/*--------------------------------------------------------------------------*/
 -/*
 -    FILE ID: $Id$
 -    CHANGE LOG:
 -
 -    $Log$
 -*/
  #include "commonheaders.h"
  HINSTANCE g_hInst;
 -static HANDLE hHookModulesLoaded = NULL, hSystemOKToExit = NULL, hOptInitialise = NULL, hIcoLibIconsChanged = NULL;
 -static HANDLE hHookExtraIconsRebuild = NULL, hHookExtraIconsApply = NULL, hContactSettingChanged = NULL;
 -static HANDLE hPrebuildContactMenu = NULL;
  static HANDLE hExtraIcon = NULL;
 -IconExtraColumn g_IECRateHigh = {0};
 -IconExtraColumn g_IECRateMedium = {0};
 -IconExtraColumn g_IECRateLow = {0};
 -IconExtraColumn g_IECClear = {0};
 -int clistIcon = 0; //Icon slot to use
  byte bRate = 0;
  int hLangpack;
 -extern int onOptInitialise(WPARAM wParam, LPARAM lParam);
 -
 -
  PLUGININFOEX pluginInfo={
     sizeof(PLUGININFOEX),
     "Contact`s Rate",
 @@ -85,84 +67,21 @@ extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD miranda  	return &pluginInfo;
  }
 -extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = {MIID_CONTACTSRATE, MIID_LAST};
 -
 -int onSystemOKToExit(WPARAM wParam,LPARAM lParam)
 -{
 -   UnhookEvent(hHookModulesLoaded);
 -   UnhookEvent(hHookExtraIconsRebuild);
 -   UnhookEvent(hHookExtraIconsApply);
 -   UnhookEvent(hOptInitialise);
 -   UnhookEvent(hSystemOKToExit);
 -   if (hIcoLibIconsChanged) UnhookEvent(hIcoLibIconsChanged);
 -	if (hContactSettingChanged)
 -		UnhookEvent(hContactSettingChanged);
 -
 -   return 0;
 -}
 -
 -void setExtaIcon(HANDLE hContact, int bRate = -1, BOOL clear = TRUE)
 -{
 -	if (hContact == NULL)
 -		return;
 -
 -	if (bRate < 0)
 -		bRate = DBGetContactSettingByte(hContact, "CList", "Rate", 0);
 -
 -	if (hExtraIcon != NULL)
 -	{
 -		const char *icon;
 -		switch(bRate)
 -		{
 -			case 3: icon = "rate_high";  break;
 -			case 2: icon = "rate_medium";  break;
 -			case 1: icon = "rate_low";  break;
 -			default: icon = NULL;  break;
 -		}
 -
 -		if (icon == NULL && !clear)
 -			return;
 -
 -		ExtraIcon_SetIcon(hExtraIcon, hContact, icon);
 -	}
 -	else
 -	{
 -		switch(bRate)
 -		{
 -			case 3: CallService(MS_CLIST_EXTRA_SET_ICON, (WPARAM) hContact, (LPARAM) &g_IECRateHigh); break;
 -			case 2: CallService(MS_CLIST_EXTRA_SET_ICON, (WPARAM) hContact, (LPARAM) &g_IECRateMedium); break;
 -			case 1: CallService(MS_CLIST_EXTRA_SET_ICON, (WPARAM) hContact, (LPARAM) &g_IECRateLow); break;
 -			default: CallService(MS_CLIST_EXTRA_SET_ICON, (WPARAM) hContact, (LPARAM) &g_IECClear); break;
 -		}
 -	}
 -}
 -
 +///////////////////////////////////////////////////////////////////////////////
 -int onExtraImageApplying(WPARAM wParam, LPARAM lParam)
 +struct
  {
 -	setExtaIcon((HANDLE) wParam);
 -	return 0;
 +	TCHAR*  szDescr;
 +	char*  szName;
 +	int    defIconID;
 +	HANDLE hIconLibItem;
  }
 -
 -
 -int onExtraImageListRebuild(WPARAM wParam, LPARAM lParam)
 +static iconList[] =
  {
 -  g_IECRateHigh.cbSize = sizeof(IconExtraColumn);
 -  g_IECRateHigh.ColumnType = clistIcon;
 -  g_IECRateMedium.cbSize = sizeof(IconExtraColumn);
 -  g_IECRateMedium.ColumnType = clistIcon;
 -  g_IECRateLow.cbSize = sizeof(IconExtraColumn);
 -  g_IECRateLow.ColumnType = clistIcon;
 -
 -  if (ServiceExists(MS_CLIST_EXTRA_ADD_ICON))
 -  {
 -      g_IECRateHigh.hImage = (HANDLE)CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)Skin_GetIcon("rate_high"), 0);
 -      g_IECRateMedium.hImage = (HANDLE)CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)Skin_GetIcon("rate_medium"), 0);
 -      g_IECRateLow.hImage = (HANDLE)CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)Skin_GetIcon("rate_low"), 0);
 -  }
 -  return 0;
 -}
 -
 +	{ LPGENT( "Rate high" ), "rate_high", IDI_RATEHI },
 +	{ LPGENT( "Rate medium" ), "rate_medium", IDI_RATEME },
 +	{ LPGENT( "Rate low" ), "rate_low", IDI_RATELO },
 +};
  static void init_icolib (void)
  {
 @@ -183,65 +102,61 @@ static void init_icolib (void)  	}
  }
 +///////////////////////////////////////////////////////////////////////////////
 +
 +static void setExtraIcon(HANDLE hContact, int bRate = -1, BOOL clear = TRUE)
 +{
 +	if (hContact == NULL)
 +		return;
 +
 +	if (bRate < 0)
 +		bRate = DBGetContactSettingByte(hContact, "CList", "Rate", 0);
 +
 +	const char *icon = NULL;
 +	switch(bRate) {
 +		case 1: icon = "rate_low";  break;
 +		case 2: icon = "rate_medium";  break;
 +		case 3: icon = "rate_high";  break;
 +	}
 +
 +	if (icon != NULL || clear)
 +		ExtraIcon_SetIcon(hExtraIcon, hContact, icon);
 +}
  int onModulesLoaded(WPARAM wParam,LPARAM lParam)
  {
 -   //IcoLib support
 +   // IcoLib support
     init_icolib();
 -
  	// Extra icon support
  	hExtraIcon = ExtraIcon_Register("contact_rate", "Contact rate", "rate_high");
 -	if (hExtraIcon != NULL)
 -	{
 -		// Set initial value for all contacts
 -		HANDLE hContact = db_find_first();
 -		while (hContact != NULL)
 -		{
 -			setExtaIcon(hContact, -1, FALSE);
 -			hContact = db_find_next(hContact);
 -		}
 -	}
 -	else
 -	{
 -		hOptInitialise = HookEvent(ME_OPT_INITIALISE, onOptInitialise);
 -		hIcoLibIconsChanged = HookEvent(ME_SKIN2_ICONSCHANGED, onExtraImageListRebuild);
 -		hHookExtraIconsRebuild = HookEvent(ME_CLIST_EXTRA_LIST_REBUILD, onExtraImageListRebuild);
 -		hHookExtraIconsApply = HookEvent(ME_CLIST_EXTRA_IMAGE_APPLY, onExtraImageApplying);
 -		onExtraImageListRebuild(0,0);
 +	// Set initial value for all contacts
 +	HANDLE hContact = db_find_first();
 +	while (hContact != NULL) {
 +		setExtraIcon(hContact, -1, FALSE);
 +		hContact = db_find_next(hContact);
  	}
  	return 0;
  }
 -
  int onContactSettingChanged(WPARAM wParam,LPARAM lParam)
  {
  	DBCONTACTWRITESETTING *cws=(DBCONTACTWRITESETTING*)lParam;
  	if (wParam != NULL && !lstrcmpA(cws->szModule,"CList") && !lstrcmpA(cws->szSetting,"Rate"))
 -		setExtaIcon((HANDLE)wParam, cws->value.type == DBVT_DELETED ? 0 : cws->value.bVal);
 +		setExtraIcon((HANDLE)wParam, cws->value.type == DBVT_DELETED ? 0 : cws->value.bVal);
  	return 0;
  }
 -
  extern "C" int __declspec(dllexport) Load(void)
  {
 -
  	mir_getLP(&pluginInfo);
 -   hHookModulesLoaded = HookEvent(ME_SYSTEM_MODULESLOADED, onModulesLoaded);
 -   hSystemOKToExit = HookEvent(ME_SYSTEM_OKTOEXIT,onSystemOKToExit);
 -   hContactSettingChanged = HookEvent(ME_DB_CONTACT_SETTINGCHANGED, onContactSettingChanged);
 -
 -   clistIcon = DBGetContactSettingByte(NULL, MODULENAME, "AdvancedIcon", DefaultSlot);
 -
 -   g_IECClear.cbSize = sizeof(IconExtraColumn);
 -   g_IECClear.ColumnType = clistIcon;
 -   g_IECClear.hImage = (HANDLE) -1;
 -
 +   HookEvent(ME_SYSTEM_MODULESLOADED, onModulesLoaded);
 +   HookEvent(ME_DB_CONTACT_SETTINGCHANGED, onContactSettingChanged);
     return 0;
  }
 diff --git a/plugins/Rate/src/options.cpp b/plugins/Rate/src/options.cpp deleted file mode 100644 index e435e4b215..0000000000 --- a/plugins/Rate/src/options.cpp +++ /dev/null @@ -1,221 +0,0 @@ -/*
 -   Authorization State plugin for Miranda-IM (www.miranda-im.org)
 -   (c) 2006 by Thief
 -   Icons by Faith Healer
 -
 -   This program is free software; you can redistribute it and/or modify
 -   it under the terms of the GNU General Public License as published by
 -   the Free Software Foundation; either version 2 of the License, or
 -   (at your option) any later version.
 -
 -   This program 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 General Public License for more details.
 -
 -   You should have received a copy of the GNU General Public License
 -   along with this program; if not, write to the Free Software
 -   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 -
 -   File name      : $URL: svn://svnsrv.mirandaim.ru/mainrepo/authstate/trunk/options.cpp $
 -   Revision       : $Rev: 233 $
 -   Last change on : $Date: 2006-10-05 15:48:05 +0300 (Thu, 05 Oct 2006) $
 -   Last change by : $Author: Thief $
 -
 -*/
 -
 -#include "commonheaders.h"
 -
 -extern HINSTANCE g_hInst;
 -extern int onExtraImageApplying(WPARAM wParam, LPARAM lParam);
 -extern int onExtraImageListRebuild(WPARAM wParam, LPARAM lParam);
 -extern IconExtraColumn g_IECAuth, g_IECGrant, g_IECAuthGrant, g_IECClear;
 -extern int clistIcon;
 -//extern byte bUseAuthIcon, bUseGrantIcon, bContactMenuItem, bIconsForRecentContacts;
 -
 -//#define  EXTRA_ICON_RES0	0	// only used by nicer
 -//#define  EXTRA_ICON_EMAIL	1
 -//#define  EXTRA_ICON_WEB		2
 -//#define  EXTRA_ICON_SMS		3
 -//#define  EXTRA_ICON_ADV1	4
 -//#define  EXTRA_ICON_ADV2	5
 -//#define  EXTRA_ICON_ADV3	6
 -//#define  EXTRA_ICON_CLIENT	7
 -//#define  EXTRA_ICON_ADV4	8
 -//#define  EXTRA_ICON_RES1	9	// only used by nicer
 -//#define  EXTRA_ICON_PROTO	9	// used by mwclist and modern
 -//#define  EXTRA_ICON_RES2	10	// only used by nicer
 -//#define  EXTRA_ICON_VISMODE	10	// only used by modern
 -
 -#define MS_SKINENG_DRAWICONEXFIX "SkinEngine/DrawIconEx_Fix"
 -
 -enum {
 -	clist_none,
 -	clist_modern,
 -	clist_nicer
 -};
 -
 -const TCHAR *szAdvancedIconsModern[] = {
 -	LPGENT("E-mail"),
 -	LPGENT("Web page"),
 -	LPGENT("Phone/SMS"),
 -	LPGENT("Advanced #1"),
 -	LPGENT("Advanced #2"),
 -	LPGENT("Advanced #3"),
 -	LPGENT("Client"),
 -	LPGENT("Advanced #4"),
 -	LPGENT("Protocol"),
 -	LPGENT("Visibility/Chat activity")
 -};
 -//const int cAdvancedIconsModern = sizeof(szAdvancedIconsModern) / sizeof(szAdvancedIconsModern[0]);
 -
 -const TCHAR *szAdvancedIconsNicer[] = {
 -	LPGENT("Reserved"),
 -	LPGENT("E-mail"),
 -	LPGENT("Homepage"),
 -	LPGENT("Telephone"),
 -	LPGENT("Advanced #1"),
 -	LPGENT("Advanced #2"),
 -	LPGENT("Client"),
 -	LPGENT("Advanced #3"),
 -	LPGENT("Advanced #4"),
 -	LPGENT("Reserved #1"),
 -	LPGENT("Reserved #2")
 -	};
 -//const int cAdvancedIconsNicer = sizeof(szAdvancedIconsNicer) / sizeof(szAdvancedIconsNicer[0]);
 -
 -INT_PTR CALLBACK DlgProcOptions(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
 -{
 -	static int bInitializing = 0;
 -	static int usedClist = clist_none;
 -	int cAdvancedIcons;
 -//	const char **szAdvancedIcons;
 -
 -	switch (msg)
 -	{
 -		case WM_INITDIALOG:
 -		{
 -			TranslateDialogDefault(hwndDlg);
 -			bInitializing = 1;
 -			if (ServiceExists(MS_CLIST_EXTRA_ADD_ICON))
 -			{
 -				if (ServiceExists(MS_SKINENG_DRAWICONEXFIX))
 -				{ // modern?
 -//					SendDlgItemMessage(hwndDlg,IDC_USED_CLIST, WM_SETTEXT,0,(LPARAM)_T("Your clist: modern"));
 -					cAdvancedIcons  = SIZEOF(szAdvancedIconsModern);
 -					usedClist = clist_modern;
 -				}
 -				else
 -				{
 -					if (ServiceExists("CLN/About"))
 -					{
 -						usedClist = clist_nicer;
 -//					szAdvancedIcons = szAdvancedIconsNicer;
 -						cAdvancedIcons = SIZEOF(szAdvancedIconsNicer);
 -						SendDlgItemMessage(hwndDlg,IDC_USED_CLIST, WM_SETTEXT,0,(LPARAM)TranslateT("Your clist: nicer"));
 -					}
 -					else
 -	        {
 -						usedClist = clist_modern;
 -						cAdvancedIcons  = SIZEOF(szAdvancedIconsModern) - 1; // mw doesn`t have last modern extraicon
 -//						SendDlgItemMessage(hwndDlg,IDC_USED_CLIST, WM_SETTEXT,0,(LPARAM)_T("Your clist: mw"));
 -	        }
 -					SendDlgItemMessage(hwndDlg,IDC_NOTMODERN_WARNING, WM_SETTEXT,0,(LPARAM)TranslateT("Warning: your contact list plugin doesn`t have ability to sort contacts by rate."));
 -					ShowWindow(GetDlgItem(hwndDlg, IDC_NOTMODERN_WARNING), SW_SHOW);
 -				}
 -			}
 -			else
 -			{
 -				cAdvancedIcons = 0;
 -//				SendDlgItemMessage(hwndDlg,IDC_USED_CLIST, WM_SETTEXT,0,(LPARAM)_T("Your clist: classic"));
 -				SendDlgItemMessage(hwndDlg,IDC_NOTMODERN_WARNING, WM_SETTEXT,0,(LPARAM)TranslateT("Warning: classic contact list plugin doesn`t have ability to use extraicons"));
 -				ShowWindow(GetDlgItem(hwndDlg, IDC_NOTMODERN_WARNING), SW_SHOW);
 -				EnableWindow(GetDlgItem(hwndDlg, IDC_ADVICON), 0);
 -			}
 -//			cAdvancedIcons = sizeof(szAdvancedIcons) / sizeof(szAdvancedIcons[0]);
 -//			cAdvancedIcons = SIZEOF(szAdvancedIcons);
 -
 -			if (usedClist != clist_none) {
 -				for (int i = 0; i < cAdvancedIcons; i++)
 -				{
 -					SendMessage(GetDlgItem(hwndDlg, IDC_ADVICON), CB_ADDSTRING, 0, (LPARAM) TranslateTS( usedClist==clist_modern ? szAdvancedIconsModern[i] : szAdvancedIconsNicer[i]));
 -				}
 -
 -				if (usedClist == clist_modern )
 -					SendMessage(GetDlgItem(hwndDlg, IDC_ADVICON), CB_SETCURSEL, clistIcon-1, 0);
 -				else
 -					SendMessage(GetDlgItem(hwndDlg, IDC_ADVICON), CB_SETCURSEL, clistIcon, 0);
 -			}
 -			bInitializing = 0;
 -			return TRUE;
 -		}
 -		case WM_COMMAND:
 -		{
 -			switch (LOWORD(wParam)) {
 -				case IDC_ADVICON:
 -				{
 -					if ((HIWORD(wParam) == EN_CHANGE) && (!bInitializing) || (HIWORD(wParam) == CBN_SELENDOK))
 -					{
 -						SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
 -					}
 -					break;
 -				}
 -			}
 -			break;
 -		}
 -		case WM_NOTIFY:
 -		{
 -			if (((LPNMHDR)lParam)->idFrom == 0)
 -			{
 -				switch (((LPNMHDR)lParam)->code)
 -				{
 -					case PSN_APPLY:
 -					{
 -						if (usedClist==clist_none)
 -							return TRUE;
 -
 -						clistIcon = SendMessage(GetDlgItem(hwndDlg, IDC_ADVICON), CB_GETCURSEL, 0, 0);
 -						if (usedClist == clist_modern )
 -							clistIcon++;
 -
 -						HANDLE hContact = db_find_first();
 -						while (hContact)
 -						{
 -							CallService(MS_CLIST_EXTRA_SET_ICON, (WPARAM)hContact, (LPARAM)&g_IECClear);
 -							hContact = db_find_next(hContact);
 -						}
 -						g_IECClear.ColumnType = clistIcon;
 -						onExtraImageListRebuild(0,0);
 -						hContact = db_find_first();
 -						while (hContact)
 -						{
 -							onExtraImageApplying((WPARAM)hContact,0);
 -							hContact = db_find_next(hContact);
 -						}
 -						//Store options values to DB
 -						DBWriteContactSettingByte(NULL, MODULENAME, "AdvancedIcon", clistIcon);
 -					}
 -					return TRUE;
 -				}
 -			}
 -		}
 -		case WM_DESTROY:
 -			break;
 -	}
 -	return FALSE;
 -}
 -
 -int onOptInitialise(WPARAM wParam, LPARAM lParam)
 -{
 -	OPTIONSDIALOGPAGE odp = { 0 };
 -	odp.cbSize = sizeof(odp);
 -	odp.hInstance = g_hInst;
 -	odp.ptszGroup = LPGENT("Contact List");
 -	odp.ptszTitle = LPGENT("Rate");
 -	odp.pszTemplate = MAKEINTRESOURCEA(IDD_RATE_OPT);
 -	odp.pfnDlgProc = DlgProcOptions;
 -	odp.flags = ODPF_BOLDGROUPS|ODPF_TCHAR;
 -	Options_AddPage(wParam, &odp);
 -
 -	return 0;
 -}
 diff --git a/plugins/Rate/src/resource.h b/plugins/Rate/src/resource.h index 3b27728839..ba0f258319 100644 --- a/plugins/Rate/src/resource.h +++ b/plugins/Rate/src/resource.h @@ -2,16 +2,12 @@  // Microsoft Visual C++ generated include file.
  // Used by rate.rc
  //
 -#define IDD_RATE_OPT                    9
  #define IDI_RATEHI                      101
  #define IDI_RATEME                      102
  #define IDI_RATELO                      103
 -#define IDC_ADVICON                     1001
 -#define IDC_NOTMODERN_WARNING           1010
 -#define IDC_USED_CLIST                  1011
  // Next default values for new objects
 -// 
 +//
  #ifdef APSTUDIO_INVOKED
  #ifndef APSTUDIO_READONLY_SYMBOLS
  #define _APS_NEXT_RESOURCE_VALUE        104
  | 
