Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct UIToggle : UIItem {
- template<class Method, class Obj>
- static void MakeMethod(UIToggle &Tgl, const StackText &Name, LWEUIManager *UIManager, Method CB, Obj *O, void *UserData) {
- new (&Tgl) UIToggle(Name, UIManager, std::bind(CB, O, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3), UserData);
- }
- void ToggleBtnReleased(LWEUI *UI, uint32_t EventCode, void *UserData) {
- SetToggled(!isToggled());
- if (m_Callback) m_Callback(*this, isToggled(), UserData);
- return;
- }
- UIToggle &UIToggle::SetToggled(bool Toggled) {
- m_ToggleUI->SetVisible(Toggled);
- return *this;
- }
- bool UIToggle::isToggled(void) const {
- return m_ToggleUI->GetVisible();
- }
- UIToggle(const StackText &Name, LWEUIManager *UIMan, UIToggleCallback Callback, void *UserData) : UIItem(Name, UIMan), m_Callback(Callback) {
- m_ToggleUI = UIMan->GetNamedUIf("%s.ToggleUI", Name());
- m_Label = UIMan->GetNamedUIf<LWEUILabel>("%s.Label", Name());
- m_Button = UIMan->GetNamedUIf<LWEUIButton>("%s.Button", Name());
- UIMan->RegisterMethodEvent(m_Button, LWEUI::Event_Released, &ToggleBtnReleased, this, UserData);
- }
- UIToggleCallback m_Callback;
- LWEUI *m_ToggleUI;
- LWEUILabel *m_Label;
- LWEUIButton *m_Button;
- };
Advertisement
Add Comment
Please, Sign In to add comment