6
#include "Precompiled.h"
7
#include "PropertyRegionTypeControl.h"
12
PropertyRegionTypeControl::PropertyRegionTypeControl(MyGUI::Widget* _parent) :
13
wraps::BaseLayout("PropertyComboBoxControl.layout", _parent),
16
assignWidget(mComboBox, "ComboBox");
18
mComboBox->addItem("EditText");
19
mComboBox->addItem("SimpleText");
21
mComboBox->addItem("SubSkin");
23
mComboBox->addItem("TileRect");
24
mComboBox->addItem("TileRect Hor");
25
mComboBox->addItem("TileRect Ver");
27
mComboBox->beginToItemFirst();
29
mComboBox->eventComboChangePosition += MyGUI::newDelegate(this, &PropertyRegionTypeControl::notifyComboChangePosition);
32
PropertyRegionTypeControl::~PropertyRegionTypeControl()
34
mComboBox->eventComboChangePosition -= MyGUI::newDelegate(this, &PropertyRegionTypeControl::notifyComboChangePosition);
37
void PropertyRegionTypeControl::updateProperty()
39
Property* proper = getProperty();
40
if (proper != nullptr)
42
mComboBox->setEnabled(!proper->getReadOnly());
43
size_t index = getComboIndex(proper->getValue());
44
mComboBox->setIndexSelected(index);
48
mComboBox->setIndexSelected(MyGUI::ITEM_NONE);
49
mComboBox->setEnabled(false);
53
void PropertyRegionTypeControl::notifyComboChangePosition(MyGUI::ComboBox* _sender, size_t _index)
55
Property* proper = getProperty();
56
if (proper != nullptr)
58
if (_index != MyGUI::ITEM_NONE)
59
proper->setValue(mComboBox->getItemNameAt(_index), getTypeName());
61
proper->setValue("", getTypeName());
65
size_t PropertyRegionTypeControl::getComboIndex(const MyGUI::UString& _name)
67
size_t result = MyGUI::ITEM_NONE;
69
size_t count = mComboBox->getItemCount();
70
for (size_t index = 0; index < count; ++index)
72
if (mComboBox->getItemNameAt(index) == _name)
7
#include "Precompiled.h"
8
#include "PropertyRegionTypeControl.h"
9
#include "FactoryManager.h"
14
FACTORY_ITEM_ATTRIBUTE(PropertyRegionTypeControl)
16
PropertyRegionTypeControl::PropertyRegionTypeControl() :
22
PropertyRegionTypeControl::~PropertyRegionTypeControl()
24
mComboBox->eventComboChangePosition -= MyGUI::newDelegate(this, &PropertyRegionTypeControl::notifyComboChangePosition);
27
void PropertyRegionTypeControl::OnInitialise(Control* _parent, MyGUI::Widget* _place, const std::string& _layoutName)
29
PropertyControl::OnInitialise(_parent, _place, "PropertyComboBoxControl.layout");
31
assignWidget(mName, "Name", false);
32
assignWidget(mComboBox, "ComboBox");
34
mComboBox->addItem("SubSkin");
35
mComboBox->addItem("TileRect");
36
mComboBox->addItem("TileRect Horz");
37
mComboBox->addItem("TileRect Vert");
39
mComboBox->beginToItemFirst();
41
mComboBox->eventComboChangePosition += MyGUI::newDelegate(this, &PropertyRegionTypeControl::notifyComboChangePosition);
44
void PropertyRegionTypeControl::updateCaption()
46
PropertyPtr proper = getProperty();
47
if (proper != nullptr)
48
mName->setCaption(proper->getType()->getName());
51
void PropertyRegionTypeControl::updateProperty()
53
PropertyPtr proper = getProperty();
54
if (proper != nullptr)
56
mComboBox->setEnabled(!proper->getType()->getReadOnly());
57
size_t index = getComboIndex(proper->getValue());
58
mComboBox->setIndexSelected(index);
62
mComboBox->setIndexSelected(MyGUI::ITEM_NONE);
63
mComboBox->setEnabled(false);
67
void PropertyRegionTypeControl::notifyComboChangePosition(MyGUI::ComboBox* _sender, size_t _index)
69
PropertyPtr proper = getProperty();
70
if (proper != nullptr)
72
std::string value = _index != MyGUI::ITEM_NONE ? mComboBox->getItemNameAt(_index) : "";
77
size_t PropertyRegionTypeControl::getComboIndex(const MyGUI::UString& _name)
79
size_t result = MyGUI::ITEM_NONE;
81
size_t count = mComboBox->getItemCount();
82
for (size_t index = 0; index < count; ++index)
84
if (mComboBox->getItemNameAt(index) == _name)