diff options
author | rtk0c <[email protected]> | 2021-04-18 22:29:10 -0700 |
---|---|---|
committer | rtk0c <[email protected]> | 2021-04-18 22:29:10 -0700 |
commit | b00b306de1140cb7b759ed0f639e8210fd7dffa6 (patch) | |
tree | 601a7d5d457cad99a565a55ff318f6af4be07bc5 /core/src/UI | |
parent | b3dfa12eee1cbca6be7a155e9e506d5a080071e2 (diff) |
Initial work on evaluation
Diffstat (limited to 'core/src/UI')
-rw-r--r-- | core/src/UI/UI_Workflows.cpp | 70 |
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 |