#pragma once #include #include #include "../../GUIStuff/Elements/TreeListing.hpp" #include "DrawingProgramLayerListItem.hpp" #include "SerializedBlendMode.hpp" class World; class DrawingProgramLayerManager; class DrawingProgramLayerManagerGUI { public: DrawingProgramLayerManagerGUI(DrawingProgramLayerManager& layerManager); void refresh_gui_data(); void setup_list_gui(const char* id, bool& hoveringOverDropdown); private: std::optional>> try_to_create_in_proper_position(DrawingProgramLayerListItem* newItem); std::pair> create_in_proper_position(DrawingProgramLayerListItem* newItem); NetworkingObjects::NetObjOrderedListIterator create_layer(DrawingProgramLayerListItem* newItem); void remove_layer(const NetworkingObjects::NetObjID& parentID, const NetworkingObjects::NetObjID& objectID); void editing_layer_check(); std::unordered_set oldSelection; std::string nameToEdit; std::string nameForNew; float alphaValToEdit = 0.0f; size_t blendModeValToEdit = 0; std::optional editingData; DrawingProgramLayerManager& layerMan; };