opynsim
Unofficial C++ Documentation
Loading...
Searching...
No Matches
popup.h
Go to the documentation of this file.
1#pragma once
2
8
9#include <memory>
10#include <optional>
11#include <string_view>
12
13namespace osc { class PopupPrivate; }
14
15namespace osc
16{
17 class Popup : public Widget {
18 public:
19 explicit Popup(
21 std::string_view name,
22 Vector2 dimensions = {512.0f, 0.0f},
24 );
25
26 bool is_open();
27 void open();
28 void close();
30 void end_popup();
31
32 protected:
33 explicit Popup(std::unique_ptr<PopupPrivate>&&);
34
37 bool is_modal() const;
38 void set_modal(bool);
39 void set_rect(const Rect&);
41 void set_position(std::optional<Vector2>);
42
44 private:
45 void impl_on_draw() override;
46
47 // Implementors can/must provide these.
50 virtual void impl_draw_content() = 0;
51 virtual void impl_on_close() {}
52 };
53}
Definition popup_private.h:15
Definition popup.h:17
void close()
virtual void impl_draw_content()=0
void open()
bool is_open()
void request_close()
void set_rect(const Rect &)
void set_dimensions(Vector2)
bool begin_popup()
virtual void impl_after_imgui_begin_popup()
Definition popup.h:49
bool is_modal() const
void end_popup()
virtual void impl_on_close()
Definition popup.h:51
Popup(Widget *parent, std::string_view name, Vector2 dimensions={512.0f, 0.0f}, ui::PanelFlags=ui::PanelFlag::AlwaysAutoResize)
void set_position(std::optional< Vector2 >)
OSC_WIDGET_DATA_GETTERS(PopupPrivate)
void impl_on_draw() override
Popup(std::unique_ptr< PopupPrivate > &&)
bool is_popup_opened_this_frame() const
virtual void impl_before_imgui_begin_popup()
Definition popup.h:48
void set_modal(bool)
Definition rect.h:17
Definition widget.h:26
CStringView name() const
Widget * parent()
Definition custom_decoration_generator.h:5