#include "../../stdafx.h" #include "UI.h" #include "UIControl_BeaconEffectButton.h" UIControl_BeaconEffectButton::UIControl_BeaconEffectButton() { m_data = 0; m_icon = 0; m_selected = false; m_active = false; m_focus = false; } bool UIControl_BeaconEffectButton::setupControl( UIScene* scene, IggyValuePath* parent, const std::string& controlName) { bool success = UIControl::setupControl(scene, parent, controlName); m_funcChangeState = registerFastName(L"ChangeState"); m_funcSetIcon = registerFastName(L"SetIcon"); return success; } void UIControl_BeaconEffectButton::SetData(int data, int icon, bool active, bool selected) { m_data = data; m_active = active; m_selected = selected; SetIcon(icon); UpdateButtonState(); } int UIControl_BeaconEffectButton::GetData() { return m_data; } void UIControl_BeaconEffectButton::SetButtonSelected(bool selected) { if (selected != m_selected) { m_selected = selected; UpdateButtonState(); } } bool UIControl_BeaconEffectButton::IsButtonSelected() { return m_selected; } void UIControl_BeaconEffectButton::SetButtonActive(bool active) { if (m_active != active) { m_active = active; UpdateButtonState(); } } void UIControl_BeaconEffectButton::setFocus(bool focus) { if (m_focus != focus) { m_focus = focus; UpdateButtonState(); } } void UIControl_BeaconEffectButton::SetIcon(int icon) { if (icon != m_icon) { m_icon = icon; IggyDataValue result; IggyDataValue value[1]; value[0].type = IGGY_DATATYPE_number; value[0].number = m_icon; IggyResult out = IggyPlayerCallMethodRS(m_parentScene->getMovie(), &result, getIggyValuePath(), m_funcSetIcon, 1, value); } } void UIControl_BeaconEffectButton::UpdateButtonState() { EState state = eState_Disabled; if (!m_active) { state = eState_Disabled; } else if (m_selected) { state = eState_Pressed; } else if (m_focus) { state = eState_Enabled_Selected; } else { state = eState_Enabled_Unselected; } if (state != m_lastState) { IggyDataValue result; IggyDataValue value[1]; value[0].type = IGGY_DATATYPE_number; value[0].number = state; IggyResult out = IggyPlayerCallMethodRS(m_parentScene->getMovie(), &result, getIggyValuePath(), m_funcChangeState, 1, value); if (out == IGGY_RESULT_SUCCESS) m_lastState = state; } }