Files
comaps/libs/indexer/map_style.cpp
Yannik Bloscheck 94e20d437d WIP: Modes
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>

m

Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2026-01-20 18:01:07 +01:00

108 lines
3.5 KiB
C++

#include "indexer/map_style.hpp"
#include "base/assert.hpp"
MapStyle const kDefaultMapStyle = MapStyleDefaultLight;
MapStyle MapStyleFromSettings(std::string const & str)
{
// MapStyleMerged is service style. It's unavailable for users.
if (str == "MapStyleDefaultLight")
return MapStyleDefaultLight;
else if (str == "MapStyleDefaultDark")
return MapStyleDefaultDark;
else if (str == "MapStyleVehicleLight")
return MapStyleVehicleLight;
else if (str == "MapStyleVehicleDark")
return MapStyleVehicleDark;
else if (str == "MapStyleHikingLight")
return MapStyleHikingLight;
else if (str == "MapStyleHikingDark")
return MapStyleHikingDark;
else if (str == "MapStyleCyclingLight")
return MapStyleCyclingLight;
else if (str == "MapStyleCyclingDark")
return MapStyleCyclingDark;
else if (str == "MapStyleDrivingLight")
return MapStyleDrivingLight;
else if (str == "MapStyleDrivingDark")
return MapStyleDrivingDark;
else if (str == "MapStyleDrivingLight")
return MapStylePublicTransportLight;
else if (str == "MapStylePublicTransportDark")
return MapStylePublicTransportDark;
return kDefaultMapStyle;
}
std::string MapStyleToString(MapStyle mapStyle)
{
switch (mapStyle)
{
case MapStyleDefaultDark: return "MapStyleDefaultDark";
case MapStyleDefaultLight: return "MapStyleDefaultLight";
case MapStyleMerged: return "MapStyleMerged";
case MapStyleVehicleDark: return "MapStyleVehicleDark";
case MapStyleVehicleLight: return "MapStyleVehicleLight";
case MapStyleHikingDark: return "MapStyleHikingDark";
case MapStyleHikingLight: return "MapStyleHikingLight";
case MapStyleCyclingDark: return "MapStyleCyclingDark";
case MapStyleCyclingLight: return "MapStyleCyclingLight";
case MapStyleDrivingDark: return "MapStyleDrivingDark";
case MapStyleDrivingLight: return "MapStyleDrivingLight";
case MapStylePublicTransportDark: return "MapStylePublicTransportDark";
case MapStylePublicTransportLight: return "MapStylePublicTransportLight";
case MapStyleCount: break;
}
ASSERT(false, ());
return std::string();
}
std::string DebugPrint(MapStyle mapStyle)
{
return MapStyleToString(mapStyle);
}
bool MapStyleIsDark(MapStyle mapStyle)
{
for (auto const darkStyle : {MapStyleDefaultDark, MapStyleVehicleDark, MapStyleHikingDark, MapStyleCyclingDark, MapStyleDrivingDark, MapStylePublicTransportDark})
if (mapStyle == darkStyle)
return true;
return false;
}
MapStyle GetDarkMapStyleVariant(MapStyle mapStyle)
{
if (MapStyleIsDark(mapStyle) || mapStyle == MapStyleMerged)
return mapStyle;
switch (mapStyle)
{
case MapStyleDefaultLight: return MapStyleDefaultDark;
case MapStyleVehicleLight: return MapStyleVehicleDark;
case MapStyleHikingLight: return MapStyleHikingDark;
case MapStyleCyclingLight: return MapStyleCyclingDark;
case MapStyleDrivingLight: return MapStyleDrivingDark;
case MapStylePublicTransportLight: return MapStylePublicTransportDark;
default: CHECK(false, ()); return MapStyleDefaultDark;
}
}
MapStyle GetLightMapStyleVariant(MapStyle mapStyle)
{
if (!MapStyleIsDark(mapStyle))
return mapStyle;
switch (mapStyle)
{
case MapStyleDefaultDark: return MapStyleDefaultLight;
case MapStyleVehicleDark: return MapStyleVehicleLight;
case MapStyleHikingDark: return MapStyleHikingLight;
case MapStyleCyclingDark: return MapStyleCyclingLight;
case MapStyleDrivingDark: return MapStyleDrivingLight;
case MapStylePublicTransportDark: return MapStylePublicTransportLight;
default: CHECK(false, ()); return MapStyleDefaultLight;
}
}