summaryrefslogtreecommitdiff
path: root/plugins/SmartAutoReplier/GUI/OptionsDlg.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/SmartAutoReplier/GUI/OptionsDlg.cpp')
-rw-r--r--plugins/SmartAutoReplier/GUI/OptionsDlg.cpp528
1 files changed, 0 insertions, 528 deletions
diff --git a/plugins/SmartAutoReplier/GUI/OptionsDlg.cpp b/plugins/SmartAutoReplier/GUI/OptionsDlg.cpp
deleted file mode 100644
index 1f25812101..0000000000
--- a/plugins/SmartAutoReplier/GUI/OptionsDlg.cpp
+++ /dev/null
@@ -1,528 +0,0 @@
-/*
- * Smart Auto Replier (SAR) - auto replier plugin for Miranda IM
- *
- * Copyright (C) 2004 - 2012 by Volodymyr M. Shcherbyna <volodymyr@shcherbyna.com>
- *
- * This file is part of SAR.
- *
- * SAR 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 3 of the License, or
- * (at your option) any later version.
- *
- * SAR 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 SAR. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "stdafx.h"
-#include "optionsdlg.h"
-#include "addruledlg.h"
-
-/// need ptr to get/set info
-extern CMessagesHandler *g_pMessHandler;
-extern CCrushLog CRUSHLOGOBJ;
-extern LPTSTR g_strPluginName;
-
-//COptionsDlg g_optionsDlg;
-
-BOOL CALLBACK COptionsDlg::DlgProcCluiOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
-BEGIN_PROTECT_AND_LOG_CODE
-
- /*if (g_optionsDlg.m_bDestroying)
- return FALSE;
-
- if (g_optionsDlg.m_hWnd == NULL)
- g_optionsDlg.Attach(hwndDlg);
-
- LRESULT lre = {0};
- DWORD dwId = {0};
- return g_optionsDlg.ProcessWindowMessage(hwndDlg, msg, wParam, lParam, lre, dwId);*/
-
-END_PROTECT_AND_LOG_CODE
- return FALSE;
-}
-
-COptionsDlg::COptionsDlg(void) : m_bShown(false), m_szMessage(NULL)
-{
-BEGIN_PROTECT_AND_LOG_CODE
-///g_optionsDlg.m_bDestroying = false;
-m_bDestroying = false;
-END_PROTECT_AND_LOG_CODE
-}
-
-COptionsDlg::~COptionsDlg(void)
-{
-BEGIN_PROTECT_AND_LOG_CODE
-END_PROTECT_AND_LOG_CODE
-}
-
-BOOL COptionsDlg::PreTranslateMessage(MSG* pMsg)
-{
-BEGIN_PROTECT_AND_LOG_CODE
- return ::IsDialogMessage(m_hWnd, pMsg);
-END_PROTECT_AND_LOG_CODE
-}
-
-/// process OnInitDialog
-LRESULT COptionsDlg::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
-{
-BEGIN_PROTECT_AND_LOG_CODE
- TranslateDialogDefault(m_hWnd);
-
- if (!g_pMessHandler)
- return FALSE;
-
- m_listRules = GetDlgItem(IDC_LIST_RULES);
- m_editReplayDelay = GetDlgItem(IDC_EDIT_REPLAYDELAY);
-// m_editHeaderMessage = GetDlgItem(IDC_EDIT_HEADER);
- m_editMessageText = GetDlgItem(IDC_EDIT_MESSAGE);
- m_btnAdd = GetDlgItem(IDC_BTN_ADDRULE);
- m_btnDel = GetDlgItem(IDC_BTN_DELRULE);
- m_btnChange = GetDlgItem(IDC_BTN_EDITRULE);
- m_wndCheckDOnSOn = GetDlgItem(IDC_CHECK_DISABLEWMON);
- m_wndCheckModeTypes = GetDlgItem(IDC_CH_ENABLE_WSCH);
- m_cbModeTypes = GetDlgItem(IDC_CB_ENWSC);
- m_chbShowAurWhmc = GetDlgItem(IDC_CH_SHOWCG);
- m_cbDisWMBTypes = GetDlgItem(IDC_CB_DWSB);
- m_chDisWMB = GetDlgItem(IDC_CH_DISWHSB);
- m_chSaveAURSToHist = GetDlgItem(IDC_CH_SAVE_AURS);
-
- m_cbModeTypes.AddString(TranslateTS(TEXT("DND/NA/Away/Occupied modes")));
- m_cbModeTypes.AddString(TranslateTS(TEXT("DND mode")));
- m_cbModeTypes.AddString(TranslateTS(TEXT("NA mode")));
- m_cbModeTypes.AddString(TranslateTS(TEXT("Away mode")));
- m_cbModeTypes.AddString(TranslateTS(TEXT("Occupied mode")));
-
- m_cbDisWMBTypes.AddString(TranslateTS(TEXT("Online/Free for chat modes")));
- m_cbDisWMBTypes.AddString(TranslateTS(TEXT("Online mode")));
- m_cbDisWMBTypes.AddString(TranslateTS(TEXT("Free for chat mode")));
-
- COMMON_RULE_ITEM & commRules = g_pMessHandler->getSettings().getStorage().getCommonRule();
- REPLYER_SETTINGS & settings = g_pMessHandler->getSettings().getSettings();
-
- if (settings.ModeValue > m_cbModeTypes.GetCount())
- m_cbModeTypes.SetCurSel(0);
- else
- m_cbModeTypes.SetCurSel(settings.ModeValue);
- if (settings.ModeDisValue > m_cbDisWMBTypes.GetCount())
- m_cbDisWMBTypes.SetCurSel(0);
- else
- m_cbDisWMBTypes.SetCurSel(settings.ModeDisValue);
-
- m_cbDisWMBTypes.EnableWindow(settings.bDisableWhenModeIsSet);
-
- if (settings.bDisableWhenModeIsSet)
- {
- m_chDisWMB.SendMessage(BM_SETCHECK, BST_CHECKED, 0);
- }
- else
- {
- m_chDisWMB.SendMessage(BM_SETCHECK, BST_UNCHECKED, 0);
- }
-
- if (settings.bShowAURDlgWhenModeChanges)
- {
- m_chbShowAurWhmc.SendMessage(BM_SETCHECK, BST_CHECKED, 0);
- }
- else
- {
- m_chbShowAurWhmc.SendMessage(BST_UNCHECKED, BST_CHECKED, 0);
- }
-
- if (settings.bEnableWhenModeIsSet)
- {
- m_wndCheckModeTypes.SendMessage(BM_SETCHECK, BST_CHECKED, 0);
- }
- else
- {
- m_wndCheckModeTypes.SendMessage(BST_UNCHECKED, BST_CHECKED, 0);
- }
-
- if (settings.bSaveToHistory)
- {
- m_chSaveAURSToHist.SendMessage(BM_SETCHECK, BST_CHECKED, 0);
- }
- else
- {
- m_chSaveAURSToHist.SendMessage(BST_UNCHECKED, BST_CHECKED, 0);
- }
-
- m_cbModeTypes.EnableWindow(settings.bEnableWhenModeIsSet);
-
- int nLength = settings.ReplayDelay;
- if (nLength == 0)
- nLength = SETTINGS_DEF_COMMON_VALREPDELAY;
-
- if (settings.bDisableWhenMirandaIsOn)
- m_wndCheckDOnSOn.SendMessage(BM_SETCHECK, BST_CHECKED, 0);
- else
- m_wndCheckDOnSOn.SendMessage(BM_SETCHECK, BST_UNCHECKED, 0);
-
- TCHAR strNumber[MAX_PATH] = {0};
- m_editReplayDelay.SetWindowText(_itot(nLength, strNumber, 10));
- m_nReplayDelay = nLength;
-
- TCHAR* str = commRules.Message;
- m_editMessageText.SetWindowText(str);
-
- if (m_szMessage)
- {
- delete m_szMessage;
- m_szMessage = NULL;
- }
-
- m_szMessage = new TCHAR[SETTINGS_MESSAGE_MAXVALENGTH];
-
- if (!m_szMessage)
- return FALSE;
-
- memset(m_szMessage, 0, SETTINGS_MESSAGE_MAXVALENGTH * sizeof(TCHAR));
-
- m_editMessageText.GetWindowText(m_szMessage, SETTINGS_MESSAGE_MAXVALENGTH);
-
- { /// filling listbox with rule names...
- RulesHash::iterator it;
- RulesHash & hash = g_pMessHandler->getSettings().getStorage().getHashTable();
- int nPos = 0;
-
- bool bAdded = false;
- for (it = hash.begin(); it != hash.end(); it++)
- {
- nPos = m_listRules.AddString(it->second.RuleName);
- if (nPos != -1)
- {
- m_listRules.SetItemData(nPos, it->first);
- if (!bAdded)
- bAdded = true;
- }
- }
- if (bAdded)
- {
- OnSetSelInRulesList(0);
- }
- }
-END_PROTECT_AND_LOG_CODE
- return FALSE;
-}
-
-/// process WM_DESTROY
-LRESULT COptionsDlg::OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
-{
-BEGIN_PROTECT_AND_LOG_CODE
- m_bDestroying = true;
- ///g_optionsDlg.m_bDestroying = true;
- ///::DestroyWindow(m_hWnd);
- ///g_optionsDlg.m_hWnd = NULL;
- //m_hWnd = NULL;
- m_szMessage = NULL;
- // m_bDestroying = false;
- ///g_optionsDlg.m_bDestroying = false;
- return FALSE;
-END_PROTECT_AND_LOG_CODE
-}
-
-void COptionsDlg::OnNotifyAboutChanges(void)
-{
-BEGIN_PROTECT_AND_LOG_CODE
- SendMessage(m_hwndHolder, PSM_CHANGED, 0, 0);
-END_PROTECT_AND_LOG_CODE
-}
-
-/// handler of typing in replay delay edit box
-LRESULT COptionsDlg::OnEditReply(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
-{
-BEGIN_PROTECT_AND_LOG_CODE
- if (m_bShown)
- {
- m_bShown = false;
- return FALSE;
- }
- TCHAR tch[MAX_PATH] = {0};
- GetDlgItemText (IDC_EDIT_REPLAYDELAY, tch, sizeof(tch));
- int nValue = _tstoi(tch);
-
- if (nValue != m_nReplayDelay)
- {
- m_nReplayDelay = nValue;
- OnNotifyAboutChanges();
- }
-
-END_PROTECT_AND_LOG_CODE
- return FALSE;
-}
-
-LRESULT COptionsDlg::OnNotify(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/)
-{
-BEGIN_PROTECT_AND_LOG_CODE
- switch (((LPNMHDR)lParam)->code)
- {
- case PSN_APPLY:
- { /// apply our changes...
- REPLYER_SETTINGS sett;
- COMMON_RULE_ITEM commrule;
-
- commrule.Message = m_szMessage;
-
- sett.bEnabled = g_pMessHandler->getSettings().getSettings().bEnabled;
- sett.ReplayDelay = m_nReplayDelay;
-
- LRESULT lres = m_wndCheckDOnSOn.SendMessage(BM_GETCHECK, 0, 0);
- sett.bDisableWhenMirandaIsOn = (lres == BST_CHECKED);
- lres = m_wndCheckModeTypes.SendMessage(BM_GETCHECK, 0, 0);
- sett.bEnableWhenModeIsSet = (lres == BST_CHECKED);
- lres = m_chbShowAurWhmc.SendMessage(BM_GETCHECK, 0, 0);
- sett.bShowAURDlgWhenModeChanges = (lres == BST_CHECKED);
- lres = m_chSaveAURSToHist.SendMessage(BM_GETCHECK, 0, 0);
- sett.bSaveToHistory = (lres == BST_CHECKED);
- sett.ModeValue = m_cbModeTypes.GetCurSel();
- lres = m_chDisWMB.SendMessage(BM_GETCHECK, 0, 0);
- sett.bDisableWhenModeIsSet = (lres == BST_CHECKED);
- sett.ModeDisValue = m_cbDisWMBTypes.GetCurSel();
-
- CSettingsHandler & handler = g_pMessHandler->getSettings();
- handler.setSettings(sett, &commrule);
- //handler.getStorage().Flush(); /// flush all unflushed rules into hdd
- }
- }
-
-END_PROTECT_AND_LOG_CODE
- return FALSE;
-}
-
-LRESULT COptionsDlg::OnEditHeader(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
-{
-BEGIN_PROTECT_AND_LOG_CODE
-
-END_PROTECT_AND_LOG_CODE
- return FALSE;
-}
-
-LRESULT COptionsDlg::OnEditMessage(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
-{
-BEGIN_PROTECT_AND_LOG_CODE
- if (!m_szMessage)
- return FALSE;
-
- int nLength = m_editMessageText.GetWindowTextLength();
-
- if (nLength > SETTINGS_MESSAGE_MAXVALENGTH)
- {
- MessageBox(TranslateTS(TEXT("too big size")), g_strPluginName, MB_OK);
- m_editMessageText.SetWindowText(m_szMessage);
-
- return FALSE;
- }
- nLength++;
- LPTSTR str2 = new TCHAR[nLength];
-
- if (!str2)
- return FALSE;
-
- memset(str2, 0, nLength * sizeof(TCHAR));
- m_editMessageText.GetWindowText(str2, nLength);
-
- if (_tcscmp(m_szMessage, str2) != 0)
- {
- _tcscpy(m_szMessage, str2);
- OnNotifyAboutChanges();
- }
-
- delete str2;
-END_PROTECT_AND_LOG_CODE
- return FALSE;
-}
-
-void COptionsDlg::OnSetSelInRulesList(int nIndex)
-{
-BEGIN_PROTECT_AND_LOG_CODE
- m_listRules.SetCurSel(nIndex);
- BOOL b;
- OnListBoxSelChanged(0, 0, 0, b);
-END_PROTECT_AND_LOG_CODE
-}
-
-LRESULT COptionsDlg::OnBtnAddRuleClick(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
-{
-BEGIN_PROTECT_AND_LOG_CODE
- CAddRuleDlg dlg;
- dlg.DoModal(m_hWnd, 0);
- if (dlg.m_bAddedOk)
- {
- int npos = m_listRules.AddString(dlg.m_item.RuleName);
- if (npos != -1)
- {
- m_listRules.SetItemData(npos, dlg.m_dwCRC32);
- OnSetSelInRulesList(npos);
- OnNotifyAboutChanges();
- }
- }
-END_PROTECT_AND_LOG_CODE
- return FALSE;
-}
-
-LRESULT COptionsDlg::OnBtnEditRuleClick(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
-{
-BEGIN_PROTECT_AND_LOG_CODE
- int nIndex = m_listRules.GetCurSel();
- if (nIndex >= 0)
- {
- DWORD dwCrc32 = static_cast<DWORD>(m_listRules.GetItemData(nIndex));
- if (dwCrc32)
- {
- CAddRuleDlg dlgEdit;
- RulesHash::iterator it;
- RulesHash & hash = g_pMessHandler->getSettings().getStorage().getHashTable();
- it = hash.find(dwCrc32);
- if (it != hash.end())
- {
- dlgEdit.m_item = it->second;
- dlgEdit.m_dwCRC32 = dwCrc32;
- dlgEdit.DoModal();
- if (dlgEdit.m_bAddedOk)
- {/// the rule is edited...
- m_listRules.DeleteString(nIndex);
- nIndex = m_listRules.AddString(dlgEdit.m_item.RuleName);
- m_listRules.SetItemData(nIndex, dlgEdit.m_dwCRC32);
- OnSetSelInRulesList(nIndex);
- OnNotifyAboutChanges();
- }
- }
- }
- }
-END_PROTECT_AND_LOG_CODE
- return FALSE;
-}
-
-LRESULT COptionsDlg::OnBtnDeleteRuleClick(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
-{
-BEGIN_PROTECT_AND_LOG_CODE
- int nIndex = m_listRules.GetCurSel();
- if (nIndex >= 0)
- {
- DWORD dwptr = static_cast<DWORD>(m_listRules.GetItemData(nIndex));
- if (dwptr)/// we have ptr
- {
- if (MessageBox(TranslateTS(TEXT("Do you really want delete selected rule ?")), g_strPluginName, MB_YESNO) == IDNO)
- return FALSE;
-
- CRulesStorage & hash = g_pMessHandler->getSettings().getStorage();
-
- if (hash.RemReplyAction(dwptr))
- {/// we found item in storage list...
- int nCount = m_listRules.DeleteString(nIndex);
- if (nCount != LB_ERR)
- { /// set sel to prev one
- if (nIndex == 0 && nCount)
- OnSetSelInRulesList(0);
- else
- if ( (nIndex - 1) <= nCount)
- {
- OnSetSelInRulesList(nIndex - 1);
- }
- }
-
- OnNotifyAboutChanges();
- }
- }
- }
-
- BOOL b;
- OnListBoxSelChanged(0, 0, 0, b);
-
-END_PROTECT_AND_LOG_CODE
- return FALSE;
-}
-
-LRESULT COptionsDlg::OnListBoxSelChanged(WORD wParam, WORD w2Param, HWND hwnd, BOOL & bHandled)
-{
-BEGIN_PROTECT_AND_LOG_CODE
- int nCount = m_listRules.GetCurSel();
- //m_btnChange.EnableWindow((nCount >= 0));
- BOOL bEnable = (nCount >= 0);
- m_btnDel.EnableWindow(bEnable);
- m_btnChange.EnableWindow(bEnable);
-
-END_PROTECT_AND_LOG_CODE
- return FALSE;
-}
-
-LRESULT COptionsDlg::OnBnClickedCheck(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
-{
-BEGIN_PROTECT_AND_LOG_CODE
- OnNotifyAboutChanges();
-
- return FALSE;
-END_PROTECT_AND_LOG_CODE
- return FALSE;
-}
-
-LRESULT COptionsDlg::OnBnCheckEnableWhenModeIsOn(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
-{
-BEGIN_PROTECT_AND_LOG_CODE
- LRESULT lres = m_wndCheckModeTypes.SendMessage(BM_GETCHECK, 0, 0);
- m_cbModeTypes.EnableWindow(lres == BST_CHECKED);
- OnNotifyAboutChanges();
-END_PROTECT_AND_LOG_CODE
- return FALSE;
-}
-
-LRESULT COptionsDlg::OnCbnSelchangeCbEnwsc(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
-{
-BEGIN_PROTECT_AND_LOG_CODE
- OnNotifyAboutChanges();
-
-END_PROTECT_AND_LOG_CODE
- return FALSE;
-}
-
-LRESULT COptionsDlg::OnCheckSaveToHistory(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
-{
-BEGIN_PROTECT_AND_LOG_CODE
- OnNotifyAboutChanges();
-END_PROTECT_AND_LOG_CODE
- return FALSE;
-}
-
-LRESULT COptionsDlg::OnBnCheckDisableWhenModeIsOn(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
-{
-BEGIN_PROTECT_AND_LOG_CODE
- LRESULT lres = m_chDisWMB.SendMessage(BM_GETCHECK, 0, 0);
- m_cbDisWMBTypes.EnableWindow(lres == BST_CHECKED);
- OnNotifyAboutChanges();
-
-END_PROTECT_AND_LOG_CODE
- return FALSE;
-}
-
-LRESULT COptionsDlg::OnCbnSelchangeCbDisnwsc(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
-{
-BEGIN_PROTECT_AND_LOG_CODE
- OnNotifyAboutChanges();
-
-END_PROTECT_AND_LOG_CODE
- return FALSE;
-}
-
-/// options are changed in another place...
-/// so just update them all...
-LRESULT COptionsDlg::OnRefreshOptions(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
-{
-BEGIN_PROTECT_AND_LOG_CODE
- MessageBox (TranslateTS(TEXT("Options are changed in another dialog")), g_strPluginName, MB_OK);
- ///OnNotifyAboutChanges();
-END_PROTECT_AND_LOG_CODE
- return FALSE;
-}
-
-LRESULT COptionsDlg::OnLbnDblclkListRules(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
-{
-BEGIN_PROTECT_AND_LOG_CODE
- return OnBtnEditRuleClick(wNotifyCode, wID, hWndCtl, bHandled);
-END_PROTECT_AND_LOG_CODE
-} \ No newline at end of file