diff options
Diffstat (limited to 'Minecraft.Client/Common/UI/UIControl_BeaconEffectButton.cpp')
| -rw-r--r-- | Minecraft.Client/Common/UI/UIControl_BeaconEffectButton.cpp | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/Minecraft.Client/Common/UI/UIControl_BeaconEffectButton.cpp b/Minecraft.Client/Common/UI/UIControl_BeaconEffectButton.cpp new file mode 100644 index 00000000..7ee79307 --- /dev/null +++ b/Minecraft.Client/Common/UI/UIControl_BeaconEffectButton.cpp @@ -0,0 +1,121 @@ +#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 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; + } +}
\ No newline at end of file |
