Unravel Engine C++ Reference
Loading...
Searching...
No Matches
panel_base.h
Go to the documentation of this file.
1#pragma once
2
3#include <context/context.hpp>
5
6#include <string>
7
8namespace unravel
9{
10
12{
13public:
14 explicit panel_base(const char* name);
15 virtual ~panel_base() = default;
16
17 auto is_visible() const -> bool { return is_visible_; }
18 void set_visible(bool visible) { is_visible_ = visible; }
19
20 auto is_focused() const -> bool { return is_focused_; }
21
22 auto is_fullscreen() const -> bool { return is_fullscreen_; }
23 void set_fullscreen(bool fullscreen) { is_fullscreen_ = fullscreen; }
25
26 void focus();
28
29 auto get_name() const -> const std::string& { return name_; }
30
31protected:
32 virtual auto get_window_name() const -> const char*;
33 void render_panel(rtti::context& ctx, const char* name, ImGuiWindowFlags flags = ImGuiWindowFlags_MenuBar);
34
35 virtual void draw_ui(rtti::context& ctx) = 0;
36 virtual auto get_window_flags() const -> ImGuiWindowFlags { return ImGuiWindowFlags_MenuBar; }
37 virtual void on_before_render(rtti::context& ctx);
38 virtual void on_after_render(rtti::context& ctx);
39
40 virtual bool begin_panel(const char* name, ImGuiWindowFlags flags);
41 virtual void end_panel(const char* name);
42
43 std::string name_;
44 std::string name_fullscreen_;
49};
50
51} // namespace unravel
virtual void on_before_render(rtti::context &ctx)
void set_visible(bool visible)
Definition panel_base.h:18
virtual void end_panel(const char *name)
virtual void draw_ui(rtti::context &ctx)=0
auto get_name() const -> const std::string &
Definition panel_base.h:29
virtual auto get_window_name() const -> const char *
virtual bool begin_panel(const char *name, ImGuiWindowFlags flags)
std::string name_fullscreen_
Definition panel_base.h:44
void on_frame_ui_render(rtti::context &ctx)
void set_fullscreen(bool fullscreen)
Definition panel_base.h:23
auto is_fullscreen() const -> bool
Definition panel_base.h:22
virtual auto get_window_flags() const -> ImGuiWindowFlags
Definition panel_base.h:36
auto is_visible() const -> bool
Definition panel_base.h:17
panel_base(const char *name)
Definition panel_base.cpp:9
virtual ~panel_base()=default
std::string name_
Definition panel_base.h:43
virtual void on_after_render(rtti::context &ctx)
void render_panel(rtti::context &ctx, const char *name, ImGuiWindowFlags flags=ImGuiWindowFlags_MenuBar)
auto is_focused() const -> bool
Definition panel_base.h:20
std::string name
Definition hub.cpp:33
Hash specialization for batch_key to enable use in std::unordered_map.