/xbmc/guilib/GUIToggleButtonControl.h

http://github.com/xbmc/xbmc · C Header · 56 lines · 33 code · 8 blank · 15 comment · 0 complexity · aec276ae7c1a570de87198692ae3528f MD5 · raw file

  1. /*
  2. * Copyright (C) 2005-2018 Team Kodi
  3. * This file is part of Kodi - https://kodi.tv
  4. *
  5. * SPDX-License-Identifier: GPL-2.0-or-later
  6. * See LICENSES/README.md for more information.
  7. */
  8. #pragma once
  9. /*!
  10. \file GUIToggleButtonControl.h
  11. \brief
  12. */
  13. #include "GUIButtonControl.h"
  14. /*!
  15. \ingroup controls
  16. \brief
  17. */
  18. class CGUIToggleButtonControl : public CGUIButtonControl
  19. {
  20. public:
  21. CGUIToggleButtonControl(int parentID, int controlID, float posX, float posY, float width, float height, const CTextureInfo& textureFocus, const CTextureInfo& textureNoFocus, const CTextureInfo& altTextureFocus, const CTextureInfo& altTextureNoFocus, const CLabelInfo &labelInfo, bool wrapMultiline = false);
  22. ~CGUIToggleButtonControl(void) override;
  23. CGUIToggleButtonControl *Clone() const override { return new CGUIToggleButtonControl(*this); };
  24. void Process(unsigned int currentTime, CDirtyRegionList &dirtyregions) override;
  25. void Render() override;
  26. bool OnAction(const CAction &action) override;
  27. void AllocResources() override;
  28. void FreeResources(bool immediately = false) override;
  29. void DynamicResourceAlloc(bool bOnOff) override;
  30. void SetInvalid() override;
  31. void SetPosition(float posX, float posY) override;
  32. void SetWidth(float width) override;
  33. void SetHeight(float height) override;
  34. void SetMinWidth(float minWidth) override;
  35. void SetLabel(const std::string& label) override;
  36. void SetAltLabel(const std::string& label);
  37. std::string GetDescription() const override;
  38. void SetToggleSelect(const std::string &toggleSelect);
  39. void SetAltClickActions(const CGUIAction &clickActions);
  40. protected:
  41. bool UpdateColors() override;
  42. void OnClick() override;
  43. CGUIButtonControl m_selectButton;
  44. INFO::InfoPtr m_toggleSelect;
  45. private:
  46. void ProcessToggle(unsigned int currentTime);
  47. std::string m_altLabel;
  48. };