summaryrefslogtreecommitdiff
path: root/plugins/HistoryStats/src/optionsctrlimpl_item.cpp
blob: faf8ec18e03202deda42d5bb530ceffb6996637a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "stdafx.h"
#include "optionsctrlimpl.h"

/*
 * OptionsCtrlImpl::Item
 */

OptionsCtrlImpl::Item::Item(OptionsCtrlImpl* pCtrl, ItemType ItemType, const wchar_t* szLabel, DWORD dwFlags, INT_PTR dwData) :
	m_pCtrl(pCtrl), m_hItem(nullptr), m_nRef(1), m_ItemType(ItemType), m_strLabel(szLabel), m_dwData(dwData)
{
	m_bEnabled       = !(dwFlags & OCF_DISABLED);
	m_bDisableChilds = !(dwFlags & OCF_NODISABLECHILDS);
}

void OptionsCtrlImpl::Item::enableChilds(bool bEnable)
{
	HTREEITEM hChild = TreeView_GetChild(m_pCtrl->m_hTree, m_hItem);
	while (hChild)
	{
		Item* pItem = m_pCtrl->getItem(hChild);
		if (pItem)
			pItem->setEnabled(bEnable);

		hChild = TreeView_GetNextSibling(m_pCtrl->m_hTree, hChild);
	}
}

void OptionsCtrlImpl::Item::setLabel(const wchar_t* szLabel)
{
	m_strLabel = szLabel;

	m_pCtrl->setNodeText(m_hItem, m_strLabel.c_str());
}