"""Иконки Nerd Font (JetBrains Mono NF). Nerd Font добавляет к обычному шрифту иконочные глифы в зонах частного использования Unicode. Мы берём только глифы из BMP (U+E000–U+F8FF): набор Material Design Icons в Nerd Font лежит выше U+FFFF, а Dear ImGui по умолчанию собран с 16-битным ``ImWchar`` и такие символы не покажет. Используемые наборы: * Font Awesome 4 — U+F000…U+F2E0 * Devicons — U+E700…U+E7C5 * Codicons — U+EA60…U+EBEB """ from __future__ import annotations from ..core.model import Category # --- общие --------------------------------------------------------------- SEARCH = "" # лупа STOP = "" # стоп REFRESH = "" # обновить TRASH = "" # корзина BROOM = "" # магия/очистка SAVE = "" # дискета FOLDER_OPEN = "" # открытая папка FOLDER = "" # папка COPY = "" # копия FILTER = "" # фильтр GEAR = "" # шестерёнка INFO = "" # инфо WARNING = "" # треугольник с восклицательным знаком CHECK = "" # галочка CLOSE = "" # крестик LIGHTBULB = "" # лампочка — рекомендация BOLT = "" # молния — быстрое действие SHIELD = "" # щит — безопасность HISTORY = "" # история CHART = "" # столбики HDD = "" # диск LIST = "" # список PLUS = "" MINUS = "" UNDO = "" SUN = "" MOON = "" EXPAND = "" COLLAPSE = "" CHEVRON_RIGHT = "" CUBE = "" ARCHIVE = "" WRENCH = "" FILE_TEXT = "" GLOBE = "" GAMEPAD = "" WINDOWS = "" COGS = "" ELEPHANT = "" # архивный файл — «тяжёлые файлы» CLOCK = "" DATABASE = "" POWER = "" # --- иконки категорий ---------------------------------------------------- CATEGORY: dict[Category, str] = { Category.WINDOWS: WINDOWS, Category.BROWSERS: GLOBE, Category.DEV_CACHE: COGS, Category.DEV_PROJECT: CUBE, Category.APPS: GAMEPAD, Category.LOGS: FILE_TEXT, Category.PACKAGE_MANAGERS: ARCHIVE, Category.BIG_FILES: ELEPHANT, Category.DUPLICATES: COPY, Category.PROGRAMS: FOLDER, } def cat(category: Category) -> str: """Иконка категории с отступом, готовая к подстановке в подпись.""" return CATEGORY.get(category, LIST) + " " def btn(icon: str, label: str) -> str: """Подпись кнопки: иконка, два пробела, текст.""" return f"{icon} {label}"