UIWidget.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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 SetRect(IntRect r);
  21. void SetSize(int width, int height);
  22. void SetPosition(int x, int y);
  23. void SetText(const String& text);
  24. UIWidget* GetParent();
  25. UIWidget* GetContentRoot();
  26. void RemoveChild(UIWidget* child, bool cleanup = true);
  27. // String ID
  28. const String& GetId();
  29. void SetId(const String& id);
  30. void Center();
  31. void SetGravity(/*WIDGET_GRAVITY*/ unsigned gravity);
  32. void SetValue(double value);
  33. double GetValue();
  34. void SetState(/*WIDGET_STATE*/ unsigned state, bool on);
  35. bool GetState(/*WIDGET_STATE*/ unsigned state);
  36. void SetStateRaw(/*WIDGET_STATE*/ unsigned state);
  37. /*WIDGET_STATE*/ unsigned GetStateRaw();
  38. void Invalidate();
  39. void Die();
  40. // get this or child widget with id
  41. UIWidget* GetWidget(const String& id);
  42. virtual void AddChild(UIWidget* child);
  43. tb::TBWidget* GetInternalWidget() { return widget_; }
  44. protected:
  45. void ConvertEvent(UIWidget* handler, UIWidget* target, const tb::TBWidgetEvent &ev, VariantMap& data);
  46. void SetWidget(tb::TBWidget* widget);
  47. virtual bool OnEvent(const tb::TBWidgetEvent &ev);
  48. virtual void OnDelete();
  49. String id_;
  50. tb::TBWidget* widget_;
  51. };
  52. }