2025-12-25 17:18:28 +03:00
|
|
|
#pragma once
|
|
|
|
|
#include <unordered_set>
|
|
|
|
|
#include <Helpers/NetworkingObjects/NetObjOrderedList.hpp>
|
|
|
|
|
#include "../../GUIStuff/Elements/TreeListing.hpp"
|
|
|
|
|
#include "DrawingProgramLayerListItem.hpp"
|
|
|
|
|
|
|
|
|
|
class World;
|
|
|
|
|
class DrawingProgramLayerManager;
|
|
|
|
|
|
|
|
|
|
class DrawingProgramLayerManagerGUI {
|
|
|
|
|
public:
|
|
|
|
|
DrawingProgramLayerManagerGUI(DrawingProgramLayerManager& layerManager);
|
|
|
|
|
void refresh_gui_data();
|
2025-12-25 19:37:41 +03:00
|
|
|
void setup_list_gui(const std::string& id, bool& hoveringOverDropdown);
|
2025-12-25 17:18:28 +03:00
|
|
|
private:
|
2025-12-30 19:46:08 +03:00
|
|
|
std::optional<NetworkingObjects::NetObjOrderedListIterator<DrawingProgramLayerListItem>> try_to_create_in_proper_position(DrawingProgramLayerListItem* newItem);
|
|
|
|
|
NetworkingObjects::NetObjOrderedListIterator<DrawingProgramLayerListItem> create_in_proper_position(DrawingProgramLayerListItem* newItem);
|
2025-12-25 17:18:28 +03:00
|
|
|
|
|
|
|
|
GUIStuff::TreeListing::SelectionData selectionData;
|
|
|
|
|
std::unordered_set<NetworkingObjects::NetObjID> oldSelection;
|
|
|
|
|
std::string nameToEdit;
|
|
|
|
|
std::string nameForNew;
|
|
|
|
|
float alphaValToEdit = 0.0f;
|
2025-12-25 19:37:41 +03:00
|
|
|
size_t blendModeValToEdit = 0;
|
2025-12-25 17:18:28 +03:00
|
|
|
|
|
|
|
|
DrawingProgramLayerManager& layerMan;
|
|
|
|
|
};
|