summaryrefslogtreecommitdiff
path: root/isee_tweaker/options.c
diff options
context:
space:
mode:
authorwatcherhd <watcherhd@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb>2011-04-21 14:14:52 +0000
committerwatcherhd <watcherhd@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb>2011-04-21 14:14:52 +0000
commitcb4a46e7fbe62d788e66ed6121c717a2d22a4d7c (patch)
tree30df260fdc5a1b5a7049c2f8cac8b7ef17513d6d /isee_tweaker/options.c
parent19b6f534d2e784a1e120bf52c4aa07004798f473 (diff)
svn.miranda.im is moving to a new home!
git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@7 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb
Diffstat (limited to 'isee_tweaker/options.c')
-rw-r--r--isee_tweaker/options.c187
1 files changed, 187 insertions, 0 deletions
diff --git a/isee_tweaker/options.c b/isee_tweaker/options.c
new file mode 100644
index 0000000..08049b8
--- /dev/null
+++ b/isee_tweaker/options.c
@@ -0,0 +1,187 @@
+/*
+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 <windows.h>
+#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;
+} \ No newline at end of file