4jcraft/targets/app/common/UI/Controls/UIControl_BeaconEffectButton.h

57 lines
1.3 KiB
C++

#pragma once
#include <string>
#include "app/common/UI/Controls/UIControl.h"
#include "app/common/UI/Controls/UIControl_BeaconEffectButton.h"
#include "app/common/UI/UIScene.h"
#include "app/linux/Iggy/include/iggy.h"
#ifndef _ENABLEIGGY
#include "app/linux/Stubs/iggy_stubs.h"
#endif
#include "UIControl.h"
class UIControl_BeaconEffectButton : public UIControl {
private:
static const int BUTTON_DISABLED = 0;
static const int BUTTON_ENABLED_UNSELECTED = 1;
static const int BUTTON_ENABLED_SELECTED = 2;
static const int BUTTON_PRESSED = 3;
enum EState {
eState_Disabled,
eState_Enabled_Unselected,
eState_Enabled_Selected,
eState_Pressed
};
EState m_lastState;
int m_data;
int m_icon;
bool m_selected;
bool m_active;
bool m_focus;
IggyName m_funcChangeState, m_funcSetIcon;
public:
UIControl_BeaconEffectButton();
virtual bool setupControl(UIScene* scene, IggyValuePath* parent,
const std::string& controlName);
void SetData(int data, int icon, bool active, bool selected);
int GetData();
void SetButtonSelected(bool selected);
bool IsButtonSelected();
void SetButtonActive(bool active);
virtual void setFocus(bool focus);
void SetIcon(int icon);
private:
void UpdateButtonState();
};