UIWidget.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #pragma once
  2. #include <TurboBadger/tb_widgets.h>
  3. #include "../Core/Object.h"
  4. namespace tb
  5. {
  6. class TBWidget;
  7. }
  8. namespace Atomic
  9. {
  10. /// Wraps a TurboBadger widget in our Object model
  11. class UIWidget : public Object, public tb::TBWidgetDelegate
  12. {
  13. friend class UI;
  14. OBJECT(UIWidget)
  15. public:
  16. UIWidget(Context* context, bool createWidget = true);
  17. virtual ~UIWidget();
  18. bool Load(const String& filename);
  19. IntRect GetRect();
  20. void SetSize(int width, int height);
  21. void SetPosition(int x, int y);
  22. void SetText(const String& text);
  23. UIWidget* GetParent();
  24. UIWidget* GetContentRoot();
  25. void RemoveChild(UIWidget* child, bool cleanup = true);
  26. // String ID
  27. const String& GetId();
  28. void SetId(const String& id);
  29. void Center();
  30. void SetGravity(/*WIDGET_GRAVITY*/ unsigned gravity);
  31. void SetValue(double value);
  32. double GetValue();
  33. void SetState(/*WIDGET_STATE*/ unsigned state, bool on);
  34. bool GetState(/*WIDGET_STATE*/ unsigned state);
  35. void SetStateRaw(/*WIDGET_STATE*/ unsigned state);
  36. /*WIDGET_STATE*/ unsigned GetStateRaw();
  37. void Invalidate();
  38. void Die();
  39. // get this or child widget with id
  40. UIWidget* GetWidget(const String& id);
  41. virtual void AddChild(UIWidget* child);
  42. tb::TBWidget* GetInternalWidget() { return widget_; }
  43. protected:
  44. void ConvertEvent(UIWidget* handler, UIWidget* target, const tb::TBWidgetEvent &ev, VariantMap& data);
  45. void SetWidget(tb::TBWidget* widget);
  46. virtual bool OnEvent(const tb::TBWidgetEvent &ev);
  47. virtual void OnDelete();
  48. String id_;
  49. tb::TBWidget* widget_;
  50. };
  51. }