/* Miranda IM ISee Tweaker plugin Copyright (C) 2005 Sergey V. Gershovich 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 #include "isee_tweaker.h" #include "../../include/newpluginapi.h" #include "../../include/m_langpack.h" #include "../../include/m_options.h" #include "../../include/m_database.h" #include "../../include/m_clc.h" #include "../../include/m_clist.h" #pragma hdrstop extern HINSTANCE hInst; void LoadSettings(HWND hwndDlg) { int i; DWORD dwFP1 = DBGetContactSettingDword(0,"ICQ","FP1",0xffffffff); DWORD dwFP2 = DBGetContactSettingDword(0,"ICQ","FP2",0x00040000); DWORD dwFP3 = DBGetContactSettingDword(0,"ICQ","FP3",0); WORD ver = DBGetContactSettingWord(0,"ICQ","Version",8); SendDlgItemMessage(hwndDlg,IDC_PREDEFINDEDCID,CB_ADDSTRING,0,(LPARAM)Translate(client_id[0].name)); SendDlgItemMessage(hwndDlg,IDC_PREDEFINDEDCID,CB_SETCURSEL,0,0); for (i = 1; ; i++) { if (client_id[i].name == NULL) break; SendDlgItemMessage(hwndDlg,IDC_PREDEFINDEDCID,CB_ADDSTRING,0,(LPARAM)Translate(client_id[i].name)); if (client_id[i].FP1 == dwFP1 && client_id[i].FP2 == dwFP2 && client_id[i].FP3 == dwFP3 && client_id[i].ver == ver) SendDlgItemMessage(hwndDlg,IDC_PREDEFINDEDCID,CB_SETCURSEL,i,0); } // load MTN type for (i = 0; ; i++) { if (mtn_type[i].name == NULL) break; SendDlgItemMessage(hwndDlg,IDC_MTNTYPE,CB_ADDSTRING,0,(LPARAM)Translate(mtn_type[i].name)); } SendDlgItemMessage(hwndDlg,IDC_MTNTYPE,CB_SETCURSEL,DBGetContactSettingByte(0,"ICQ","MtnEnabled",1),0); // Load Visible Mode for (i = 0; ; i++) { if (visible_mode[i].name == NULL) break; SendDlgItemMessage(hwndDlg,IDC_VISIBLEMODE,CB_ADDSTRING,0,(LPARAM)Translate(visible_mode[i].name)); } SendDlgItemMessage(hwndDlg,IDC_VISIBLEMODE,CB_SETCURSEL,DBGetContactSettingByte(0,"ICQ","VisibleMode",4)-1,0); CheckDlgButton(hwndDlg,IDC_DISABLEPOPUPS,DBGetContactSettingByte(0,"ICQ","PopUpsMode",0)); CheckDlgButton(hwndDlg,IDC_ENABLECHAN2,DBGetContactSettingByte(0,"ICQ","Chan2Enabled",1)); CheckDlgButton(hwndDlg,IDC_ENABLEPRIVACYMENU,DBGetContactSettingByte(0,"ICQ","PrivacyMenu",1)); CheckDlgButton(hwndDlg,IDC_ENABLEIDLE,DBGetContactSettingByte(0,"ICQ","ShowIdle",1)); CheckDlgButton(hwndDlg,IDC_ENABLEEXTSEARCH,DBGetContactSettingByte(0,"ICQ","ExtendedSearch",1)); CheckDlgButton(hwndDlg,IDC_DISABLEEXTSTATUS,DBGetContactSettingByte(0,"ICQ","ExtendedStatus",0)); CheckDlgButton(hwndDlg,IDC_DISABLEUIRESCAN,DBGetContactSettingByte(0,"ICQ","InfoAutoUpdate",0)); SetDlgItemInt(hwndDlg,IDC_UPDDAYS,DBGetContactSettingByte(0,"ICQ","InfoUpdate",14),FALSE); } void DefaultSettings(HWND hwndDlg) { SendDlgItemMessage(hwndDlg,IDC_PREDEFINDEDCID,CB_SETCURSEL,1,0); SendDlgItemMessage(hwndDlg,IDC_MTNTYPE,CB_SETCURSEL,1,0); SendDlgItemMessage(hwndDlg,IDC_VISIBLEMODE,CB_SETCURSEL,4-1,0); CheckDlgButton(hwndDlg,IDC_DISABLEPOPUPS,0); CheckDlgButton(hwndDlg,IDC_ENABLECHAN2,1); CheckDlgButton(hwndDlg,IDC_ENABLEPRIVACYMENU,1); CheckDlgButton(hwndDlg,IDC_ENABLEIDLE,1); CheckDlgButton(hwndDlg,IDC_ENABLEEXTSEARCH,1); CheckDlgButton(hwndDlg,IDC_DISABLEEXTSTATUS,0); CheckDlgButton(hwndDlg,IDC_DISABLEUIRESCAN,0); SetDlgItemInt(hwndDlg,IDC_UPDDAYS,14,FALSE); } void SaveSettings(HWND hwndDlg) { int i = {0}; char str[16]={0}; i = SendDlgItemMessage(hwndDlg,IDC_PREDEFINDEDCID,CB_GETCURSEL,0,0); if (i) { if (i==1){ DBDeleteContactSetting(NULL,"ICQ","FP1"); DBDeleteContactSetting(NULL,"ICQ","FP2"); DBDeleteContactSetting(NULL,"ICQ","FP3"); DBDeleteContactSetting(NULL,"ICQ","Version"); } else { DBWriteContactSettingDword(NULL,"ICQ","FP1",client_id[i].FP1); DBWriteContactSettingDword(NULL,"ICQ","FP2",client_id[i].FP2); DBWriteContactSettingDword(NULL,"ICQ","FP3",client_id[i].FP3); DBWriteContactSettingWord(NULL,"ICQ","Version",client_id[i].ver); } } DBWriteContactSettingByte(NULL,"ICQ","PopUpsMode",(BYTE)(IsDlgButtonChecked(hwndDlg,IDC_DISABLEPOPUPS)?2:0)); DBWriteContactSettingByte(NULL,"ICQ","Chan2Enabled",(BYTE)(IsDlgButtonChecked(hwndDlg,IDC_ENABLECHAN2))); DBWriteContactSettingByte(NULL,"ICQ","PrivacyMenu",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_ENABLEPRIVACYMENU)); DBWriteContactSettingByte(NULL,"ICQ","ShowIdle",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_ENABLEIDLE)); DBWriteContactSettingByte(NULL,"ICQ","ExtendedSearch",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_ENABLEEXTSEARCH)); DBWriteContactSettingByte(NULL,"ICQ","ExtendedStatus",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_DISABLEEXTSTATUS)); DBWriteContactSettingByte(NULL,"ICQ","InfoAutoUpdate",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_DISABLEUIRESCAN)); DBWriteContactSettingByte(NULL,"ICQ","MtnEnabled",(BYTE)SendDlgItemMessage(hwndDlg,IDC_MTNTYPE,CB_GETCURSEL,0,0)); DBWriteContactSettingByte(NULL,"ICQ","VisibleMode",(BYTE)(SendDlgItemMessage(hwndDlg,IDC_VISIBLEMODE,CB_GETCURSEL,0,0)+1)); i = GetDlgItemInt(hwndDlg,IDC_UPDDAYS,FALSE,FALSE); DBWriteContactSettingByte(NULL,"ICQ","InfoUpdate",(BYTE)i); } BOOL CALLBACK DlgProcHSOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_INITDIALOG: TranslateDialogDefault(hwndDlg); LoadSettings(hwndDlg); return TRUE; case WM_COMMAND: switch(LOWORD(wParam)) { case IDC_RESET: { DefaultSettings(hwndDlg); break; } } SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); // Send message to activate "Apply" button return TRUE; case WM_NOTIFY: switch(((LPNMHDR)lParam)->idFrom) { case 0: switch (((LPNMHDR)lParam)->code) { case PSN_APPLY: // if "Apply" pressed then... SaveSettings(hwndDlg); return TRUE; } break; } break; } return FALSE; } int OptInitialise(WPARAM wParam,LPARAM lParam) { OPTIONSDIALOGPAGE odp; odp.cbSize=sizeof(odp); odp.position=100100000; odp.hInstance=hInst; odp.pszTemplate=MAKEINTRESOURCE(IDD_OPT_ISEETWEAKER); odp.pszTitle=Translate(ModuleName); odp.pszGroup=Translate("Plugins"); odp.pfnDlgProc=DlgProcHSOpts; odp.flags=ODPF_BOLDGROUPS; CallService(MS_OPT_ADDPAGE,wParam,(LPARAM)&odp); return 0; }