#include "Label.hpp" #include "Window.hpp" #include "Widget.hpp" #include "Button.hpp" #include "Box.hpp" #include "Label.hpp" #include "Layout.hpp" #include "RGB.hpp" #include "DocumentLayout.hpp" #include "Events.hpp" #include "src/Styles.hpp" #include #include #include int main() { Raven::Window window {}; window.spawn_window(); auto main_widget = window.set_main_widget(); main_widget->set_layout(10.0); auto second_widget = main_widget->add(); second_widget->set_layout(20.0); second_widget->resize(800, 800); auto inner_widget = second_widget->add(); inner_widget->set_layout(8.0); inner_widget->resize(600, 600); int number = 0; for (int i = 0; i < 250; i++) { auto button = inner_widget->add("click me"); button->set_style(&Raven::accent_button_style); auto label = inner_widget->add("click one of the buttons!"); button->on_click = [&]() { number += 10; window.start_batch(); auto& children = inner_widget->children(); for (auto& child : children) { if (child->type() == Raven::WidgetType::Button) { std::static_pointer_cast(child)->set_text(std::to_string(number)); } if (child->type() == Raven::WidgetType::Label) { std::static_pointer_cast(child)->set_text(std::to_string(number)); } } window.end_batch(); }; } window.run(true); return 0; }