switch to older example program for testing
This commit is contained in:
parent
2a5ae1f100
commit
ac340869a7
1 changed files with 27 additions and 22 deletions
49
src/main.cpp
49
src/main.cpp
|
@ -11,40 +11,45 @@
|
||||||
#include "src/Styles.hpp"
|
#include "src/Styles.hpp"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <sstream>
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
void update_count_label_text(std::shared_ptr<Raven::Label> label, int number) {
|
|
||||||
std::stringstream text;
|
|
||||||
text << "you have clicked the button " << std::to_string(number) << " times";
|
|
||||||
label->set_text(text.str());
|
|
||||||
}
|
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
Raven::Window window {};
|
Raven::Window window {};
|
||||||
int number = 0;
|
|
||||||
|
|
||||||
window.spawn_window();
|
window.spawn_window();
|
||||||
|
|
||||||
auto main_widget = window.set_main_widget<Raven::Widget>();
|
auto main_widget = window.set_main_widget<Raven::Widget>();
|
||||||
main_widget->set_layout<Raven::DocumentLayout>(10.0);
|
main_widget->set_layout<Raven::DocumentLayout>(10.0);
|
||||||
|
|
||||||
auto count_label = main_widget->add<Raven::Label>("you have clicked the button 0 times");
|
auto second_widget = main_widget->add<Raven::Widget>();
|
||||||
|
second_widget->set_layout<Raven::DocumentLayout>(20.0);
|
||||||
|
second_widget->resize(800, 800);
|
||||||
|
|
||||||
main_widget->add<Raven::Widget>(Raven::ControlWidgetType::NewRow);
|
auto inner_widget = second_widget->add<Raven::Widget>();
|
||||||
|
inner_widget->set_layout<Raven::DocumentLayout>(8.0);
|
||||||
|
inner_widget->resize(600, 600);
|
||||||
|
|
||||||
auto increment_button = main_widget->add<Raven::Button>("click me");
|
int number = 0;
|
||||||
increment_button->set_style(&Raven::accent_button_style);
|
|
||||||
increment_button->on_click = [&]() {
|
for (int i = 0; i < 250; i++) {
|
||||||
number++;
|
auto button = inner_widget->add<Raven::Button>("click me");
|
||||||
update_count_label_text(count_label, number);
|
button->set_style(&Raven::accent_button_style);
|
||||||
};
|
auto label = inner_widget->add<Raven::Label>("click one of the buttons!");
|
||||||
|
button->on_click = [&]() {
|
||||||
auto reset_button = main_widget->add<Raven::Button>("reset");
|
number += 10;
|
||||||
reset_button->on_click = [&]() {
|
|
||||||
number = 0;
|
window.start_batch();
|
||||||
update_count_label_text(count_label, number);
|
auto& children = inner_widget->children();
|
||||||
|
for (auto& child : children) {
|
||||||
|
if (child->type() == Raven::WidgetType::Button) {
|
||||||
|
std::static_pointer_cast<Raven::Button>(child)->set_text(std::to_string(number));
|
||||||
|
}
|
||||||
|
if (child->type() == Raven::WidgetType::Label) {
|
||||||
|
std::static_pointer_cast<Raven::Label>(child)->set_text(std::to_string(number));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window.end_batch();
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
|
||||||
window.run(true);
|
window.run(true);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue