#ifndef MAP_MENU_HPP_
#define MAP_MENU_HPP_

#include <Entity/PhysicsEntity/CameraEntity/Player/Player.hpp>
#include <Item/IEquipment.hpp>
#include <MapTool/MapPanTool/MapPanTool.hpp>
#include <MapTool/MapTool.hpp>
#include <Widget/Layout/CompoundWidget/CompoundWidget.hpp>
#include <Widget/TabList/TabList.hpp>

class WorldDisplay;
class Player;

class MapMenu final : public CompoundWidget
{
private:
    RemoteMap &remoteMap;
    Player &player;

    MapTool *tool = &MapPanTool::instance;

    static Material& getLevelIcon(IEquipment::MapLevel level);
    Widget* makePinRow(size_t index);
    TabList::Page* makePinsPage(IEquipment::MapLevel level);

public:
    MapMenu(
        WorldDisplay &worldDisplay,
        IEquipment::MapLevel level,
        RemoteMap &remoteMap
    );
};

#endif