summaryrefslogtreecommitdiff
path: root/plugins/HistoryStats/src/optionsctrlimpl_group.cpp
blob: 34dcd06a34ba7fec8587588ee7dec0a79e3e2980 (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
34
35
36
37
38
39
#include "stdafx.h"
#include "optionsctrlimpl.h"

/*
 * OptionsCtrlImpl::Group
 */

OptionsCtrlImpl::Group::Group(OptionsCtrlImpl* pCtrl, Item* pParent, const wchar_t* szLabel, DWORD dwFlags, INT_PTR dwData)
	: Item(pCtrl, itGroup, szLabel, dwFlags, dwData)
{
	m_bDrawLine = bool_(dwFlags & OCF_DRAWLINE);

	pCtrl->insertItem(pParent, this, szLabel, dwFlags, m_bEnabled ? siFolder : siFolderG);

	if (pParent)
	{
		pParent->childAdded(this);
	}
}

void OptionsCtrlImpl::Group::setEnabled(bool bEnable)
{
	m_bEnabled = bEnable;

	m_pCtrl->setStateImage(m_hItem, m_bEnabled ? siFolder : siFolderG);

	if (m_bDisableChilds)
	{
		enableChilds(m_bEnabled);
	}
}

void OptionsCtrlImpl::Group::childAdded(Item* pChild)
{
	if (m_bDisableChilds)
	{
		pChild->setEnabled(m_bEnabled);
	}
}