From 15855fa84a09fd1fd486d357c38db0f2bd181e74 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 4 Mar 2014 23:23:45 +0000 Subject: HistoryStats compiles ok now git-svn-id: http://svn.miranda-ng.org/main/trunk@8399 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/HistoryStats/src/optionsctrlimpl_check.cpp | 59 ++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 plugins/HistoryStats/src/optionsctrlimpl_check.cpp (limited to 'plugins/HistoryStats/src/optionsctrlimpl_check.cpp') diff --git a/plugins/HistoryStats/src/optionsctrlimpl_check.cpp b/plugins/HistoryStats/src/optionsctrlimpl_check.cpp new file mode 100644 index 0000000000..d6c2b99c56 --- /dev/null +++ b/plugins/HistoryStats/src/optionsctrlimpl_check.cpp @@ -0,0 +1,59 @@ +#include "_globals.h" +#include "optionsctrlimpl.h" + +/* + * OptionsCtrlImpl::Check + */ + +int OptionsCtrlImpl::Check::getStateImage() +{ + return m_bEnabled ? (m_bChecked ? siCheckC : siCheckU) : (m_bChecked ? siCheckCG : siCheckUG); +} + +bool OptionsCtrlImpl::Check::getChildEnable() +{ + return + !m_bDisableChildsOnUncheck && m_bDisableChilds && m_bEnabled || + m_bDisableChildsOnUncheck && m_bChecked && (!m_bDisableChilds || m_bEnabled); +} + +void OptionsCtrlImpl::Check::updateItem() +{ + m_pCtrl->setStateImage(m_hItem, m_bEnabled ? (m_bChecked ? siCheckC : siCheckU) : (m_bChecked ? siCheckCG : siCheckUG)); + + if (m_bDisableChilds || m_bDisableChildsOnUncheck) + { + enableChilds(getChildEnable()); + } +} + +OptionsCtrlImpl::Check::Check(OptionsCtrlImpl* pCtrl, Item* pParent, const mu_text* szLabel, DWORD dwFlags, DWORD dwData) + : Item(pCtrl, itCheck, szLabel, dwFlags, dwData) +{ + m_bChecked = bool_(dwFlags & OCF_CHECKED); + m_bDisableChildsOnUncheck = bool_(dwFlags & OCF_DISABLECHILDSONUNCHECK); + + pCtrl->insertItem(pParent, this, szLabel, dwFlags, getStateImage()); + + if (pParent) + { + pParent->childAdded(this); + } +} + +void OptionsCtrlImpl::Check::onToggle() +{ + if (m_bEnabled) + { + setChecked(!m_bChecked); + m_pCtrl->setModified(this); + } +} + +void OptionsCtrlImpl::Check::childAdded(Item* pChild) +{ + if (m_bDisableChilds || m_bDisableChildsOnUncheck) + { + pChild->setEnabled(getChildEnable()); + } +} -- cgit v1.2.3