7
#include "Precompiled.h"
8
#include "PropertyBoolControl.h"
13
PropertyBoolControl::PropertyBoolControl() :
19
PropertyBoolControl::~PropertyBoolControl()
21
mComboBox->eventComboChangePosition -= MyGUI::newDelegate(this, &PropertyBoolControl::notifyComboChangePosition);
24
void PropertyBoolControl::OnInitialise(Control* _parent, MyGUI::Widget* _place, const std::string& _layoutName)
26
PropertyControl::OnInitialise(_parent, _place, "PropertyComboBoxControl.layout");
28
assignWidget(mName, "Name", false);
29
assignWidget(mComboBox, "ComboBox");
31
mComboBox->addItem("True");
32
mComboBox->addItem("False");
34
mComboBox->beginToItemFirst();
36
mComboBox->eventComboChangePosition += MyGUI::newDelegate(this, &PropertyBoolControl::notifyComboChangePosition);
39
void PropertyBoolControl::updateCaption()
41
PropertyPtr proper = getProperty();
42
if (proper != nullptr)
43
mName->setCaption(proper->getType()->getName());
46
void PropertyBoolControl::updateProperty()
48
PropertyPtr proper = getProperty();
49
if (proper != nullptr)
51
mComboBox->setEnabled(!proper->getType()->getReadOnly());
52
size_t index = getComboIndex(proper->getValue());
53
mComboBox->setIndexSelected(index);
57
mComboBox->setIndexSelected(MyGUI::ITEM_NONE);
58
mComboBox->setEnabled(false);
62
void PropertyBoolControl::notifyComboChangePosition(MyGUI::ComboBox* _sender, size_t _index)
64
PropertyPtr proper = getProperty();
65
if (proper != nullptr)
67
std::string value = _index != MyGUI::ITEM_NONE ? mComboBox->getItemNameAt(_index) : "";
72
size_t PropertyBoolControl::getComboIndex(const MyGUI::UString& _name)
74
size_t result = MyGUI::ITEM_NONE;
76
size_t count = mComboBox->getItemCount();
77
for (size_t index = 0; index < count; ++index)
79
if (mComboBox->getItemNameAt(index) == _name)