summaryrefslogtreecommitdiff
path: root/plugins/StatusManager/src/AdvancedAutoAway/aaa_msgoptions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/StatusManager/src/AdvancedAutoAway/aaa_msgoptions.cpp')
-rw-r--r--plugins/StatusManager/src/AdvancedAutoAway/aaa_msgoptions.cpp188
1 files changed, 0 insertions, 188 deletions
diff --git a/plugins/StatusManager/src/AdvancedAutoAway/aaa_msgoptions.cpp b/plugins/StatusManager/src/AdvancedAutoAway/aaa_msgoptions.cpp
deleted file mode 100644
index 2f4228af74..0000000000
--- a/plugins/StatusManager/src/AdvancedAutoAway/aaa_msgoptions.cpp
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- AdvancedAutoAway Plugin for Miranda-IM (www.miranda-im.org)
- Copyright 2003-2006 P. Boon
-
- 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 "..\stdafx.h"
-
-struct AAMSGSETTING
-{
- short useCustom;
- int status;
- char* msg;
-};
-
-char *StatusModeToDbSetting(int status, const char *suffix);
-
-void DisableDialog(HWND hwndDlg)
-{
- EnableWindow(GetDlgItem(hwndDlg, IDC_STATUS), FALSE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_STATUSMSG), FALSE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_VARIABLESHELP), FALSE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_RADUSECUSTOM), FALSE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_RADUSEMIRANDA), FALSE);
-}
-
-INT_PTR CALLBACK DlgProcAutoAwayMsgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- static AAMSGSETTING** settings;
- static int last, count;
-
- switch (msg) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg);
- {
- ShowWindow(GetDlgItem(hwndDlg, IDC_VARIABLESHELP), ServiceExists(MS_VARS_SHOWHELP) ? SW_SHOW : SW_HIDE);
- count = 0;
- last = -1;
-
- PROTOACCOUNT** proto;
- int protoCount = 0;
- Proto_EnumAccounts(&protoCount, &proto);
- if (protoCount <= 0) {
- DisableDialog(hwndDlg);
- break;
- }
-
- DWORD protoModeMsgFlags = 0;
- for (int i = 0; i < protoCount; i++)
- if (CallProtoService(proto[i]->szModuleName, PS_GETCAPS, PFLAGNUM_1, 0) & PF1_MODEMSGSEND & ~PF1_INDIVMODEMSG)
- protoModeMsgFlags |= CallProtoService(proto[i]->szModuleName, PS_GETCAPS, PFLAGNUM_3, 0);
-
- if (protoModeMsgFlags == 0) {
- DisableDialog(hwndDlg);
- break;
- }
-
- settings = (AAMSGSETTING**)mir_alloc(sizeof(AAMSGSETTING*));
- count = 0;
- for (int i = 0; i < _countof(statusModeList); i++) {
- if (!(protoModeMsgFlags & Proto_Status2Flag(statusModeList[i])))
- continue;
-
- int j = SendDlgItemMessage(hwndDlg, IDC_STATUS, CB_ADDSTRING, 0, (LPARAM)Clist_GetStatusModeDescription(statusModeList[i], 0));
- SendDlgItemMessage(hwndDlg, IDC_STATUS, CB_SETITEMDATA, j, statusModeList[i]);
- settings = (AAMSGSETTING**)mir_realloc(settings, (count + 1) * sizeof(AAMSGSETTING*));
- settings[count] = (AAMSGSETTING*)mir_alloc(sizeof(AAMSGSETTING));
- settings[count]->status = statusModeList[i];
-
- DBVARIANT dbv;
- if (!db_get(0, AAAMODULENAME, StatusModeToDbSetting(statusModeList[i], SETTING_STATUSMSG), &dbv)) {
- settings[count]->msg = (char*)mir_alloc(mir_strlen(dbv.pszVal) + 1);
- mir_strcpy(settings[count]->msg, dbv.pszVal);
- db_free(&dbv);
- }
- else settings[count]->msg = nullptr;
-
- settings[count]->useCustom = db_get_b(0, AAAMODULENAME, StatusModeToDbSetting(statusModeList[i], SETTING_MSGCUSTOM), FALSE);
- count += 1;
- }
- SendDlgItemMessage(hwndDlg, IDC_STATUS, CB_SETCURSEL, 0, 0);
- SendMessage(hwndDlg, WM_COMMAND, MAKEWPARAM(IDC_STATUS, CBN_SELCHANGE), 0);
- }
- break;
-
- case WM_COMMAND:
- if (((HIWORD(wParam) == EN_CHANGE) || (HIWORD(wParam) == BN_CLICKED)) && ((HWND)lParam == GetFocus()))
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
-
- switch (LOWORD(wParam)) {
- case IDC_RADUSEMIRANDA:
- CheckDlgButton(hwndDlg, IDC_RADUSECUSTOM, BST_UNCHECKED == IsDlgButtonChecked(hwndDlg, IDC_RADUSEMIRANDA) ? BST_CHECKED : BST_UNCHECKED);
- EnableWindow(GetDlgItem(hwndDlg, IDC_STATUSMSG), IsDlgButtonChecked(hwndDlg, IDC_RADUSECUSTOM));
- EnableWindow(GetDlgItem(hwndDlg, IDC_VARIABLESHELP), IsDlgButtonChecked(hwndDlg, IDC_RADUSECUSTOM));
- settings[SendDlgItemMessage(hwndDlg, IDC_STATUS, CB_GETCURSEL, 0, 0)]->useCustom = IsDlgButtonChecked(hwndDlg, IDC_RADUSECUSTOM);
- break;
-
- case IDC_RADUSECUSTOM:
- CheckDlgButton(hwndDlg, IDC_RADUSEMIRANDA, BST_UNCHECKED == IsDlgButtonChecked(hwndDlg, IDC_RADUSECUSTOM) ? BST_CHECKED : BST_UNCHECKED);
- EnableWindow(GetDlgItem(hwndDlg, IDC_STATUSMSG), IsDlgButtonChecked(hwndDlg, IDC_RADUSECUSTOM));
- EnableWindow(GetDlgItem(hwndDlg, IDC_VARIABLESHELP), IsDlgButtonChecked(hwndDlg, IDC_RADUSECUSTOM));
- settings[SendDlgItemMessage(hwndDlg, IDC_STATUS, CB_GETCURSEL, 0, 0)]->useCustom = IsDlgButtonChecked(hwndDlg, IDC_RADUSECUSTOM);
- break;
-
- case IDC_STATUS:
- if (HIWORD(wParam) == CBN_SELCHANGE) {
- int i = SendDlgItemMessage(hwndDlg, IDC_STATUS, CB_GETCURSEL, 0, 0);
- int len = SendDlgItemMessage(hwndDlg, IDC_STATUSMSG, WM_GETTEXTLENGTH, 0, 0);
- if (last != -1) {
- if (settings[last]->msg == nullptr)
- settings[last]->msg = (char*)mir_alloc(len + 1);
- else
- settings[last]->msg = (char*)mir_realloc(settings[last]->msg, len + 1);
- GetDlgItemTextA(hwndDlg, IDC_STATUSMSG, settings[last]->msg, (len + 1));
- }
-
- if (i != -1) {
- if (settings[i]->msg != nullptr)
- SetDlgItemTextA(hwndDlg, IDC_STATUSMSG, settings[i]->msg);
- else {
- ptrW msgw((wchar_t*)CallService(MS_AWAYMSG_GETSTATUSMSGW, settings[i]->status, 0));
- SetDlgItemText(hwndDlg, IDC_STATUSMSG, (msgw != nullptr) ? msgw : L"");
- }
-
- if (settings[i]->useCustom) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_STATUSMSG), TRUE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_VARIABLESHELP), TRUE);
- CheckDlgButton(hwndDlg, IDC_RADUSECUSTOM, BST_CHECKED);
- CheckDlgButton(hwndDlg, IDC_RADUSEMIRANDA, BST_UNCHECKED);
- }
- else {
- EnableWindow(GetDlgItem(hwndDlg, IDC_STATUSMSG), FALSE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_VARIABLESHELP), FALSE);
- CheckDlgButton(hwndDlg, IDC_RADUSEMIRANDA, BST_CHECKED);
- CheckDlgButton(hwndDlg, IDC_RADUSECUSTOM, BST_UNCHECKED);
- }
- }
- last = i;
- }
- break;
-
- case IDC_VARIABLESHELP:
- CallService(MS_VARS_SHOWHELP, (WPARAM)GetDlgItem(hwndDlg, IDC_STATUSMSG), 0);
- break;
- }
- break;
-
- case WM_NOTIFY:
- switch (((LPNMHDR)lParam)->code) {
- case PSN_WIZFINISH:
- AAALoadOptions();
- break;
-
- case PSN_APPLY:
- SendMessage(hwndDlg, WM_COMMAND, MAKEWPARAM(IDC_STATUS, CBN_SELCHANGE), 0);
- for (int i = 0; i < count; i++) {
- db_set_b(0, AAAMODULENAME, StatusModeToDbSetting(settings[i]->status, SETTING_MSGCUSTOM), (BYTE)settings[i]->useCustom);
- if ((settings[i]->useCustom) && (settings[i]->msg != nullptr) && (settings[i]->msg[0] != '\0'))
- db_set_s(0, AAAMODULENAME, StatusModeToDbSetting(settings[i]->status, SETTING_STATUSMSG), settings[i]->msg);
- }
- break;
- }
- break;
-
- case WM_DESTROY:
- for (int i = 0; i < count; i++) {
- mir_free(settings[i]->msg);
- mir_free(settings[i]);
- }
- mir_free(settings);
- break;
- }
-
- return FALSE;
-}