diff --git a/PanoPainter.vcxproj b/PanoPainter.vcxproj index ace9142..383aa3f 100644 --- a/PanoPainter.vcxproj +++ b/PanoPainter.vcxproj @@ -362,6 +362,7 @@ + @@ -490,6 +491,7 @@ + @@ -540,6 +542,7 @@ + diff --git a/PanoPainter.vcxproj.filters b/PanoPainter.vcxproj.filters index 95a1f20..819ee1d 100644 --- a/PanoPainter.vcxproj.filters +++ b/PanoPainter.vcxproj.filters @@ -375,134 +375,11 @@ Source Files\ui + + Source Files\ui + - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - libs\jpeg @@ -512,9 +389,6 @@ libs\tinyxml2 - - Header Files - libs\WinTab @@ -527,60 +401,12 @@ libs\WinTab - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files - - - Header Files - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - - - Header Files\ui - libs\sqlite3 libs\sqlite3 - - Header Files - libs\nanort @@ -588,40 +414,220 @@ libs\hash - Header Files + Source Files - - Header Files\ui + + Source Files + + + Source Files + + + Source Files + + + Source Files - Header Files + Source Files - - Header Files + + Source Files - - Header Files\ui - - - Header Files - - - Header Files + + Source Files - Header Files + Source Files - Header Files + Source Files - - Header Files\ui + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui - Header Files\ui + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui - Header Files\ui + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui + + + Source Files\ui @@ -707,6 +713,9 @@ extras\dialogs + + extras\dialogs + diff --git a/data/dialogs/panel-animation.xml b/data/dialogs/panel-animation.xml new file mode 100644 index 0000000..e91567b --- /dev/null +++ b/data/dialogs/panel-animation.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/layout.xml b/data/layout.xml index 270044f..01ec334 100644 --- a/data/layout.xml +++ b/data/layout.xml @@ -297,6 +297,10 @@ + + + + diff --git a/src/app.h b/src/app.h index 30d2ac3..54efe6f 100644 --- a/src/app.h +++ b/src/app.h @@ -40,6 +40,7 @@ #include "node_panel_grid.h" #include "node_panel_quick.h" #include "node_input_box.h" +#include "node_panel_animation.h" struct VRController { @@ -111,6 +112,7 @@ public: std::shared_ptr stroke; std::shared_ptr grid; std::shared_ptr presets; + std::shared_ptr animation; std::shared_ptr timeline; NodePanelQuick* quick; std::map quick_mode_state; diff --git a/src/app_layout.cpp b/src/app_layout.cpp index 185a1c9..55ca796 100644 --- a/src/app_layout.cpp +++ b/src/app_layout.cpp @@ -118,6 +118,7 @@ void App::init_sidebar() stroke = create_panel(layout); grid = create_panel(layout); presets = create_panel(layout); + animation = create_panel(layout); //presets = find_or_create_panel(panels); canvas->m_canvas->on_mode_changed = [this](kCanvasMode prev, kCanvasMode mode) { @@ -901,6 +902,23 @@ void App::init_menu_tools() grid->SetHeightP(100); grid->find("title")->SetVisibility(false); + popup_exp->destroy(); + popup_time->destroy(); + }; + popup_time->find("panel-animation")->on_click = [this, popup_time, popup_exp, visible](Node*) { + if (visible(grid.get())) + return; + auto fpanel = floatings_container->add_child(); + fpanel->m_class = NodePanelFloating::kClass::Animation; + fpanel->m_container->add_child(animation); + fpanel->SetHeight(300); + fpanel->m_title->set_text("Animation"); + grid->SetPositioning(YGPositionTypeRelative); + grid->SetPosition(0, 0); + grid->SetWidthP(100); + grid->SetHeightP(100); + grid->find("title")->SetVisibility(false); + popup_exp->destroy(); popup_time->destroy(); }; @@ -1419,9 +1437,9 @@ void App::initLayout() LOG("initializing layout designer xml"); layout_designer.on_loaded = [&](bool reloaded) { layout_designer.create(); - layout_designer[main_id]->add_child(layout_designer.instantiate("usermanual")); + layout_designer[main_id]->add_child(layout_designer.instantiate("tpl-panel-animation")); }; - //layout_designer.load("data/dialogs/usermanual.xml"); + //layout_designer.load("data/dialogs/panel-animation.xml"); } void App::set_ui_scale(float scale) diff --git a/src/node_panel_animation.cpp b/src/node_panel_animation.cpp new file mode 100644 index 0000000..ee01711 --- /dev/null +++ b/src/node_panel_animation.cpp @@ -0,0 +1,25 @@ +#include "pch.h" +#include "node_panel_animation.h" + +Node* NodePanelAnimation::clone_instantiate() const +{ + return new this_class; +} + +void NodePanelAnimation::clone_finalize(Node* dest) const +{ + parent::clone_finalize(dest); + auto n = static_cast(dest); + n->init_controls(); +} + +void NodePanelAnimation::init() +{ + parent::init(); + init_template_file("data/dialogs/panel-animation.xml", "tpl-panel-animation"); + init_controls(); +} + +void NodePanelAnimation::init_controls() +{ +} diff --git a/src/node_panel_animation.h b/src/node_panel_animation.h new file mode 100644 index 0000000..b45b99b --- /dev/null +++ b/src/node_panel_animation.h @@ -0,0 +1,12 @@ +#include "node_border.h" + +class NodePanelAnimation : public NodeBorder +{ +public: + using this_class = NodePanelAnimation; + using parent = NodeBorder; + virtual Node* clone_instantiate() const override; + virtual void clone_finalize(Node* dest) const override; + virtual void init() override; + void init_controls(); +}; diff --git a/src/node_panel_floating.h b/src/node_panel_floating.h index a12676f..9ecb0ae 100644 --- a/src/node_panel_floating.h +++ b/src/node_panel_floating.h @@ -20,7 +20,7 @@ public: std::weak_ptr m_dock; using this_class = NodePanelFloating; using parent = NodeBorder; - enum class kClass : uint8_t { Presets, Color, ColorAdv, Layers, Brush, Grids, Generic } m_class = kClass::Generic; + enum class kClass : uint8_t { Presets, Color, ColorAdv, Layers, Brush, Grids, Animation, Generic } m_class = kClass::Generic; virtual Node* clone_instantiate() const override; virtual void clone_finalize(Node* dest) const override; virtual kEventResult handle_event(Event* e) override;