17 lines
434 B
C++
17 lines
434 B
C++
#pragma once
|
|
|
|
#include "imgui.h"
|
|
|
|
class geometry;
|
|
|
|
class CORE_API widget : public std::enable_shared_from_this<widget> {
|
|
public:
|
|
virtual ~widget() = default;
|
|
|
|
virtual void tick() {}
|
|
virtual void on_paint(ImGuiIO& io) = 0;
|
|
virtual void on_arrange_children(const geometry& allotted_geometry) {}
|
|
[[nodiscard]] virtual ImVec2 compute_desired_size() const { return {0, 0}; }
|
|
static ImGuiID generate_widget_id();
|
|
};
|