#pragma once #include #include #include #include "../GUIStuff/Elements/TreeListing.hpp" #include "BookmarkListItem.hpp" #include class World; class BookmarkManager { public: BookmarkManager(World& w); void server_init_no_file(); void scale_up(const WorldScalar& scaleUpAmount); void setup_list_gui(const std::string& id); void refresh_gui_data(); void save_file(cereal::PortableBinaryOutputArchive& a) const; void load_file(cereal::PortableBinaryInputArchive& a, VersionNumber version); NetworkingObjects::NetObjOwnerPtr bookmarkListRoot; private: NetworkingObjects::NetObjOrderedListIterator create_in_proper_position(BookmarkListItem* newItem); std::optional> try_to_create_in_proper_position(BookmarkListItem* newItem); GUIStuff::TreeListing::SelectionData selectionData; std::unordered_set oldSelection; std::string nameToEdit; std::string nameForNew; friend class BookmarkListItem; World& world; };