Files
homeassistant_espscreen/components/smart_display/tile_icon_names.h
T
Max Gramser 57c82fdd12 Bring the big climate card to the Guition, with fan and swing on their own card (0.2.47)
App 0.2.47 / firmware 0.2.40:
- guition-4848s040.yaml gets the CYD's climate card: the setpoint between large -/+ keys
  (debounced, hold to repeat) and one row of mode keys in HA's order and colours; the arc,
  scrim, mode pill and climate_number font are gone.
- Fan and swing modes sit right on the card as segmented rows behind their icons, drawn by the
  new climate_card.h (async rebuild, taps through the touch guard and a profile hook). The card
  is laid out per case from one table: no, one or two settings rows, with or without mode keys.
- Both boards hide a mode key row that would hold a single mode and centre the setpoint instead.
- Glyph arrow-oscillating (Home Assistant's swing icon) joins the icon set.

Verified on the Guition over OTA with the owner's air conditioner and with host renders of both
boards; see docs/TEST_RESULTS_0247.md.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 15:55:48 +02:00

203 lines
5.6 KiB
C++

#pragma once
// GENERATED by tools/generate_icons.py from screen_manager/app/tile_icons.py; do not edit.
#include <cstdint>
#include <string>
namespace tile_icon {
struct Named { const char *name; uint32_t codepoint; };
// Every glyph the three icon fonts of both boards carry, by Material Design Icons name.
inline constexpr Named NAMES[] = {
{"lightbulb", 0xF0335},
{"lightbulb-group", 0xF1253},
{"ceiling-light", 0xF0769},
{"chandelier", 0xF1793},
{"lamp", 0xF06B5},
{"floor-lamp", 0xF08DD},
{"desk-lamp", 0xF095F},
{"wall-sconce-flat", 0xF091D},
{"light-recessed", 0xF179B},
{"spotlight-beam", 0xF04C9},
{"led-strip-variant", 0xF1051},
{"outdoor-lamp", 0xF1054},
{"home", 0xF02DC},
{"sofa", 0xF04B9},
{"bed", 0xF02E3},
{"silverware-fork-knife", 0xF0A70},
{"chef-hat", 0xF0B7C},
{"shower", 0xF09A0},
{"bathtub", 0xF1818},
{"toilet", 0xF09AB},
{"desk", 0xF1239},
{"garage", 0xF06D9},
{"fireplace", 0xF0E2E},
{"thermometer", 0xF050F},
{"thermostat", 0xF0393},
{"air-conditioner", 0xF001B},
{"radiator", 0xF0438},
{"heat-pump", 0xF1A43},
{"fire", 0xF0238},
{"snowflake", 0xF0717},
{"water-percent", 0xF058E},
{"fan", 0xF0210},
{"ceiling-fan", 0xF1797},
{"air-purifier", 0xF0D44},
{"molecule-co2", 0xF07E4},
{"weather-sunny", 0xF0599},
{"weather-partly-cloudy", 0xF0595},
{"weather-cloudy", 0xF0590},
{"weather-rainy", 0xF0597},
{"weather-snowy", 0xF0598},
{"weather-windy", 0xF059D},
{"weather-night", 0xF0594},
{"weather-sunset-up", 0xF059C},
{"music-note", 0xF0387},
{"music", 0xF075A},
{"playlist-music", 0xF0CB8},
{"album", 0xF0025},
{"record-player", 0xF099A},
{"spotify", 0xF04C7},
{"radio", 0xF0439},
{"podcast", 0xF0994},
{"speaker", 0xF04C3},
{"speaker-multiple", 0xF0D38},
{"soundbar", 0xF17DB},
{"headphones", 0xF02CB},
{"piano", 0xF067D},
{"guitar-acoustic", 0xF0771},
{"television", 0xF0502},
{"projector", 0xF042E},
{"movie-open", 0xF0FCE},
{"cast", 0xF0118},
{"gamepad-variant", 0xF0297},
{"remote-tv", 0xF0EC5},
{"lock", 0xF033E},
{"lock-open-variant", 0xF0FC6},
{"shield-home", 0xF068A},
{"alarm-light", 0xF078F},
{"bell", 0xF009A},
{"doorbell", 0xF12E6},
{"cctv", 0xF07AE},
{"motion-sensor", 0xF0D91},
{"door-closed", 0xF081B},
{"door-open", 0xF081C},
{"window-closed-variant", 0xF11DB},
{"smoke-detector", 0xF0392},
{"water-alert", 0xF1502},
{"washing-machine", 0xF072A},
{"tumble-dryer", 0xF0917},
{"dishwasher", 0xF0AAC},
{"fridge", 0xF0290},
{"stove", 0xF04DE},
{"microwave", 0xF0C99},
{"toaster-oven", 0xF0CD3},
{"coffee-maker", 0xF109F},
{"kettle", 0xF05FA},
{"robot-vacuum", 0xF070D},
{"robot-mower", 0xF11F7},
{"printer-3d", 0xF042B},
{"power-plug", 0xF06A5},
{"power-socket-eu", 0xF07E7},
{"laptop", 0xF0322},
{"router-wireless", 0xF0469},
{"flash", 0xF0241},
{"solar-power", 0xF0A72},
{"solar-panel", 0xF0D9B},
{"home-battery", 0xF1901},
{"battery-high", 0xF12A3},
{"ev-station", 0xF05F1},
{"car-electric", 0xF0B6C},
{"meter-electric", 0xF1A57},
{"meter-gas", 0xF1A59},
{"water", 0xF058C},
{"water-boiler", 0xF0F92},
{"gauge", 0xF029A},
{"window-shutter", 0xF111C},
{"window-shutter-open", 0xF111E},
{"blinds", 0xF00AC},
{"blinds-open", 0xF1011},
{"roller-shade-closed", 0xF1A6C},
{"curtains", 0xF1846},
{"curtains-closed", 0xF1847},
{"awning-outline", 0xF1B88},
{"flower", 0xF024A},
{"tree", 0xF0531},
{"sprout", 0xF0E66},
{"grass", 0xF1510},
{"sprinkler", 0xF105F},
{"pool", 0xF0606},
{"grill", 0xF0E45},
{"mailbox", 0xF06EE},
{"trash-can", 0xF0A79},
{"recycle", 0xF044C},
{"dog", 0xF0A43},
{"cat", 0xF011B},
{"account", 0xF0004},
{"account-group", 0xF0849},
{"account-child", 0xF0A89},
{"home-account", 0xF0826},
{"sleep", 0xF04B2},
{"run", 0xF070E},
{"briefcase", 0xF00D6},
{"car", 0xF010B},
{"bike", 0xF00A3},
{"airplane", 0xF001D},
{"map-marker", 0xF034E},
{"power", 0xF0425},
{"toggle-switch", 0xF0521},
{"gesture-tap-button", 0xF12A8},
{"play", 0xF040A},
{"script-text", 0xF0BC2},
{"palette", 0xF03D8},
{"alarm", 0xF0020},
{"clock-outline", 0xF0150},
{"timer-outline", 0xF051B},
{"calendar", 0xF00ED},
{"bell-ring", 0xF009E},
{"heart", 0xF02D1},
{"alert-outline", 0xF002A},
{"cog", 0xF0493},
{"broom", 0xF00E2},
{"alert-circle-outline", 0xF05D6},
{"check", 0xF012C},
{"pause", 0xF03E4},
{"stop", 0xF04DB},
{"skip-next", 0xF04AD},
{"skip-previous", 0xF04AE},
{"volume-high", 0xF057E},
{"volume-off", 0xF0581},
{"arrow-up", 0xF005D},
{"arrow-down", 0xF0045},
{"arrow-expand-horizontal", 0xF084E},
{"arrow-collapse-horizontal", 0xF084C},
{"home-map-marker", 0xF05F8},
{"plus", 0xF0415},
{"minus", 0xF0374},
{"chevron-left", 0xF0141},
{"chevron-right", 0xF0142},
{"close", 0xF0156},
{"arrow-left", 0xF004D},
{"sun-snowflake-variant", 0xF1A79},
{"thermostat-auto", 0xF1B17},
{"weather-fog", 0xF0591},
{"weather-hail", 0xF0592},
{"weather-lightning", 0xF0593},
{"weather-lightning-rainy", 0xF067E},
{"weather-pouring", 0xF0596},
{"weather-snowy-rainy", 0xF067F},
{"weather-sunset-down", 0xF059B},
{"dots-horizontal", 0xF01D8},
{"arrow-oscillating", 0xF1C91},
};
inline constexpr size_t NAME_COUNT = sizeof(NAMES) / sizeof(NAMES[0]);
// Codepoint of a name the fonts carry; 0 for any other name.
inline uint32_t named(const std::string &name) {
for (const auto &entry : NAMES) if (name == entry.name) return entry.codepoint;
return 0;
}
// True when the fonts carry this codepoint, so a label can draw it.
inline bool carried(uint32_t codepoint) {
for (const auto &entry : NAMES) if (entry.codepoint == codepoint) return true;
return false;
}
} // namespace tile_icon