diff --git a/assets/main.rml b/assets/main.rml
index f7f05b4..c7c9f20 100644
--- a/assets/main.rml
+++ b/assets/main.rml
@@ -11,7 +11,7 @@
@@ -41,7 +41,7 @@
-
+
Add New Critter
@@ -67,7 +67,24 @@
-
+
+
+
+
+
+
+
+
+
+
Confirmation
+
+
{{confirmation_dialog_text}}
+
+
+
+
+
+
diff --git a/assets/styles/main.rcss b/assets/styles/main.rcss
index bb2fb64..35087c1 100644
--- a/assets/styles/main.rcss
+++ b/assets/styles/main.rcss
@@ -6,8 +6,8 @@
box-sizing: border-box;
font-family: "Hubballi";
- --background-color: #f5e8df;
- --foreground-color: #0a1347;
+ --background-color: #54703f;
+ --foreground-color: #000000;
}
body {
@@ -285,7 +285,7 @@ progress-value {
#new-critter-btn {
height: 50px;
width: 50px;
- /* border-radius: 50px; */
+ border-radius: 10px;
font-size: 30pt;
display: flex;
text-align: center;
@@ -319,6 +319,7 @@ progress-value {
color: var(--foreground-color);
border: 2px var(--foreground-color);
text-align: left;
+ border-radius: 10px;
}
.critter-card:hover {
@@ -406,7 +407,7 @@ progress-value {
border-color: var(--foreground-color);
border-width: 2px;
padding: 20px;
- border-radius: 0px;
+ border-radius: 10px;
width: 80%;
height: 80%;
}
diff --git a/src/ui.cpp b/src/ui.cpp
index 89671ab..25747d2 100644
--- a/src/ui.cpp
+++ b/src/ui.cpp
@@ -44,18 +44,26 @@ bool setup_data_binding(Rml::Context *context, Rml::DataModelHandle &model_handl
dmc.Bind("critters", &critter_list);
dmc.Bind("page_title", &app_data.page_title);
- dmc.Bind("is_dialog_open", &app_data.is_dialog_open);
dmc.Bind("error_message", &app_data.error_message);
- dmc.Bind("form", &app_data.form);
+
+ // New Critter dialog
+ dmc.Bind("is_add_critter_dialog_open", &app_data.is_add_critter_dialog_open);
+ dmc.Bind("new_critter_form", &app_data.new_critter_form);
+
+ // Confirmation dialog
+ dmc.Bind("is_confirmation_dialog_open", &app_data.is_confirmation_dialog_open);
+ dmc.Bind("confirmation_dialog_text", &app_data.confirmation_dialog_text);
+ dmc.Bind("confirmation_dialog_result", &app_data.confimation_dialog_result);
+
dmc.BindEventCallback("submit_add_critter", [&app_data, &critters, &critter_list](Rml::DataModelHandle handle, Rml::Event &, const Rml::VariantList &) {
Critter temp;
- temp.name = app_data.form.name;
- temp.gender = app_data.form.gender;
- temp.mother_id = app_data.form.mother_id;
- temp.father_id = app_data.form.father_id;
- temp.notes = app_data.form.notes;
- temp.species = app_data.form.species;
+ temp.name = app_data.new_critter_form.name;
+ temp.gender = app_data.new_critter_form.gender;
+ temp.mother_id = app_data.new_critter_form.mother_id;
+ temp.father_id = app_data.new_critter_form.father_id;
+ temp.notes = app_data.new_critter_form.notes;
+ temp.species = app_data.new_critter_form.species;
std::string err;
if (!validate_critter(temp, critters, err)) {
@@ -69,14 +77,14 @@ bool setup_data_binding(Rml::Context *context, Rml::DataModelHandle &model_handl
db_get_all_critters(critters);
sync_map_to_list(critters, critter_list);
- app_data.form.Clear();
+ app_data.new_critter_form.Clear();
app_data.error_message.clear();
- app_data.is_dialog_open = false;
+ app_data.is_add_critter_dialog_open = false;
handle.DirtyVariable("critters");
- handle.DirtyVariable("form");
+ handle.DirtyVariable("new_critter_form");
handle.DirtyVariable("error_message");
- handle.DirtyVariable("is_dialog_open");
+ handle.DirtyVariable("is_add_critter_dialog_open");
} else {
app_data.error_message = "Failed to write to database.";
handle.DirtyVariable("error_message");
diff --git a/src/ui.hpp b/src/ui.hpp
index 7cc4cc5..7921d3d 100644
--- a/src/ui.hpp
+++ b/src/ui.hpp
@@ -1,6 +1,7 @@
#pragma once
#include "critter.hpp"
+#include
#include
#include
#include