UIWidget.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. void SetSize(int width, int height);
  20. void SetPosition(int x, int y);
  21. void SetText(const String& text);
  22. UIWidget* GetParent();
  23. UIWidget* GetContentRoot();
  24. void RemoveChild(UIWidget* child, bool cleanup = true);
  25. // String ID
  26. const String& GetId();
  27. void SetId(const String& id);
  28. void Center();
  29. void SetGravity(/*WIDGET_GRAVITY*/ unsigned gravity);
  30. void Invalidate();
  31. void Destroy();
  32. // get this or child widget with id
  33. UIWidget* GetWidget(const String& id);
  34. virtual void AddChild(UIWidget* child);
  35. tb::TBWidget* GetInternalWidget() { return widget_; }
  36. protected:
  37. void ConvertEvent(UIWidget* handler, UIWidget* target, const tb::TBWidgetEvent &ev, VariantMap& data);
  38. void SetWidget(tb::TBWidget* widget);
  39. virtual bool OnEvent(const tb::TBWidgetEvent &ev);
  40. virtual void OnDelete();
  41. String id_;
  42. tb::TBWidget* widget_;
  43. };
  44. }