ResourceBrowser additions and app icons
|
@ -20,8 +20,16 @@ atdna(atdna_Space.cpp Space.hpp)
|
|||
atdna(atdna_ResourceBrowser.cpp ResourceBrowser.hpp)
|
||||
atdna(atdna_ModelViewer.cpp ModelViewer.hpp)
|
||||
|
||||
add_executable(urde WIN32
|
||||
main.cpp
|
||||
if(WIN32)
|
||||
set(PLAT_SRCS platforms/win/urde.rc)
|
||||
elseif(APPLE)
|
||||
set(PLAT_SRCS platforms/mac/mainicon.icns)
|
||||
set_source_files_properties(platforms/mac/mainicon.icns PROPERTIES
|
||||
MACOSX_PACKAGE_LOCATION Resources)
|
||||
endif()
|
||||
|
||||
add_executable(urde WIN32 MACOSX_BUNDLE
|
||||
main.cpp ${PLAT_SRCS}
|
||||
Space.hpp Space.cpp atdna_Space.cpp
|
||||
SplashScreen.hpp SplashScreen.cpp
|
||||
ResourceBrowser.hpp ResourceBrowser.cpp atdna_ResourceBrowser.cpp
|
||||
|
@ -42,3 +50,6 @@ target_link_libraries(urde
|
|||
LogVisor AthenaLibYaml Boo ${PNG_LIB} squish xxhash Math
|
||||
${ZLIB_LIBRARIES} ${LZO_LIB}
|
||||
${BOO_SYS_LIBS})
|
||||
|
||||
set_target_properties(urde PROPERTIES
|
||||
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/platforms/mac/Info.plist")
|
||||
|
|
|
@ -13,18 +13,19 @@ bool ResourceBrowser::navigateToPath(const HECL::ProjectPath& pathIn)
|
|||
|
||||
m_comps = m_path.getPathComponents();
|
||||
|
||||
HECL::DirectoryEnumerator dEnum(m_path.getAbsolutePath(), HECL::DirectoryEnumerator::Mode::DirsThenFilesSorted,
|
||||
HECL::DirectoryEnumerator dEnum(m_path.getAbsolutePath(),
|
||||
HECL::DirectoryEnumerator::Mode::DirsThenFilesSorted,
|
||||
m_state.sortColumn==State::SortColumn::Size,
|
||||
m_state.sortDir==Specter::SortDirection::Descending,
|
||||
true);
|
||||
m_fileListingBind.updateListing(dEnum);
|
||||
if (m_pathButtons)
|
||||
m_pathButtons->setButtons(m_comps);
|
||||
|
||||
if (m_view)
|
||||
{
|
||||
m_view->m_fileListing.m_view->selectRow(-1);
|
||||
m_view->m_fileListing.m_view->updateData();
|
||||
m_view->m_pathButtons.m_view->setButtons(m_comps);
|
||||
|
||||
m_view->updateSize();
|
||||
}
|
||||
|
||||
|
@ -52,18 +53,33 @@ void ResourceBrowser::pathButtonActivated(size_t idx)
|
|||
navigateToPath(HECL::ProjectPath(*m_vm.project(), dir));
|
||||
}
|
||||
|
||||
void ResourceBrowser::View::mouseDown(const boo::SWindowCoord& coord, boo::EMouseButton button, boo::EModifierKey mod)
|
||||
{
|
||||
m_fileListing.mouseDown(coord, button, mod);
|
||||
}
|
||||
|
||||
void ResourceBrowser::View::mouseUp(const boo::SWindowCoord& coord, boo::EMouseButton button, boo::EModifierKey mod)
|
||||
{
|
||||
m_fileListing.mouseUp(coord, button, mod);
|
||||
}
|
||||
|
||||
void ResourceBrowser::View::mouseMove(const boo::SWindowCoord& coord)
|
||||
{
|
||||
m_fileListing.mouseMove(coord);
|
||||
}
|
||||
|
||||
void ResourceBrowser::View::mouseLeave(const boo::SWindowCoord& coord)
|
||||
{
|
||||
m_fileListing.mouseLeave(coord);
|
||||
}
|
||||
|
||||
void ResourceBrowser::View::resized(const boo::SWindowRect& root, const boo::SWindowRect& sub)
|
||||
{
|
||||
float pf = rootView().viewRes().pixelFactor();
|
||||
|
||||
boo::SWindowRect pathRect = sub;
|
||||
pathRect.location[0] += BROWSER_MARGIN * pf;
|
||||
pathRect.location[1] += pathRect.size[1] - (BROWSER_MARGIN + 20) * pf;
|
||||
m_pathButtons.m_view->resized(root, pathRect);
|
||||
Specter::View::resized(root, sub);
|
||||
m_fileListing.m_view->resized(root, sub);
|
||||
}
|
||||
void ResourceBrowser::View::draw(boo::IGraphicsCommandQueue* gfxQ)
|
||||
{
|
||||
m_pathButtons.m_view->draw(gfxQ);
|
||||
m_fileListing.m_view->draw(gfxQ);
|
||||
}
|
||||
|
||||
|
|
|
@ -167,22 +167,27 @@ class ResourceBrowser : public Space, public Specter::IPathButtonsBinding
|
|||
struct View : Specter::View
|
||||
{
|
||||
ResourceBrowser& m_ro;
|
||||
Specter::ViewChild<std::unique_ptr<Specter::PathButtons>> m_pathButtons;
|
||||
Specter::ViewChild<std::unique_ptr<Specter::Table>> m_fileListing;
|
||||
|
||||
View(ResourceBrowser& ro, Specter::ViewResources& res)
|
||||
: Specter::View(res, ro.m_vm.rootView()), m_ro(ro)
|
||||
{
|
||||
commitResources(res);
|
||||
m_pathButtons.m_view.reset(new Specter::PathButtons(res, *this, ro));
|
||||
m_fileListing.m_view.reset(new Specter::Table(res, *this, &ro.m_fileListingBind, &ro.m_fileListingBind, 3));
|
||||
}
|
||||
|
||||
void mouseDown(const boo::SWindowCoord&, boo::EMouseButton, boo::EModifierKey);
|
||||
void mouseUp(const boo::SWindowCoord&, boo::EMouseButton, boo::EModifierKey);
|
||||
void mouseMove(const boo::SWindowCoord&);
|
||||
void mouseLeave(const boo::SWindowCoord&);
|
||||
|
||||
void resized(const boo::SWindowRect& root, const boo::SWindowRect& sub);
|
||||
void draw(boo::IGraphicsCommandQueue* gfxQ);
|
||||
};
|
||||
std::unique_ptr<View> m_view;
|
||||
|
||||
std::unique_ptr<Specter::PathButtons> m_pathButtons;
|
||||
|
||||
public:
|
||||
ResourceBrowser(ViewManager& vm, Space* parent)
|
||||
: Space(vm, Class::ResourceBrowser, parent),
|
||||
|
@ -222,6 +227,12 @@ public:
|
|||
return new ResourceBrowser(m_vm, parent, *this);
|
||||
}
|
||||
|
||||
void buildToolbarView(Specter::ViewResources &res, Specter::Toolbar &tb)
|
||||
{
|
||||
m_pathButtons.reset(new Specter::PathButtons(res, tb, *this, true));
|
||||
tb.push_back(m_pathButtons.get(), 0);
|
||||
}
|
||||
|
||||
Specter::View* buildContentView(Specter::ViewResources& res)
|
||||
{
|
||||
m_view.reset(new View(*this, res));
|
||||
|
@ -232,6 +243,11 @@ public:
|
|||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
unsigned toolbarUnits() const
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ Specter::View* Space::buildSpaceView(Specter::ViewResources& res)
|
|||
{
|
||||
if (usesToolbar())
|
||||
{
|
||||
m_spaceView.reset(new Specter::Space(res, m_vm.rootView(), *this, Specter::Toolbar::Position::Bottom));
|
||||
m_spaceView.reset(new Specter::Space(res, m_vm.rootView(), *this, Specter::Toolbar::Position::Bottom, toolbarUnits()));
|
||||
Specter::View* sview = buildContentView(res);
|
||||
m_spaceView->setContentView(sview);
|
||||
Specter::Toolbar& tb = *m_spaceView->toolbar();
|
||||
|
@ -25,13 +25,13 @@ Specter::View* Space::buildSpaceView(Specter::ViewResources& res)
|
|||
m_spaceSelectButton.reset(new Specter::Button(res, tb, &m_spaceSelectBind, "", classIcon,
|
||||
Specter::Button::Style::Block,
|
||||
classColor?*classColor:Zeus::CColor::skWhite));
|
||||
tb.push_back(m_spaceSelectButton.get());
|
||||
tb.push_back(m_spaceSelectButton.get(), 0);
|
||||
buildToolbarView(res, tb);
|
||||
return m_spaceView.get();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_spaceView.reset(new Specter::Space(res, m_vm.rootView(), *this, Specter::Toolbar::Position::None));
|
||||
m_spaceView.reset(new Specter::Space(res, m_vm.rootView(), *this, Specter::Toolbar::Position::None, 0));
|
||||
Specter::View* sview = buildContentView(res);
|
||||
m_spaceView->setContentView(sview);
|
||||
return m_spaceView.get();
|
||||
|
|
|
@ -130,6 +130,7 @@ protected:
|
|||
|
||||
/* Structural control */
|
||||
virtual bool usesToolbar() const {return false;}
|
||||
virtual unsigned toolbarUnits() const {return 1;}
|
||||
virtual void buildToolbarView(Specter::ViewResources& res, Specter::Toolbar& tb) {}
|
||||
virtual Specter::View* buildContentView(Specter::ViewResources& res)=0;
|
||||
virtual Specter::View* buildSpaceView(Specter::ViewResources& res);
|
||||
|
@ -359,7 +360,7 @@ public:
|
|||
void buildToolbarView(Specter::ViewResources& res, Specter::Toolbar& tb)
|
||||
{
|
||||
m_button.reset(new Specter::Button(res, tb, m_binding, m_buttonStr));
|
||||
tb.push_back(m_button.get());
|
||||
tb.push_back(m_button.get(), 0);
|
||||
}
|
||||
|
||||
Specter::View* buildContentView(Specter::ViewResources& res)
|
||||
|
|
After Width: | Height: | Size: 637 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 203 KiB |
After Width: | Height: | Size: 7.5 KiB |
|
@ -0,0 +1,9 @@
|
|||
[Desktop Entry]
|
||||
Name=URDE
|
||||
GenericName=Game Data Editor
|
||||
Comment=Edit 3D assets from games by Retro Studios
|
||||
Exec=urde
|
||||
Icon=urde
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Graphics;3DGraphics;
|
|
@ -0,0 +1,30 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>URDE</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>Version BETA</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>2015-2016 Antidote / Jackoalan</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>mainicon.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>io.github.AxioDL.URDE</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>URDE</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>BETA</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>NSApplication</string>
|
||||
<key>NSHighResolutionCapable</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
After Width: | Height: | Size: 92 KiB |
|
@ -0,0 +1,32 @@
|
|||
#include "winver.h"
|
||||
|
||||
IDI_ICON1 ICON DISCARDABLE "mainicon.ico"
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,0,0,0
|
||||
PRODUCTVERSION 1,0,0,0
|
||||
FILEFLAGS 0x0L
|
||||
FILEFLAGSMASK 0x3fL
|
||||
FILEOS 0x00040004L
|
||||
FILETYPE 0x1L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "000004b0"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "Antidote / Jackoalan"
|
||||
VALUE "FileDescription", "URDE"
|
||||
VALUE "FileVersion", "BETA"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2015-2016 Antidote / Jackoalan"
|
||||
VALUE "InternalName", "urde"
|
||||
VALUE "OriginalFilename", "urde.exe"
|
||||
VALUE "ProductName", "URDE"
|
||||
VALUE "ProductVersion", "BETA"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x0, 1200
|
||||
END
|
||||
END
|
|
@ -1 +1 @@
|
|||
Subproject commit 5ee63587e2f7c2b7b015ff9e1752606b3f5fe3cd
|
||||
Subproject commit f81dc3af510f56c5b5c065620859d7dca510d2bf
|