UIWindow.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #pragma once
  2. #include<TurboBadger/tb_window.h>
  3. #include "UIWidget.h"
  4. namespace Atomic
  5. {
  6. enum UI_WINDOW_SETTINGS {
  7. ///< Chrome less window without any other settings.
  8. UI_WINDOW_SETTINGS_NONE = tb::WINDOW_SETTINGS_NONE,
  9. ///< Show a title bar that can also move the window.
  10. UI_WINDOW_SETTINGS_TITLEBAR = tb::WINDOW_SETTINGS_TITLEBAR,
  11. ///< Show a widget for resizing the window.
  12. UI_WINDOW_SETTINGS_RESIZABLE = tb::WINDOW_SETTINGS_RESIZABLE,
  13. ///< Show a widget for closing the window.
  14. UI_WINDOW_SETTINGS_CLOSE_BUTTON = tb::WINDOW_SETTINGS_CLOSE_BUTTON,
  15. ///< Can be activated and deactivate other windows.
  16. UI_WINDOW_SETTINGS_CAN_ACTIVATE = tb::WINDOW_SETTINGS_CAN_ACTIVATE,
  17. UI_WINDOW_SETTINGS_DEFAULT = tb::WINDOW_SETTINGS_DEFAULT
  18. };
  19. class UIWindow : public UIWidget
  20. {
  21. OBJECT(UIWindow)
  22. public:
  23. UIWindow(Context* context, bool createWidget = true);
  24. virtual ~UIWindow();
  25. UI_WINDOW_SETTINGS GetSettings();
  26. void SetSettings(UI_WINDOW_SETTINGS settings);
  27. void ResizeToFitContent();
  28. void AddChild(UIWidget *child);
  29. void Close();
  30. protected:
  31. virtual bool OnEvent(const tb::TBWidgetEvent &ev);
  32. private:
  33. };
  34. }