Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. struct UIToggle : UIItem {
  2.  
  3. template<class Method, class Obj>
  4. static void MakeMethod(UIToggle &Tgl, const StackText &Name, LWEUIManager *UIManager, Method CB, Obj *O, void *UserData) {
  5. new (&Tgl) UIToggle(Name, UIManager, std::bind(CB, O, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3), UserData);
  6. }
  7.  
  8. void ToggleBtnReleased(LWEUI *UI, uint32_t EventCode, void *UserData) {
  9. SetToggled(!isToggled());
  10. if (m_Callback) m_Callback(*this, isToggled(), UserData);
  11. return;
  12. }
  13.  
  14. UIToggle &UIToggle::SetToggled(bool Toggled) {
  15. m_ToggleUI->SetVisible(Toggled);
  16. return *this;
  17. }
  18.  
  19. bool UIToggle::isToggled(void) const {
  20. return m_ToggleUI->GetVisible();
  21. }
  22.  
  23. UIToggle(const StackText &Name, LWEUIManager *UIMan, UIToggleCallback Callback, void *UserData) : UIItem(Name, UIMan), m_Callback(Callback) {
  24. m_ToggleUI = UIMan->GetNamedUIf("%s.ToggleUI", Name());
  25. m_Label = UIMan->GetNamedUIf<LWEUILabel>("%s.Label", Name());
  26. m_Button = UIMan->GetNamedUIf<LWEUIButton>("%s.Button", Name());
  27.  
  28. UIMan->RegisterMethodEvent(m_Button, LWEUI::Event_Released, &ToggleBtnReleased, this, UserData);
  29. }
  30.  
  31. UIToggleCallback m_Callback;
  32. LWEUI *m_ToggleUI;
  33. LWEUILabel *m_Label;
  34. LWEUIButton *m_Button;
  35. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement