Updating hab labels
This commit is contained in:
parent
a54d1f7e98
commit
53a70aefa5
2 changed files with 44 additions and 16 deletions
|
|
@ -50,6 +50,8 @@ namespace gui_to_app {
|
|||
if (!app.insert_obj(obj)) {
|
||||
on_stack = true;
|
||||
switch_->set_active(false);
|
||||
} else {
|
||||
app.update_hab_labels();
|
||||
}
|
||||
} else {
|
||||
if (!app.erase_obj(obj)) {
|
||||
|
|
@ -59,6 +61,8 @@ namespace gui_to_app {
|
|||
"Erasing object {} was not successful",
|
||||
character::BillyObjects::billy_object_to_string(obj).data()
|
||||
);
|
||||
} else {
|
||||
app.update_hab_labels();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -165,10 +169,10 @@ namespace gui_to_app {
|
|||
return;
|
||||
}
|
||||
debug_button = app_builder->get_widget<Gtk::Button>("debug_button");
|
||||
hab_base = app_builder->get_widget<Gtk::Label>("habilete_label_base");
|
||||
hab_carac = app_builder->get_widget<Gtk::Label>("habilete_label_carac");
|
||||
hab_mat = app_builder->get_widget<Gtk::Label>("habilete_label_materiel");
|
||||
hab_total = app_builder->get_widget<Gtk::Label>("habilete_label_total");
|
||||
hab_labels.base = app_builder->get_widget<Gtk::Label>("habilete_label_base");
|
||||
hab_labels.carac = app_builder->get_widget<Gtk::Label>("habilete_label_carac");
|
||||
hab_labels.mat = app_builder->get_widget<Gtk::Label>("habilete_label_materiel");
|
||||
hab_labels.total = app_builder->get_widget<Gtk::Label>("habilete_label_total");
|
||||
|
||||
debug_button->signal_clicked().connect(sigc::mem_fun(*this, &AppWin2Back::debug_button_clicked), false);
|
||||
}
|
||||
|
|
@ -182,17 +186,36 @@ namespace gui_to_app {
|
|||
quit();
|
||||
}
|
||||
|
||||
bool AppWin2Back::switch_signal_handler(const bool flag, const character::billyEnums &obj) noexcept {
|
||||
return flag ? gestionnaire.insert_object(sheet, obj) : !gestionnaire.erase_object(sheet, obj);
|
||||
void AppWin2Back::debug_button_clicked() const noexcept {
|
||||
const json j{ { "character_sheet", sheet } };
|
||||
spdlog::info("Character sheet in json: \n{}", j.dump(4, ' ', true));
|
||||
}
|
||||
|
||||
void AppWin2Back::debug_button_clicked() const noexcept {
|
||||
spdlog::info("Display objects");
|
||||
for (const auto &obj: sheet.get_objects() | views::values) {
|
||||
spdlog::info("Object: {}", obj->to_string());
|
||||
static void convert_to_label(std::array<char, 10> &convert,
|
||||
const char *err_msg,
|
||||
const uint32_t data,
|
||||
Gtk::Label *const __restrict label) noexcept {
|
||||
if (const auto [ptr, ec] = std::to_chars(convert.data(), convert.data() + convert.size(), data);
|
||||
ec != std::errc()) {
|
||||
spdlog::error("An error occurred while converting {} value: {}",
|
||||
err_msg,
|
||||
std::make_error_code(ec).message());
|
||||
} else {
|
||||
const Glib::ustring converted{
|
||||
convert.data(), static_cast<std::string::size_type>(ptr - convert.data())
|
||||
};
|
||||
label->set_label(converted);
|
||||
}
|
||||
}
|
||||
|
||||
void AppWin2Back::update_hab_labels() const noexcept {
|
||||
std::array<char, 10> convert{};
|
||||
convert_to_label(convert, "base hab", sheet.get_habilete().get_base(), hab_labels.base);
|
||||
convert_to_label(convert, "carac hab", sheet.get_habilete().get_carac(), hab_labels.carac);
|
||||
convert_to_label(convert, "materiel hab", sheet.get_habilete().get_materiel(), hab_labels.mat);
|
||||
convert_to_label(convert, "total hab", sheet.get_habilete().get_total(), hab_labels.total);
|
||||
}
|
||||
|
||||
bool AppWin2Back::insert_obj(const character::billyEnums &obj) noexcept {
|
||||
return gestionnaire.insert_object(sheet, obj);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue