add EffectEditor stubs

This commit is contained in:
Jack Andersen 2016-02-01 10:04:55 -10:00
parent 8c04185841
commit 3f21eae617
8 changed files with 80 additions and 17 deletions

View File

@ -19,6 +19,7 @@ endif()
atdna(atdna_Space.cpp Space.hpp) atdna(atdna_Space.cpp Space.hpp)
atdna(atdna_ResourceBrowser.cpp ResourceBrowser.hpp) atdna(atdna_ResourceBrowser.cpp ResourceBrowser.hpp)
atdna(atdna_ModelViewer.cpp ModelViewer.hpp) atdna(atdna_ModelViewer.cpp ModelViewer.hpp)
atdna(atdna_EffectEditor.cpp EffectEditor.hpp)
if(WIN32) if(WIN32)
set(PLAT_SRCS platforms/win/urde.rc) set(PLAT_SRCS platforms/win/urde.rc)
@ -38,6 +39,7 @@ add_executable(urde WIN32 MACOSX_BUNDLE
SplashScreen.hpp SplashScreen.cpp SplashScreen.hpp SplashScreen.cpp
ResourceBrowser.hpp ResourceBrowser.cpp atdna_ResourceBrowser.cpp ResourceBrowser.hpp ResourceBrowser.cpp atdna_ResourceBrowser.cpp
ModelViewer.hpp ModelViewer.cpp atdna_ModelViewer.cpp ModelViewer.hpp ModelViewer.cpp atdna_ModelViewer.cpp
EffectEditor.hpp EffectEditor.cpp atdna_EffectEditor.cpp
ProjectManager.hpp ProjectManager.cpp ProjectManager.hpp ProjectManager.cpp
ViewManager.hpp ViewManager.cpp ViewManager.hpp ViewManager.cpp
Camera.hpp Camera.cpp) Camera.hpp Camera.cpp)

6
Editor/EffectEditor.cpp Normal file
View File

@ -0,0 +1,6 @@
#include "EffectEditor.hpp"
namespace URDE
{
}

39
Editor/EffectEditor.hpp Normal file
View File

@ -0,0 +1,39 @@
#ifndef URDE_EFFECT_EDITOR_HPP
#define URDE_EFFECT_EDITOR_HPP
#include "Space.hpp"
namespace URDE
{
class EffectEditor : public EditorSpace
{
struct State : Space::State
{
DECL_YAML
String<-1> path;
} m_state;
const Space::State& spaceState() const {return m_state;}
Specter::View* buildContentView(Specter::ViewResources& res)
{
return nullptr;
}
public:
EffectEditor(ViewManager& vm, Space* parent)
: EditorSpace(vm, Class::EffectEditor, parent) {}
EffectEditor(ViewManager& vm, Space* parent, ConfigReader& r)
: EffectEditor(vm, parent) {m_state.read(r);}
EffectEditor(ViewManager& vm, Space* parent, const EffectEditor& other)
: EffectEditor(vm, parent) {m_state = other.m_state;}
Space* copy(Space* parent) const
{
return new EffectEditor(m_vm, parent, *this);
}
};
}
#endif // URDE_EFFECT_EDITOR_HPP

View File

@ -36,10 +36,6 @@ class ModelViewer : public Space
{ {
return nullptr; return nullptr;
} }
virtual Specter::View* buildSpaceView(Specter::ViewResources& res)
{
return nullptr;
}
public: public:
ModelViewer(ViewManager& vm, Space* parent) ModelViewer(ViewManager& vm, Space* parent)

View File

@ -1,6 +1,7 @@
#include "Space.hpp" #include "Space.hpp"
#include "ViewManager.hpp" #include "ViewManager.hpp"
#include "ResourceBrowser.hpp" #include "ResourceBrowser.hpp"
#include "EffectEditor.hpp"
#include "icons/icons.hpp" #include "icons/icons.hpp"
namespace URDE namespace URDE
@ -19,9 +20,9 @@ Specter::View* Space::buildSpaceView(Specter::ViewResources& res)
Specter::View* sview = buildContentView(res); Specter::View* sview = buildContentView(res);
m_spaceView->setContentView(sview); m_spaceView->setContentView(sview);
Specter::Toolbar& tb = *m_spaceView->toolbar(); Specter::Toolbar& tb = *m_spaceView->toolbar();
const std::string* classStr = SpaceMenuNode::lookupClassString(m_class); const std::string* classStr = SpaceMenuNode::LookupClassString(m_class);
Specter::Icon* classIcon = SpaceMenuNode::lookupClassIcon(m_class); Specter::Icon* classIcon = SpaceMenuNode::LookupClassIcon(m_class);
const Zeus::CColor* classColor = SpaceMenuNode::lookupClassColor(m_class); const Zeus::CColor* classColor = SpaceMenuNode::LookupClassColor(m_class);
m_spaceSelectButton.reset(new Specter::Button(res, tb, &m_spaceSelectBind, "", classIcon, m_spaceSelectButton.reset(new Specter::Button(res, tb, &m_spaceSelectBind, "", classIcon,
Specter::Button::Style::Block, Specter::Button::Style::Block,
classColor?*classColor:Zeus::CColor::skWhite)); classColor?*classColor:Zeus::CColor::skWhite));
@ -40,11 +41,12 @@ Specter::View* Space::buildSpaceView(Specter::ViewResources& res)
std::vector<Space::SpaceMenuNode::SubNodeData> Space::SpaceMenuNode::s_subNodeDats = std::vector<Space::SpaceMenuNode::SubNodeData> Space::SpaceMenuNode::s_subNodeDats =
{ {
{Class::ResourceBrowser, "resource_browser", "Resource Browser", GetIcon(SpaceIcon::ResourceBrowser), {0.0,1.0,0.0,1.0}} {Class::ResourceBrowser, "resource_browser", "Resource Browser", GetIcon(SpaceIcon::ResourceBrowser), {0.0,1.0,0.0,1.0}},
{Class::EffectEditor, "effect_editor", "Effect Editor", GetIcon(SpaceIcon::ParticleEditor), {1.0,0.5,0.0,1.0}}
}; };
std::string Space::SpaceMenuNode::s_text = "Space Types"; std::string Space::SpaceMenuNode::s_text = "Space Types";
void Space::SpaceMenuNode::initializeStrings(ViewManager& vm) void Space::SpaceMenuNode::InitializeStrings(ViewManager& vm)
{ {
s_text = vm.translateOr("space_types", s_text.c_str()); s_text = vm.translateOr("space_types", s_text.c_str());
for (SubNodeData& sn : s_subNodeDats) for (SubNodeData& sn : s_subNodeDats)
@ -69,7 +71,7 @@ Specter::View* RootSpace::basisView() {return &m_vm.rootView();}
Specter::View* SplitSpace::buildContentView(Specter::ViewResources& res) Specter::View* SplitSpace::buildContentView(Specter::ViewResources& res)
{ {
int clearance = res.pixelFactor() * SPECTER_TOOLBAR_GAUGE; int clearance = res.pixelFactor() * SPECTER_TOOLBAR_GAUGE;
m_splitView.reset(new Specter::SplitView(res, m_vm.rootView(), this, m_state.axis, m_splitView.reset(new Specter::SplitView(res, *m_parent->basisView(), this, m_state.axis,
m_state.split, clearance, clearance)); m_state.split, clearance, clearance));
if (m_slots[0]) if (m_slots[0])
m_splitView->setContentView(0, m_slots[0]->buildSpaceView(res)); m_splitView->setContentView(0, m_slots[0]->buildSpaceView(res));
@ -195,6 +197,8 @@ static Space* BuildNewSpace(ViewManager& vm, Space::Class cls, Space* parent, Re
return new SplitSpace(vm, parent, r); return new SplitSpace(vm, parent, r);
case Class::ResourceBrowser: case Class::ResourceBrowser:
return new ResourceBrowser(vm, parent, r); return new ResourceBrowser(vm, parent, r);
case Class::EffectEditor:
return new EffectEditor(vm, parent, r);
default: break; default: break;
} }
return nullptr; return nullptr;

View File

@ -25,6 +25,7 @@ public:
Space(const Space& other) = delete; Space(const Space& other) = delete;
Space& operator=(const Space& other) = delete; Space& operator=(const Space& other) = delete;
/** Common encoded-enumeration for all space classes */
enum class Class enum class Class
{ {
None, None,
@ -32,7 +33,8 @@ public:
SplitSpace, SplitSpace,
TestSpace, TestSpace,
ResourceBrowser, ResourceBrowser,
ModelViewer ModelViewer,
EffectEditor
}; };
struct State : Athena::io::DNAYaml<Athena::BigEndian> {Delete _d;}; struct State : Athena::io::DNAYaml<Athena::BigEndian> {Delete _d;};
@ -80,22 +82,22 @@ public:
size_t subNodeCount() const {return m_subNodes.size();} size_t subNodeCount() const {return m_subNodes.size();}
IMenuNode* subNode(size_t idx) {return &m_subNodes[idx];} IMenuNode* subNode(size_t idx) {return &m_subNodes[idx];}
static void initializeStrings(ViewManager& vm); static void InitializeStrings(ViewManager& vm);
static const std::string* lookupClassString(Class cls) static const std::string* LookupClassString(Class cls)
{ {
for (const SubNodeData& sn : s_subNodeDats) for (const SubNodeData& sn : s_subNodeDats)
if (sn.m_cls == cls) if (sn.m_cls == cls)
return &sn.m_text; return &sn.m_text;
return nullptr; return nullptr;
} }
static Specter::Icon* lookupClassIcon(Class cls) static Specter::Icon* LookupClassIcon(Class cls)
{ {
for (SubNodeData& sn : s_subNodeDats) for (SubNodeData& sn : s_subNodeDats)
if (sn.m_cls == cls) if (sn.m_cls == cls)
return &sn.m_icon; return &sn.m_icon;
return nullptr; return nullptr;
} }
static const Zeus::CColor* lookupClassColor(Class cls) static const Zeus::CColor* LookupClassColor(Class cls)
{ {
for (SubNodeData& sn : s_subNodeDats) for (SubNodeData& sn : s_subNodeDats)
if (sn.m_cls == cls) if (sn.m_cls == cls)
@ -343,6 +345,20 @@ public:
Specter::View* basisView() {return m_splitView.get();} Specter::View* basisView() {return m_splitView.get();}
}; };
class ViewerSpace : public Space
{
public:
ViewerSpace(ViewManager& vm, Class cls, Space* parent)
: Space(vm, cls, parent) {}
};
class EditorSpace : public Space
{
public:
EditorSpace(ViewManager& vm, Class cls, Space* parent)
: Space(vm, cls, parent) {}
};
class TestSpace : public Space class TestSpace : public Space
{ {
std::unique_ptr<Specter::Button> m_button; std::unique_ptr<Specter::Button> m_button;

View File

@ -82,7 +82,7 @@ ViewManager::ViewManager(HECL::Runtime::FileStoreManager& fileMgr, HECL::CVarMan
m_recentProjectsPath(HECL::SysFormat(_S("%s/recent_projects.txt"), fileMgr.getStoreRoot().c_str())), m_recentProjectsPath(HECL::SysFormat(_S("%s/recent_projects.txt"), fileMgr.getStoreRoot().c_str())),
m_recentFilesPath(HECL::SysFormat(_S("%s/recent_files.txt"), fileMgr.getStoreRoot().c_str())) m_recentFilesPath(HECL::SysFormat(_S("%s/recent_files.txt"), fileMgr.getStoreRoot().c_str()))
{ {
Space::SpaceMenuNode::initializeStrings(*this); Space::SpaceMenuNode::InitializeStrings(*this);
char path[2048]; char path[2048];
HECL::Sstat theStat; HECL::Sstat theStat;

@ -1 +1 @@
Subproject commit a4272a09a349a1b9ff5ae921960f44470e31b47a Subproject commit 2adc2f1c6c0b6770955fcf46ab1bba2ac091ac23