From f70609f71f4e104597b1edf4db9baebec0719f03 Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Wed, 4 Jul 2012 15:53:43 +0000 Subject: AuthState: changed folder structure git-svn-id: http://svn.miranda-ng.org/main/trunk@760 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/AuthState/src/commonheaders.h | 67 +++++++ plugins/AuthState/src/main.cpp | 362 ++++++++++++++++++++++++++++++++++ plugins/AuthState/src/options.cpp | 151 ++++++++++++++ plugins/AuthState/src/resource.h | 25 +++ plugins/AuthState/src/version.h | 20 ++ 5 files changed, 625 insertions(+) create mode 100644 plugins/AuthState/src/commonheaders.h create mode 100644 plugins/AuthState/src/main.cpp create mode 100644 plugins/AuthState/src/options.cpp create mode 100644 plugins/AuthState/src/resource.h create mode 100644 plugins/AuthState/src/version.h (limited to 'plugins/AuthState/src') diff --git a/plugins/AuthState/src/commonheaders.h b/plugins/AuthState/src/commonheaders.h new file mode 100644 index 0000000000..beead07b56 --- /dev/null +++ b/plugins/AuthState/src/commonheaders.h @@ -0,0 +1,67 @@ +/* + Authorization State plugin for Miranda-IM (www.miranda-im.org) + (c) 2006-2009 by Thief + + 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: http://svn.miranda.im/mainrepo/authstate/trunk/commonheaders.h $ + Revision : $Rev: 1686 $ + Last change on : $Date: 2010-10-06 08:26:58 +0200 (Ср, 06 окт 2010) $ + Last change by : $Author: ghazan $ + +*/ + +#ifndef COMMHEADERS_H +#define COMMHEADERS_H + +#define MIRANDA_VER 0x0A00 + +#include +#include // needed by m_utils.h +#include // needed by m_icolib.h > r9256 +#include + +// Miranda API headers +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "resource.h" +#include "Version.h" + +// Third party SDK headers +#include "m_updater.h" +#include "m_extraicons.h" + +static const int DefaultSlot = EXTRA_ICON_ADV2; +#define MODULENAME "AuthState" + +extern int onOptInitialise(WPARAM wParam, LPARAM lParam); +extern int onExtraImageApplying(WPARAM wParam, LPARAM lParam); +extern int onExtraImageListRebuild(WPARAM wParam, LPARAM lParam); + +extern HINSTANCE g_hInst; +extern IconExtraColumn g_IECAuth, g_IECGrant, g_IECAuthGrant, g_IECClear; +extern INT clistIcon; +extern byte bUseAuthIcon, bUseGrantIcon, bContactMenuItem, bIconsForRecentContacts; +extern HANDLE hExtraIcon; + +#endif //COMMHEADERS_H diff --git a/plugins/AuthState/src/main.cpp b/plugins/AuthState/src/main.cpp new file mode 100644 index 0000000000..0f168c0fe1 --- /dev/null +++ b/plugins/AuthState/src/main.cpp @@ -0,0 +1,362 @@ +/* + Authorization State plugin for Miranda-IM (www.miranda-im.org) + (c) 2006-2010 by Thief + + 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: http://svn.miranda.im/mainrepo/authstate/trunk/main.cpp $ + Revision : $Rev: 1686 $ + Last change on : $Date: 2010-10-06 08:26:58 +0200 (Ср, 06 окт 2010) $ + Last change by : $Author: ghazan $ + +*/ + +#include "commonheaders.h" + +HINSTANCE g_hInst; +static HANDLE hHookModulesLoaded = NULL, hSystemOKToExit = NULL, hOptInitialise = NULL, hIcoLibIconsChanged = NULL; +static HANDLE hHookExtraIconsRebuild = NULL, hHookExtraIconsApply = NULL, hContactSettingChanged = NULL, hContactAdded = NULL; +static HANDLE hPrebuildContactMenu = NULL, hAuthMenuSelected = NULL; +static HANDLE hUserMenu = NULL; +HANDLE hExtraIcon = NULL; +int hLangpack; + +IconExtraColumn g_IECAuth = {0}; +IconExtraColumn g_IECGrant = {0}; +IconExtraColumn g_IECAuthGrant = {0}; +IconExtraColumn g_IECClear = {0}; +INT clistIcon = 0; //Icon slot to use +BYTE bUseAuthIcon = 0, bUseGrantIcon = 0, bContactMenuItem = 0, bIconsForRecentContacts = 0, bUseAuthGroup = 0; + +enum { +icon_none, +icon_auth, +icon_grant, +icon_both +}; + +PLUGININFOEX pluginInfo={ + sizeof(PLUGININFOEX), + __PLUGIN_NAME, + PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM), + __DESCRIPTION, + __AUTHOR, + __AUTHOREMAIL, + __COPYRIGHT, + __AUTHORWEB, + UNICODE_AWARE, //doesn't replace anything built-in + {0xdace7d41, 0xdfa9, 0x4772, {0x89, 0xae, 0xa5, 0x9a, 0x61, 0x53, 0xe6, 0xb2}} +/* DACE7D41-DFA9-4772-89AE-A59A6153E6B2 */ +}; + +extern "C" BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) +{ + g_hInst = hinstDLL; + return TRUE; +} + +/* 236CBB9A-57D2-419D-B5CB-0DF5926E921C */ +#define MIID_AUTHSTATE {0x236cbb9a, 0x57d2, 0x419d, {0xb5, 0xcb, 0x0d, 0xf5, 0x92, 0x6e, 0x92, 0x1c}} + +extern "C" __declspec(dllexport) const MUUID* MirandaPluginInterfaces(void) +{ + static const MUUID interfaces[] = {MIID_AUTHSTATE, MIID_LAST}; + return interfaces; +} + +extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion) +{ + return &pluginInfo; +} + +INT_PTR getIconToUse(HANDLE hContact, LPARAM lParam) +{ + char *proto = (char *)CallService(MS_PROTO_GETCONTACTBASEPROTO, (WPARAM)hContact, 0); +// if (lParam == 1) return icon_none; + if (!DBGetContactSettingByte(hContact,"AuthState","ShowIcons",!bIconsForRecentContacts)) return icon_none; + + if (DBGetContactSettingByte(0,"ICQ","UseServerCList",0)) + if (DBGetContactSettingWord(hContact,proto,"ServerId",1) == 0) + return icon_both; + + if (bUseAuthIcon & bUseGrantIcon) + if (DBGetContactSettingByte(hContact,proto,"Auth",0) && DBGetContactSettingByte(hContact,proto,"Grant",0)) + return icon_both; + + if (bUseAuthIcon) + if (DBGetContactSettingByte(hContact,proto,"Auth",0)) + return icon_auth; + + if (bUseGrantIcon) + if (DBGetContactSettingByte(hContact,proto,"Grant",0)) + return icon_grant; + return icon_none; +} + +int onExtraImageApplying(WPARAM wParam, LPARAM lParam) +{ + if (wParam == NULL) + return 0; + + int usedIcon; + usedIcon = getIconToUse((HANDLE) wParam, lParam); + + if (hExtraIcon != NULL) + { + const char *icon; + switch (usedIcon) + { + case icon_both: icon = "authgrant_icon"; break; + case icon_grant: icon = "grant_icon"; break; + case icon_auth: icon = "auth_icon"; break; + default: icon = NULL; break; + } + ExtraIcon_SetIcon(hExtraIcon, (HANDLE)wParam, icon); + } + else + { + switch (usedIcon) + { + case icon_both: CallService(MS_CLIST_EXTRA_SET_ICON, wParam, (LPARAM) &g_IECAuthGrant); break; + case icon_grant: CallService(MS_CLIST_EXTRA_SET_ICON, wParam, (LPARAM) &g_IECGrant); break; + case icon_auth: CallService(MS_CLIST_EXTRA_SET_ICON, wParam, (LPARAM) &g_IECAuth); break; + default: CallService(MS_CLIST_EXTRA_SET_ICON, wParam, (LPARAM) &g_IECClear); break; + } + } + + return 0; +} + +int onExtraImageListRebuild(WPARAM wParam, LPARAM lParam) +{ + g_IECAuth.cbSize = sizeof(IconExtraColumn); + g_IECAuth.ColumnType = clistIcon; + g_IECGrant.cbSize = sizeof(IconExtraColumn); + g_IECGrant.ColumnType = clistIcon; + g_IECAuthGrant.cbSize = sizeof(IconExtraColumn); + g_IECAuthGrant.ColumnType = clistIcon; + + if (ServiceExists(MS_CLIST_EXTRA_ADD_ICON)) { + g_IECAuth.hImage = (HANDLE)CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)(HICON) CallService(MS_SKIN2_GETICON, 0, (LPARAM)"auth_icon"), (LPARAM)0); + g_IECGrant.hImage = (HANDLE)CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)(HICON) CallService(MS_SKIN2_GETICON, 0, (LPARAM)"grant_icon"), (LPARAM)0); + g_IECAuthGrant.hImage = (HANDLE)CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)(HICON) CallService(MS_SKIN2_GETICON, 0, (LPARAM)"authgrant_icon"), (LPARAM)0); + } + + return 0; +} + +int onContactSettingChanged(WPARAM wParam,LPARAM lParam) +{ + DBCONTACTWRITESETTING *cws=(DBCONTACTWRITESETTING*)lParam; + char *proto = (char *)CallService(MS_PROTO_GETCONTACTBASEPROTO, wParam, 0); + if (!proto) return 0; + + if (!lstrcmpA(cws->szModule,proto)) + if (!lstrcmpA(cws->szSetting,"Auth") || !lstrcmpA(cws->szSetting,"Grant") || !lstrcmpA(cws->szSetting,"ServerId")) + onExtraImageApplying(wParam, 1); + + return 0; +} + +int onDBContactAdded(WPARAM wParam, LPARAM lParam) +{ + // A new contact added, mark it as recent + DBWriteContactSettingByte((HANDLE)wParam, MODULENAME, "ShowIcons", 1); + onExtraImageApplying(wParam, 0); + + return 0; +} + +INT_PTR onAuthMenuSelected(WPARAM wParam, LPARAM lParam) +{ + byte enabled = DBGetContactSettingByte((HANDLE)wParam,"AuthState","ShowIcons",1); + DBWriteContactSettingByte((HANDLE)wParam, MODULENAME, "ShowIcons", !enabled); + + if (enabled) + CallService(MS_CLIST_EXTRA_SET_ICON, (WPARAM) wParam, (LPARAM) &g_IECClear); + else + onExtraImageApplying(wParam, 0); + + return 0; +} + +int onPrebuildContactMenu(WPARAM wParam, LPARAM lParam) +{ + char *proto = (char *)CallService(MS_PROTO_GETCONTACTBASEPROTO, wParam, 0); + if (!proto) return 0; + + CLISTMENUITEM mi = {0}; + mi.cbSize = sizeof(CLISTMENUITEM); + + if (!DBGetContactSettingByte((HANDLE)wParam,proto,"Auth",0) && !DBGetContactSettingByte((HANDLE)wParam,proto,"Grant",0) && DBGetContactSettingWord((HANDLE)wParam,proto,"ServerId",0)) + mi.flags = CMIF_TCHAR | CMIM_FLAGS | CMIF_HIDDEN; + else + mi.flags = CMIF_TCHAR | CMIM_FLAGS; + + if (DBGetContactSettingByte((HANDLE)wParam,"AuthState","ShowIcons",1)) + { + mi.flags |= CMIF_TCHAR | CMIM_NAME; + mi.ptszName = _T("Disable AuthState icons"); + } + else + { + mi.flags |= CMIF_TCHAR | CMIM_NAME; + mi.ptszName = _T("Enable AuthState icons"); + } + + CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hUserMenu, (LPARAM)&mi); + + return 0; +} + +int onModulesLoaded(WPARAM wParam,LPARAM lParam) +{ + // IcoLib support + SKINICONDESC sid = {0}; + ZeroMemory(&sid, sizeof(sid)); + TCHAR szFile[MAX_PATH]; + sid.cbSize = sizeof(sid); + sid.flags = SIDF_ALL_TCHAR; + + sid.ptszSection = _T("Auth State"); + GetModuleFileName(g_hInst, szFile, MAX_PATH); + sid.ptszDefaultFile = szFile; + + sid.ptszDescription = _T("Auth"); + sid.pszName = "auth_icon"; + sid.iDefaultIndex = -IDI_AUTH; + Skin_AddIcon(&sid); + + sid.ptszDescription = _T("Grant"); + sid.pszName = "grant_icon"; + sid.iDefaultIndex = -IDI_GRANT; + Skin_AddIcon(&sid); + + sid.ptszDescription = _T("Auth & Grant"); + sid.pszName = "authgrant_icon"; + sid.iDefaultIndex = -IDI_AUTHGRANT; + Skin_AddIcon(&sid); + + // extra icons + hExtraIcon = ExtraIcon_Register("authstate", "Auth State", "authgrant_icon"); + if (hExtraIcon != NULL) + { + // Set initial value for all contacts + HANDLE hContact = (HANDLE) CallService(MS_DB_CONTACT_FINDFIRST, 0, 0); + while (hContact != NULL) + { + onExtraImageApplying((WPARAM)hContact, 1); + hContact = (HANDLE) CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM) hContact, 0); + } + } + else { + 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); + } + hOptInitialise = HookEvent(ME_OPT_INITIALISE, onOptInitialise); + if (bContactMenuItem) hPrebuildContactMenu = HookEvent(ME_CLIST_PREBUILDCONTACTMENU, onPrebuildContactMenu); + + // Updater support + if (ServiceExists(MS_UPDATE_REGISTER)) { + Update update = {0}; + char szVersion[16]; + + update.cbSize = sizeof(Update); + + update.szComponentName = pluginInfo.shortName; + update.pbVersion = (BYTE *)CreateVersionString(pluginInfo.version, szVersion); + update.cpbVersion = lstrlenA((char *)update.pbVersion); + + update.szUpdateURL = UPDATER_AUTOREGISTER; + + // these are the three lines that matter - the archive, the page containing the version string, and the text (or data) + // before the version that we use to locate it on the page + // (note that if the update URL and the version URL point to standard file listing entries, the backend xml + // data will be used to check for updates rather than the actual web page - this is not true for beta urls) + update.szBetaUpdateURL = "http://thief.miranda.im/authstate.zip"; + update.szBetaVersionURL = "http://thief.miranda.im/updater/authstate_version.txt"; + update.szBetaChangelogURL = "http://thief.miranda.im"; + update.pbBetaVersionPrefix = (BYTE *)"AuthState "; + + update.cpbBetaVersionPrefix = lstrlenA((char *)update.pbBetaVersionPrefix); + + CallService(MS_UPDATE_REGISTER, 0, (WPARAM)&update); + } + + return 0; +} + +int onSystemOKToExit(WPARAM wParam,LPARAM lParam) +{ + UnhookEvent(hHookModulesLoaded); + UnhookEvent(hHookExtraIconsRebuild); + UnhookEvent(hHookExtraIconsApply); + UnhookEvent(hOptInitialise); + UnhookEvent(hSystemOKToExit); + UnhookEvent(hContactSettingChanged); + if (hIcoLibIconsChanged) UnhookEvent(hIcoLibIconsChanged); + if (hContactAdded) UnhookEvent(hContactAdded); + if (hPrebuildContactMenu) + { + UnhookEvent(hPrebuildContactMenu); + UnhookEvent(hUserMenu); + } + DestroyServiceFunction(hAuthMenuSelected); + + 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); + bUseAuthIcon = DBGetContactSettingByte(NULL, MODULENAME, "EnableAuthIcon", 1); + bUseGrantIcon = DBGetContactSettingByte(NULL, MODULENAME, "EnableGrantIcon", 1); + bContactMenuItem = DBGetContactSettingByte(NULL, MODULENAME, "MenuItem", 0); + bIconsForRecentContacts = DBGetContactSettingByte(NULL, MODULENAME, "EnableOnlyForRecent", 0); + + hContactAdded = HookEvent(ME_DB_CONTACT_ADDED, onDBContactAdded); + + if (bContactMenuItem) + { + hAuthMenuSelected = CreateServiceFunction("AuthState/MenuItem", onAuthMenuSelected); + + CLISTMENUITEM mi = {0}; + mi.cbSize = sizeof(CLISTMENUITEM); + mi.position = -1999901005; + mi.flags = CMIF_TCHAR; + mi.ptszName = _T("Enable AuthState icons"); + mi.pszService = "AuthState/MenuItem"; + hUserMenu = Menu_AddContactMenuItem(&mi); + } + + g_IECClear.cbSize = sizeof(IconExtraColumn); + g_IECClear.ColumnType = clistIcon; + g_IECClear.hImage = (HANDLE) -1; + + return 0; +} + +extern "C" int __declspec(dllexport) Unload(void) +{ + return 0; +} diff --git a/plugins/AuthState/src/options.cpp b/plugins/AuthState/src/options.cpp new file mode 100644 index 0000000000..d2248d9e44 --- /dev/null +++ b/plugins/AuthState/src/options.cpp @@ -0,0 +1,151 @@ +/* + Authorization State plugin for Miranda-IM (www.miranda-im.org) + (c) 2006-2010 by Thief + + 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: http://svn.miranda.im/mainrepo/authstate/trunk/options.cpp $ + Revision : $Rev: 1686 $ + Last change on : $Date: 2010-10-06 08:26:58 +0200 (Ср, 06 окт 2010) $ + Last change by : $Author: ghazan $ + +*/ + +#include "commonheaders.h" + +const TCHAR* szAdvancedIcons[] = {_T("Email"), _T("Protocol"), _T("SMS"), _T("Advanced 1"), _T("Advanced 2"), _T("Web"), _T("Client"), _T("Advanced 3"), _T("Advanced 4"), _T("Advanced 5")}; +const INT cAdvancedIcons = sizeof(szAdvancedIcons) / sizeof(szAdvancedIcons[0]); + +INT_PTR CALLBACK DlgProcOptions(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) +{ + static int bInitializing = 0; + switch (msg) + { + case WM_INITDIALOG: + { + TranslateDialogDefault(hwndDlg); + bInitializing = 1; + if (hExtraIcon==NULL) + { + for (int i = 0; i < cAdvancedIcons; i++) + { + SendMessage(GetDlgItem(hwndDlg, IDC_ADVICON), CB_ADDSTRING, 0, (LPARAM) TranslateTS(szAdvancedIcons[i])); + } + SendMessage(GetDlgItem(hwndDlg, IDC_ADVICON), CB_SETCURSEL, clistIcon-1, 0); + } + else + { + SendDlgItemMessage(hwndDlg,IDC_NOTICE, WM_SETTEXT,0,(LPARAM)TranslateT("Extraicons plugin is used, use Contact list > Extraicons for customize.")); + ShowWindow(GetDlgItem(hwndDlg, IDC_NOTICE), SW_SHOW); + EnableWindow(GetDlgItem(hwndDlg, IDC_ADVICON), 0); + } + + CheckDlgButton(hwndDlg, IDC_AUTHICON, bUseAuthIcon ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_GRANTICON, bUseGrantIcon ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_ENABLEMENUITEM, bContactMenuItem ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_ICONSFORRECENT, bIconsForRecentContacts ? BST_CHECKED : BST_UNCHECKED); + + bInitializing = 0; + return TRUE; + } + + case WM_COMMAND: + { + switch (LOWORD(wParam)) + { + case IDC_AUTHICON: + case IDC_GRANTICON: + case IDC_ENABLEMENUITEM: + case IDC_ICONSFORRECENT: + { + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + } + 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: + { + bUseAuthIcon = IsDlgButtonChecked(hwndDlg, IDC_AUTHICON); + bUseGrantIcon = IsDlgButtonChecked(hwndDlg, IDC_GRANTICON); + bContactMenuItem = IsDlgButtonChecked(hwndDlg, IDC_ENABLEMENUITEM); + bIconsForRecentContacts = IsDlgButtonChecked(hwndDlg, IDC_ICONSFORRECENT); + + clistIcon = SendMessage(GetDlgItem(hwndDlg, IDC_ADVICON), CB_GETCURSEL, 0, 0); + clistIcon++; + + HANDLE hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDFIRST, 0, 0); + while (hContact) + { + CallService(MS_CLIST_EXTRA_SET_ICON, (WPARAM)hContact, (LPARAM)&g_IECClear); + hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM)hContact, 0); + } + + g_IECClear.ColumnType = clistIcon; + onExtraImageListRebuild(0,0); + + hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDFIRST, 0, 0); + while (hContact) + { + onExtraImageApplying((WPARAM)hContact,0); + hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM)hContact, 0); + } + + //Store options values to DB + DBWriteContactSettingByte(NULL, MODULENAME, "AdvancedIcon", clistIcon); + DBWriteContactSettingByte(NULL, MODULENAME, "EnableAuthIcon", bUseAuthIcon); + DBWriteContactSettingByte(NULL, MODULENAME, "EnableGrantIcon", bUseGrantIcon); + DBWriteContactSettingByte(NULL, MODULENAME, "MenuItem", bContactMenuItem); + DBWriteContactSettingByte(NULL, MODULENAME, "EnableOnlyForRecent", bIconsForRecentContacts); + } + 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.pszGroup = LPGEN("Contact List"); + odp.pszTemplate = MAKEINTRESOURCEA(IDD_AUTHSTATE_OPT); + odp.pszTitle = LPGEN("Auth State"); + odp.pfnDlgProc = DlgProcOptions; + odp.flags = ODPF_BOLDGROUPS; + Options_AddPage(wParam, &odp); + + return 0; +} diff --git a/plugins/AuthState/src/resource.h b/plugins/AuthState/src/resource.h new file mode 100644 index 0000000000..49c8f2fb6a --- /dev/null +++ b/plugins/AuthState/src/resource.h @@ -0,0 +1,25 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by authstate.rc +// +#define IDI_AUTH 101 +#define IDI_GRANT 102 +#define IDI_AUTHGRANT 103 +#define IDD_AUTHSTATE_OPT 103 +#define IDC_ADVICON 1001 +#define IDC_AUTHICON 1002 +#define IDC_GRANTICON 1003 +#define IDC_ENABLEMENUITEM 1005 +#define IDC_ICONSFORRECENT 1006 +#define IDC_NOTICE 1009 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 104 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1010 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/plugins/AuthState/src/version.h b/plugins/AuthState/src/version.h new file mode 100644 index 0000000000..3c39613d72 --- /dev/null +++ b/plugins/AuthState/src/version.h @@ -0,0 +1,20 @@ +#define __MAJOR_VERSION 0 +#define __MINOR_VERSION 0 +#define __RELEASE_NUM 2 +#define __BUILD_NUM 0 + +#define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM +#define __FILEVERSION_DOTS __MAJOR_VERSION.__MINOR_VERSION.__RELEASE_NUM.__BUILD_NUM + +#define __STRINGIFY_IMPL(x) #x +#define __STRINGIFY(x) __STRINGIFY_IMPL(x) +#define __VERSION_STRING __STRINGIFY(__FILEVERSION_DOTS) + +#define __PLUGIN_NAME "Authorization State" +#define __INTERNAL_NAME "AuthState" +#define __FILENAME "AuthState.dll" +#define __DESCRIPTION "If contact didn't authorized you this plugin puts an icon in front of contacts name." +#define __AUTHOR "Thief, idea by snwbrdr" +#define __AUTHOREMAIL "thief@miranda.im" +#define __AUTHORWEB "http://thief.miranda.im/" +#define __COPYRIGHT "© 2006-2010 Alexander Turyak" -- cgit v1.2.3