AronaCore/core/widget/widget.h

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();
};