Added bookmark list item
This commit is contained in:
parent
4640158343
commit
8defbe7569
4 changed files with 108 additions and 1 deletions
|
|
@ -50,6 +50,7 @@ set(sources "src/main.cpp"
|
|||
"src/FileHelpers.cpp"
|
||||
"src/BookmarkManager.cpp"
|
||||
"src/VersionConstants.cpp"
|
||||
"src/Bookmarks/BookmarkListItem.cpp"
|
||||
"src/ResourceDisplay/ResourceDisplay.cpp"
|
||||
"src/ResourceDisplay/SvgResourceDisplay.cpp"
|
||||
"src/ResourceDisplay/ImageResourceDisplay.cpp"
|
||||
|
|
|
|||
75
src/Bookmarks/BookmarkListItem.cpp
Normal file
75
src/Bookmarks/BookmarkListItem.cpp
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
#include "BookmarkListItem.hpp"
|
||||
#include <cereal/types/string.hpp>
|
||||
|
||||
using namespace NetworkingObjects;
|
||||
|
||||
BookmarkListItem::BookmarkListItem() {}
|
||||
|
||||
BookmarkListItem::BookmarkListItem(NetworkingObjects::NetObjManager& netObjMan, const std::string& initName, bool isFolder, const BookmarkData& initBookmarkData) {
|
||||
name = initName;
|
||||
if(isFolder)
|
||||
folderList = netObjMan.make_obj<NetworkingObjects::NetObjOrderedList<BookmarkListItem>>();
|
||||
else
|
||||
bookmarkData = std::make_unique<BookmarkData>(initBookmarkData);
|
||||
}
|
||||
|
||||
bool BookmarkListItem::is_folder() const {
|
||||
return folderList;
|
||||
}
|
||||
|
||||
const BookmarkData& BookmarkListItem::get_bookmark_data() const {
|
||||
return *bookmarkData;
|
||||
}
|
||||
|
||||
const NetObjOwnerPtr<NetObjOrderedList<BookmarkListItem>>& BookmarkListItem::get_folder_list() const {
|
||||
return folderList;
|
||||
}
|
||||
|
||||
const std::string& BookmarkListItem::get_name() const {
|
||||
return name;
|
||||
}
|
||||
|
||||
void BookmarkListItem::set_name(const NetworkingObjects::NetObjTemporaryPtr<BookmarkListItem>& o, const std::string& newName) {
|
||||
o->name = newName;
|
||||
o.send_update_to_all(RELIABLE_COMMAND_CHANNEL, [](const NetObjTemporaryPtr<BookmarkListItem>& o, cereal::PortableBinaryOutputArchive& a) {
|
||||
a(o->name);
|
||||
});
|
||||
}
|
||||
|
||||
void BookmarkListItem::register_class(NetObjManager& netObjMan) {
|
||||
netObjMan.register_class<BookmarkListItem, BookmarkListItem, BookmarkListItem, BookmarkListItem>({
|
||||
.writeConstructorFuncClient = write_constructor_data,
|
||||
.readConstructorFuncClient = read_constructor_data,
|
||||
.readUpdateFuncClient = [](const NetObjTemporaryPtr<BookmarkListItem>& o, cereal::PortableBinaryInputArchive& a, const std::shared_ptr<NetServer::ClientData>&) {
|
||||
a(o->name);
|
||||
},
|
||||
.writeConstructorFuncServer = write_constructor_data,
|
||||
.readConstructorFuncServer = read_constructor_data,
|
||||
.readUpdateFuncServer = [](const NetObjTemporaryPtr<BookmarkListItem>& o, cereal::PortableBinaryInputArchive& a, const std::shared_ptr<NetServer::ClientData>&) {
|
||||
a(o->name);
|
||||
o.send_server_update_to_all_clients(RELIABLE_COMMAND_CHANNEL, [](const NetObjTemporaryPtr<BookmarkListItem>& o, cereal::PortableBinaryOutputArchive& a) {
|
||||
a(o->name);
|
||||
});
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
void BookmarkListItem::write_constructor_data(const NetObjTemporaryPtr<BookmarkListItem>& o, cereal::PortableBinaryOutputArchive& a) {
|
||||
a(o->name, o->is_folder());
|
||||
if(o->is_folder())
|
||||
o->folderList.write_create_message(a);
|
||||
else
|
||||
a(*o->bookmarkData);
|
||||
}
|
||||
|
||||
void BookmarkListItem::read_constructor_data(const NetworkingObjects::NetObjTemporaryPtr<BookmarkListItem>& o, cereal::PortableBinaryInputArchive& a, const std::shared_ptr<NetServer::ClientData>& c) {
|
||||
a(o->name);
|
||||
bool isFolder;
|
||||
a(isFolder);
|
||||
if(isFolder)
|
||||
o->folderList = o.get_obj_man()->read_create_message<NetworkingObjects::NetObjOrderedList<BookmarkListItem>>(a, c);
|
||||
else {
|
||||
o->bookmarkData = std::make_unique<BookmarkData>();
|
||||
a(*o->bookmarkData);
|
||||
}
|
||||
}
|
||||
31
src/Bookmarks/BookmarkListItem.hpp
Normal file
31
src/Bookmarks/BookmarkListItem.hpp
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
#pragma once
|
||||
#include <Helpers/NetworkingObjects/NetObjOwnerPtr.hpp>
|
||||
#include <Helpers/NetworkingObjects/NetObjOrderedList.hpp>
|
||||
#include <string>
|
||||
#include "../CoordSpaceHelper.hpp"
|
||||
|
||||
struct BookmarkData {
|
||||
CoordSpaceHelper coords;
|
||||
Vector<int32_t, 2> windowSize;
|
||||
template <class Archive> void serialize(Archive& a) {
|
||||
a(coords, windowSize);
|
||||
}
|
||||
};
|
||||
|
||||
class BookmarkListItem {
|
||||
public:
|
||||
BookmarkListItem();
|
||||
BookmarkListItem(NetworkingObjects::NetObjManager& netObjMan, const std::string& initName, bool isFolder, const BookmarkData& initBookmarkData);
|
||||
bool is_folder() const;
|
||||
const BookmarkData& get_bookmark_data() const;
|
||||
const NetworkingObjects::NetObjOwnerPtr<NetworkingObjects::NetObjOrderedList<BookmarkListItem>>& get_folder_list() const;
|
||||
const std::string& get_name() const;
|
||||
static void register_class(NetworkingObjects::NetObjManager& netObjMan);
|
||||
static void set_name(const NetworkingObjects::NetObjTemporaryPtr<BookmarkListItem>& o, const std::string& newName); // Set once after editing is finished
|
||||
private:
|
||||
static void write_constructor_data(const NetworkingObjects::NetObjTemporaryPtr<BookmarkListItem>& o, cereal::PortableBinaryOutputArchive& a);
|
||||
static void read_constructor_data(const NetworkingObjects::NetObjTemporaryPtr<BookmarkListItem>& o, cereal::PortableBinaryInputArchive& a, const std::shared_ptr<NetServer::ClientData>& c);
|
||||
NetworkingObjects::NetObjOwnerPtr<NetworkingObjects::NetObjOrderedList<BookmarkListItem>> folderList;
|
||||
std::unique_ptr<BookmarkData> bookmarkData;
|
||||
std::string name;
|
||||
};
|
||||
|
|
@ -20,7 +20,7 @@ void CanvasTheme::init() {
|
|||
|
||||
SkColor4f CanvasTheme::get_back_color() const {
|
||||
if(!backColor)
|
||||
return SkColor4f{DEFAULT_CANVAS_BACKGROUND_COLOR.x(), DEFAULT_CANVAS_BACKGROUND_COLOR.y(), DEFAULT_CANVAS_BACKGROUND_COLOR.z(), 1.0f};
|
||||
return SkColor4f{world.main.defaultCanvasBackgroundColor.x(), world.main.defaultCanvasBackgroundColor.y(), world.main.defaultCanvasBackgroundColor.z(), 1.0f};
|
||||
else
|
||||
return SkColor4f{backColor->c.x(), backColor->c.y(), backColor->c.z(), 1.0f};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue