From 89c5b2369413025e1fe7dfe5c5d0bf3bedd8558d Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Mon, 23 Jul 2012 13:52:57 +0000 Subject: git-svn-id: http://svn.miranda-ng.org/main/trunk@1123 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/SmartAutoReplier/GUI/OptionsDlg.cpp | 528 ---------------------------- 1 file changed, 528 deletions(-) delete mode 100644 plugins/SmartAutoReplier/GUI/OptionsDlg.cpp (limited to 'plugins/SmartAutoReplier/GUI/OptionsDlg.cpp') 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 - * - * 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 . -*/ - -#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(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(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 -- cgit v1.2.3