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;