#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; } }