From da9f6e8a856fc87172fb0d5997c607b4a930c102 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Fri, 20 Jul 2012 09:19:04 +0000 Subject: IEView, IgnoreState: changed folder structure git-svn-id: http://svn.miranda-ng.org/main/trunk@1070 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/IgnoreState/src/options.cpp | 278 ++++++++++++++++++++++++++++++++++++ 1 file changed, 278 insertions(+) create mode 100644 plugins/IgnoreState/src/options.cpp (limited to 'plugins/IgnoreState/src/options.cpp') diff --git a/plugins/IgnoreState/src/options.cpp b/plugins/IgnoreState/src/options.cpp new file mode 100644 index 0000000000..eda6b6ffea --- /dev/null +++ b/plugins/IgnoreState/src/options.cpp @@ -0,0 +1,278 @@ +/* + IgnoreState plugin for Miranda-IM (www.miranda-im.org) + (c) 2010 by Kildor + + 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 + +*/ + +#include "commonheaders.h" + +//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 +}; + +TCHAR* szAdvancedIconsModern[] = { + _T("E-mail"), + _T("Web page"), + _T("Phone/SMS"), + _T("Advanced #1"), + _T("Advanced #2"), + _T("Advanced #3"), + _T("Client"), + _T("Advanced #4"), + _T("Protocol"), + _T("Visibility/Chat activity") +}; +//const int cAdvancedIconsModern = sizeof(szAdvancedIconsModern) / sizeof(szAdvancedIconsModern[0]); + +TCHAR* szAdvancedIconsNicer[] = { + _T("Reserved"), + _T("E-mail"), + _T("Homepage"), + _T("Telephone"), + _T("Advanced #1"), + _T("Advanced #2"), + _T("Client"), + _T("Advanced #3"), + _T("Advanced #4"), + _T("Reserved #1"), + _T("Reserved #2") + }; +//const int cAdvancedIconsNicer = sizeof(szAdvancedIconsNicer) / sizeof(szAdvancedIconsNicer[0]); + +INT_PTR CALLBACK DlgProcOptions(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) +{ + HIMAGELIST himlButtonIcons=NULL; + INT bInitializing = 0; + INT usedClist = clist_none; + INT cAdvancedIcons; + isExtraiconsUsed = ServiceExists(MS_EXTRAICON_REGISTER); +// const char **szAdvancedIcons; + HWND hTree=GetDlgItem(hwndDlg,IDC_FILTER); + + switch (msg) + { + case WM_INITDIALOG: + { + TranslateDialogDefault(hwndDlg); + bInitializing = 1; + fill_filter(); + if (ServiceExists(MS_CLIST_EXTRA_ADD_ICON)) + { + if (hExtraIcon == NULL) + { + if (ServiceExists(MS_SKINENG_DRAWICONEXFIX)) + { // modern? + cAdvancedIcons = SIZEOF(szAdvancedIconsModern); + usedClist = clist_modern; + } + else + { + if (ServiceExists("CLN/About")) + { + usedClist = clist_nicer; + cAdvancedIcons = SIZEOF(szAdvancedIconsNicer); + } + else + { + usedClist = clist_modern; + cAdvancedIcons = SIZEOF(szAdvancedIconsModern) - 1; // mw doesn`t have last modern extraicon + } + } + } + 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); + } + } + else + { + cAdvancedIcons = 0; +// SendDlgItemMessage(hwndDlg,IDC_USED_CLIST, WM_SETTEXT,0,(LPARAM)_T("Your clist: classic")); + SendDlgItemMessage(hwndDlg,IDC_NOTICE, WM_SETTEXT,0,(LPARAM)TranslateT("Warning: classic contact list plugin doesn`t have ability to use extraicons")); + ShowWindow(GetDlgItem(hwndDlg, IDC_NOTICE), SW_SHOW); + EnableWindow(GetDlgItem(hwndDlg, IDC_ADVICON), 0); + } + 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); + } + + SetWindowLongPtr(hTree,GWL_STYLE,GetWindowLongPtr(hTree,GWL_STYLE)|TVS_NOHSCROLL); + { + himlButtonIcons=ImageList_Create(GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),ILC_COLOR32|ILC_MASK,2,2); + TreeView_SetImageList(hTree,himlButtonIcons,TVSIL_NORMAL); + } + TreeView_DeleteAllItems(hTree); + + int i; + int cii = SIZEOF(ii); + for (i=2; iidFrom) + { + case 0: + { + switch (((LPNMHDR)lParam)->code) + { + case PSN_APPLY: + { + if (usedClist==clist_none && hExtraIcon == NULL ) + return TRUE; +/////////// + DWORD flags=0; + TVITEM tvi; + tvi.mask=TVIF_HANDLE|TBIF_LPARAM; + HWND hTree=GetDlgItem(hwndDlg,IDC_FILTER); + tvi.hItem=TreeView_GetRoot(hTree); //check ignore all + while(tvi.hItem) + { + TreeView_GetItem(hTree,&tvi); + if(TreeView_GetCheckState(hTree,tvi.hItem)) flags|=1<<(tvi.lParam-1); + tvi.hItem=TreeView_GetNextSibling(hTree,tvi.hItem); + } + DBWriteContactSettingDword(NULL, MODULENAME, "Filter", flags); + + bUseMirandaSettings = IsDlgButtonChecked(hwndDlg,IDC_IGNORE_IGNOREALL) ? 1 : 0; + DBWriteContactSettingByte(NULL, MODULENAME, "UseMirandaSettings", bUseMirandaSettings); + + fill_filter(); +////////// + if (hExtraIcon == NULL) + { + clistIcon = SendMessage(GetDlgItem(hwndDlg, IDC_ADVICON), CB_GETCURSEL, 0, 0); + if (usedClist == clist_modern ) + clistIcon++; + + //Store options values to DB + DBWriteContactSettingByte(NULL, MODULENAME, "AdvancedIcon", 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; + if (hExtraIcon == NULL) + 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); + } + } + } + } + } + case IDC_FILTER: + if (((LPNMHDR)lParam)->code == NM_CLICK) + { + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + } + } + } + case WM_DESTROY: + break; + } + return FALSE; +} + +int onOptInitialise(WPARAM wParam, LPARAM lParam) +{ + OPTIONSDIALOGPAGE odp = { 0 }; + odp.cbSize = sizeof(odp); + odp.hInstance = g_hInst; + odp.flags = ODPF_BOLDGROUPS; + odp.pszGroup = LPGEN("Contact List"); + odp.pszTemplate = MAKEINTRESOURCEA(IDD_RATE_OPT); + odp.pszTitle = MODULENAME; + odp.pfnDlgProc = DlgProcOptions; + Options_AddPage(wParam, &odp); + + return 0; +} -- cgit v1.2.3