aboutsummaryrefslogtreecommitdiff
path: root/core/src/UI
diff options
context:
space:
mode:
authorrtk0c <[email protected]>2021-04-18 22:29:10 -0700
committerrtk0c <[email protected]>2021-04-18 22:29:10 -0700
commitb00b306de1140cb7b759ed0f639e8210fd7dffa6 (patch)
tree601a7d5d457cad99a565a55ff318f6af4be07bc5 /core/src/UI
parentb3dfa12eee1cbca6be7a155e9e506d5a080071e2 (diff)
Initial work on evaluation
Diffstat (limited to 'core/src/UI')
-rw-r--r--core/src/UI/UI_Workflows.cpp70
1 files changed, 70 insertions, 0 deletions
diff --git a/core/src/UI/UI_Workflows.cpp b/core/src/UI/UI_Workflows.cpp
index 2b0368e..101fa7b 100644
--- a/core/src/UI/UI_Workflows.cpp
+++ b/core/src/UI/UI_Workflows.cpp
@@ -1,8 +1,78 @@
#include "UI.hpp"
+#include "Model/Workflow.hpp"
+#include "Model/WorkflowNodes.hpp"
#include "UI/Localization.hpp"
#include <imgui.h>
+#include <memory>
+#include <vector>
+
+namespace {
+class WorkflowCreationMenu {
+private:
+ using WorkflowNodeConstructor = std::unique_ptr<WorkflowNode> (*)();
+
+ struct Candidate {
+ WorkflowNodeConstructor Constructor;
+ };
+
+ std::vector<Candidate> mCandidates;
+
+public:
+ WorkflowCreationMenu() {
+ SetupCandidates();
+ }
+
+private:
+ void SetupCandidates() {
+ mCandidates.push_back(Candidate{
+ .Constructor = []() -> std::unique_ptr<WorkflowNode> { return std::make_unique<NumericOperationNode>(NumericOperationNode::Addition); },
+ });
+
+ mCandidates.push_back(Candidate{
+ .Constructor = []() -> std::unique_ptr<WorkflowNode> { return std::make_unique<NumericOperationNode>(NumericOperationNode::Subtraction); },
+ });
+
+ mCandidates.push_back(Candidate{
+ .Constructor = []() -> std::unique_ptr<WorkflowNode> { return std::make_unique<NumericOperationNode>(NumericOperationNode::Multiplication); },
+ });
+
+ mCandidates.push_back(Candidate{
+ .Constructor = []() -> std::unique_ptr<WorkflowNode> { return std::make_unique<NumericOperationNode>(NumericOperationNode::Division); },
+ });
+
+// mCandidates.push_back(Candidate{
+// .Constructor = []() -> std::unique_ptr<WorkflowNode> { return std::make_unique<NumericExpressionNode>(); },
+// });
+
+ mCandidates.push_back(Candidate{
+ .Constructor = []() -> std::unique_ptr<WorkflowNode> { return std::make_unique<TextFormatterNode>(); },
+ });
+
+// mCandidates.push_back(Candidate{
+// .Constructor = []() -> std::unique_ptr<WorkflowNode> { return std::make_unique<DocumentTemplateExpansionNode>(); },
+// });
+
+// mCandidates.push_back(Candidate{
+// .Constructor = []() -> std::unique_ptr<WorkflowNode> { return std::make_unique<FormInputNode>(); },
+// });
+
+// mCandidates.push_back(Candidate{
+// .Constructor = []() -> std::unique_ptr<WorkflowNode> { return std::make_unique<DatabaseRowsInputNode>(); },
+// });
+ }
+};
+
+class WorkflowUI {
+private:
+ Workflow* mWorkflow;
+
+public:
+ void Draw() {
+ }
+};
+} // namespace
void UI::WorkflowsTab() {
// TODO