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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
/*!
@file
@author Albert Semenov
@date 09/2010
*/
#include "Precompiled.h"
#include "SettingsWidgetsControl.h"
#include "SettingsManager.h"
#include "FactoryManager.h"
namespace tools
{
FACTORY_ITEM_ATTRIBUTE(SettingsWidgetsControl)
SettingsWidgetsControl::SettingsWidgetsControl() :
mCheckShowName(nullptr),
mCheckShowType(nullptr),
mCheckShowSkin(nullptr)
{
}
SettingsWidgetsControl::~SettingsWidgetsControl()
{
mCheckShowName->eventMouseButtonClick -= MyGUI::newDelegate(this, &SettingsWidgetsControl::notifyToggleCheck);
mCheckShowType->eventMouseButtonClick -= MyGUI::newDelegate(this, &SettingsWidgetsControl::notifyToggleCheck);
mCheckShowSkin->eventMouseButtonClick -= MyGUI::newDelegate(this, &SettingsWidgetsControl::notifyToggleCheck);
}
void SettingsWidgetsControl::OnInitialise(Control* _parent, MyGUI::Widget* _place, const std::string& _layoutName)
{
Control::OnInitialise(_parent, _place, _layoutName);
assignWidget(mCheckShowName, "checkShowName");
assignWidget(mCheckShowType, "checkShowType");
assignWidget(mCheckShowSkin, "checkShowSkin");
mCheckShowName->eventMouseButtonClick += MyGUI::newDelegate(this, &SettingsWidgetsControl::notifyToggleCheck);
mCheckShowType->eventMouseButtonClick += MyGUI::newDelegate(this, &SettingsWidgetsControl::notifyToggleCheck);
mCheckShowSkin->eventMouseButtonClick += MyGUI::newDelegate(this, &SettingsWidgetsControl::notifyToggleCheck);
}
void SettingsWidgetsControl::loadSettings()
{
mCheckShowName->setStateSelected(SettingsManager::getInstance().getValue<bool>("Settings/ShowName"));
mCheckShowType->setStateSelected(SettingsManager::getInstance().getValue<bool>("Settings/ShowType"));
mCheckShowSkin->setStateSelected(SettingsManager::getInstance().getValue<bool>("Settings/ShowSkin"));
}
void SettingsWidgetsControl::saveSettings()
{
SettingsManager::getInstance().setValue("Settings/ShowName", mCheckShowName->getStateSelected());
SettingsManager::getInstance().setValue("Settings/ShowType", mCheckShowType->getStateSelected());
SettingsManager::getInstance().setValue("Settings/ShowSkin", mCheckShowSkin->getStateSelected());
}
void SettingsWidgetsControl::notifyToggleCheck(MyGUI::Widget* _sender)
{
MyGUI::Button* checkbox = _sender->castType<MyGUI::Button>();
checkbox->setStateSelected(!checkbox->getStateSelected());
}
void SettingsWidgetsControl::OnCommand(const std::string& _command)
{
Control::OnCommand(_command);
if (_command == "Command_LoadSettings")
loadSettings();
else if (_command == "Command_SaveSettings")
saveSettings();
}
}
|