From fe17d459a54ab072c700aa76f2d15d51c5165d4f Mon Sep 17 00:00:00 2001 From: Flyinghead Date: Fri, 3 May 2024 20:09:31 +0200 Subject: [PATCH] ui: achievements list, new pause menu Fix threading issue when hashing disk for RA. Protect cacheMap with mutex. Achievement current challenges displayed as small icons. Embed FontAwesome symbols. New pause menu. Issue #761 --- CMakeLists.txt | 6 +- core/achievements/achievements.cpp | 265 ++++-- core/achievements/achievements.h | 26 + core/emulator.h | 1 + core/nullDC.cpp | 30 + core/oslib/storage.cpp | 3 +- core/rend/CustomTexture.cpp | 2 +- core/rend/IconsFontAwesome6.h | 1406 ++++++++++++++++++++++++++++ core/rend/gui.cpp | 313 ++++--- core/rend/gui.h | 3 +- core/rend/gui_achievements.cpp | 229 +++-- core/rend/gui_achievements.h | 13 +- core/rend/gui_util.cpp | 63 +- core/rend/gui_util.h | 90 +- core/rend/imgui_driver.cpp | 56 ++ core/rend/imgui_driver.h | 34 +- core/rend/mainui.cpp | 2 +- fonts/fa-solid-900.ttf.zip | Bin 0 -> 173936 bytes 18 files changed, 2207 insertions(+), 335 deletions(-) create mode 100644 core/rend/IconsFontAwesome6.h create mode 100644 core/rend/imgui_driver.cpp create mode 100644 fonts/fa-solid-900.ttf.zip diff --git a/CMakeLists.txt b/CMakeLists.txt index dd658157a..263d0b776 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -706,7 +706,7 @@ target_sources(${PROJECT_NAME} PRIVATE core/deps/lzma/7zArcIn.c core/deps/lzma/7 add_subdirectory(core/deps/libelf) target_link_libraries(${PROJECT_NAME} PRIVATE elf) if(NOT LIBRETRO) - target_compile_definitions(${PROJECT_NAME} PRIVATE IMGUI_DISABLE_DEMO_WINDOWS) + target_compile_definitions(${PROJECT_NAME} PRIVATE IMGUI_DISABLE_DEMO_WINDOWS IMGUI_DEFINE_MATH_OPERATORS) target_include_directories(${PROJECT_NAME} PRIVATE core/deps/imgui core/deps/imgui/backends) target_sources(${PROJECT_NAME} PRIVATE core/deps/imgui/imgui.cpp @@ -1015,7 +1015,8 @@ cmrc_add_resources(flycast-resources if(NOT LIBRETRO) cmrc_add_resources(flycast-resources fonts/Roboto-Medium.ttf.zip - fonts/Roboto-Regular.ttf.zip) + fonts/Roboto-Regular.ttf.zip + fonts/fa-solid-900.ttf.zip) if(ANDROID) cmrc_add_resources(flycast-resources WHENCE resources @@ -1292,6 +1293,7 @@ target_sources(${PROJECT_NAME} PRIVATE if(NOT LIBRETRO) target_sources(${PROJECT_NAME} PRIVATE core/rend/game_scanner.h + core/rend/imgui_driver.cpp core/rend/imgui_driver.h core/rend/gui.cpp core/rend/gui.h diff --git a/core/achievements/achievements.cpp b/core/achievements/achievements.cpp index 6d544e184..19cb7781d 100644 --- a/core/achievements/achievements.cpp +++ b/core/achievements/achievements.cpp @@ -36,6 +36,7 @@ #include #include #include +#include #include namespace achievements @@ -51,6 +52,9 @@ public: std::future login(const char *username, const char *password); void logout(); bool isLoggedOn() const { return loggedOn; } + bool isActive() const { return active; } + Game getCurrentGame(); + std::vector getAchievementList(); void serialize(Serializer& ser); void deserialize(Deserializer& deser); @@ -66,6 +70,7 @@ private: void resumeGame(); void loadCache(); std::string getOrDownloadImage(const char *url); + std::tuple getCachedImage(const char *url); void diskChange(); static void clientLoginWithTokenCallback(int result, const char *error_message, rc_client_t *client, void *userdata); @@ -96,6 +101,8 @@ private: cResetEvent resetEvent; std::string cachePath; std::unordered_map cacheMap; + std::mutex cacheMutex; + std::future asyncImageDownload; }; bool init() @@ -123,6 +130,21 @@ bool isLoggedOn() return Achievements::Instance().isLoggedOn(); } +bool isActive() +{ + return Achievements::Instance().isActive(); +} + +Game getCurrentGame() +{ + return Achievements::Instance().getCurrentGame(); +} + +std::vector getAchievementList() +{ + return Achievements::Instance().getAchievementList(); +} + void serialize(Serializer& ser) { Achievements::Instance().serialize(ser); @@ -224,39 +246,63 @@ void Achievements::loadCache() continue; std::string s = get_file_basename(name); u64 v = strtoull(s.c_str(), nullptr, 16); + std::lock_guard _(cacheMutex); cacheMap[v] = name; } + closedir(dir); + } +} + +static u64 hashUrl(const char *url) { + return XXH64(url, strlen(url), 13); +} + +std::tuple Achievements::getCachedImage(const char *url) +{ + u64 hash = hashUrl(url); + std::lock_guard _(cacheMutex); + auto it = cacheMap.find(hash); + if (it != cacheMap.end()) { + return make_tuple(cachePath + it->second, true); + } + else + { + std::stringstream stream; + stream << std::hex << hash << ".png"; + return make_tuple(cachePath + stream.str(), false); } } std::string Achievements::getOrDownloadImage(const char *url) { - u64 hash = XXH64(url, strlen(url), 13); - auto it = cacheMap.find(hash); - if (it != cacheMap.end()) - return cachePath + it->second; + u64 hash = hashUrl(url); + { + std::lock_guard _(cacheMutex); + auto it = cacheMap.find(hash); + if (it != cacheMap.end()) + return cachePath + it->second; + } std::vector content; std::string content_type; int rc = http::get(url, content, content_type); if (!http::success(rc)) return {}; std::stringstream stream; - stream << std::hex << hash; - if (content_type == "image/jpeg") - stream << ".jpg"; - else - stream << ".png"; - std::string path = cachePath + stream.str(); - FILE *f = nowide::fopen(path.c_str(), "wb"); + stream << std::hex << hash << ".png"; + std::string localPath = cachePath + stream.str(); + FILE *f = nowide::fopen(localPath.c_str(), "wb"); if (f == nullptr) { - WARN_LOG(COMMON, "Can't save image to %s", path.c_str()); + WARN_LOG(COMMON, "Can't save image to %s", localPath.c_str()); return {}; } fwrite(content.data(), 1, content.size(), f); fclose(f); - cacheMap[hash] = stream.str(); - DEBUG_LOG(COMMON, "RA: downloaded %s to %s", url, path.c_str()); - return path; + { + std::lock_guard _(cacheMutex); + cacheMap[hash] = stream.str(); + } + DEBUG_LOG(COMMON, "RA: downloaded %s to %s", url, localPath.c_str()); + return localPath; } void Achievements::term() @@ -264,6 +310,8 @@ void Achievements::term() if (rc_client == nullptr) return; unloadGame(); + if (asyncImageDownload.valid()) + asyncImageDownload.get(); rc_client_destroy(rc_client); rc_client = nullptr; } @@ -507,15 +555,26 @@ void Achievements::handleUnlockEvent(const rc_client_event_t *event) void Achievements::handleAchievementChallengeIndicatorShowEvent(const rc_client_event_t *event) { - // TODO there might be more than one. Need to display an icon. - //std::string msg = "Challenge: " + std::string(event->achievement->title); - //gui_display_notification(msg.c_str(), 10000); INFO_LOG(COMMON, "RA: Challenge: %s", event->achievement->title); + char url[128]; + int rc = rc_client_achievement_get_image_url(event->achievement, RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED, url, sizeof(url)); + if (rc == RC_OK) + { + std::string image = getOrDownloadImage(url); + notifier.showChallenge(image); + } } void Achievements::handleAchievementChallengeIndicatorHideEvent(const rc_client_event_t *event) { - // TODO + INFO_LOG(COMMON, "RA: Challenge hidden: %s", event->achievement->title); + char url[128]; + int rc = rc_client_achievement_get_image_url(event->achievement, RC_CLIENT_ACHIEVEMENT_STATE_UNLOCKED, url, sizeof(url)); + if (rc == RC_OK) + { + std::string image = getOrDownloadImage(url); + notifier.hideChallenge(image); + } } void Achievements::handleGameCompleted(const rc_client_event_t *event) @@ -551,6 +610,7 @@ void Achievements::handleUpdateAchievementProgress(const rc_client_event_t *even notifier.notify(Notification::Progress, image, event->achievement->measured_progress); } +static Disc *hashDisk; static bool add150; static void *cdreader_open_track(const char* path, u32 track) @@ -558,54 +618,31 @@ static void *cdreader_open_track(const char* path, u32 track) DEBUG_LOG(COMMON, "RA: cdreader_open_track %s track %d", path, track); if (track == RC_HASH_CDTRACK_FIRST_DATA) { - u32 toc[102]; - libGDR_GetToc(toc, SingleDensity); - for (int i = 0; i < 99; i++) - if (toc[i] != 0xffffffff) - { - if (((toc[i] >> 4) & 0xf) & 4) - return reinterpret_cast(i + 1); - } - if (libGDR_GetDiscType() == GdRom) - { - libGDR_GetToc(toc, DoubleDensity); - for (int i = 0; i < 99; i++) - if (toc[i] != 0xffffffff) - { - if (((toc[i] >> 4) & 0xf) & 4) - return reinterpret_cast(i + 1); - } - } - } - u32 start, end; - if (!libGDR_GetTrack(track, start, end)) + for (const Track& track : hashDisk->tracks) + if (track.isDataTrack()) + return const_cast(&track); return nullptr; + } + if (track <= hashDisk->tracks.size()) + return const_cast(&hashDisk->tracks[track - 1]); else - return reinterpret_cast(track); + return nullptr; } static size_t cdreader_read_sector(void* track_handle, u32 sector, void* buffer, size_t requested_bytes) { - //DEBUG_LOG(COMMON, "RA: cdreader_read_sector track %zd sec %d num %zd", reinterpret_cast(track_handle), sector, requested_bytes); if (requested_bytes == 2048) // add 150 sectors to FAD corresponding to files + // FIXME get rid of this add150 = true; - if (add150) // FIXME how to get rid of this? + //DEBUG_LOG(COMMON, "RA: cdreader_read_sector track %p sec %d+%d num %zd", track_handle, sector, add150 ? 150 : 0, requested_bytes); + if (add150) sector += 150; - u32 count = requested_bytes; - u32 secNum = count / 2048; - if (secNum > 0) - { - libGDR_ReadSector((u8 *)buffer, sector, secNum, 2048); - buffer = (u8 *)buffer + secNum * 2048; - count -= secNum * 2048; - } - if (count > 0) - { - u8 locbuf[2048]; - libGDR_ReadSector(locbuf, sector + secNum, 1, 2048); - memcpy(buffer, locbuf, count); - } + u8 locbuf[2048]; + hashDisk->ReadSectors(sector, 1, locbuf, 2048); + requested_bytes = std::min(requested_bytes, 2048); + memcpy(buffer, locbuf, requested_bytes); + return requested_bytes; } @@ -615,12 +652,9 @@ static void cdreader_close_track(void* track_handle) static u32 cdreader_first_track_sector(void* track_handle) { - u32 trackNum = reinterpret_cast(track_handle); - u32 start, end; - if (!libGDR_GetTrack(trackNum, start, end)) - return 0; - DEBUG_LOG(COMMON, "RA: cdreader_first_track_sector track %d -> %d", trackNum, start); - return start; + Track& track = *static_cast(track_handle); + DEBUG_LOG(COMMON, "RA: cdreader_first_track_sector track %p -> %d", track_handle, track.StartFAD); + return track.StartFAD; } std::string Achievements::getGameHash() @@ -629,7 +663,13 @@ std::string Achievements::getGameHash() { const u32 diskType = libGDR_GetDiscType(); if (diskType == NoDisk || diskType == Open) - return ""; + return {}; + // Reopen the disk locally to avoid threading issues (CHD) + try { + hashDisk = OpenDisc(settings.content.path); + } catch (const FlycastException& e) { + return {}; + } add150 = false; rc_hash_cdreader hooks = { cdreader_open_track, @@ -641,7 +681,7 @@ std::string Achievements::getGameHash() rc_hash_init_error_message_callback([](const char *msg) { WARN_LOG(COMMON, "cdreader: %s", msg); }); -#ifndef NDEBUG +#if !defined(NDEBUG) || defined(DEBUGFAST) rc_hash_init_verbose_message_callback([](const char *msg) { DEBUG_LOG(COMMON, "cdreader: %s", msg); }); @@ -650,6 +690,8 @@ std::string Achievements::getGameHash() char hash[33] {}; rc_hash_generate_from_file(hash, settings.platform.isConsole() ? RC_CONSOLE_DREAMCAST : RC_CONSOLE_ARCADE, settings.content.fileName.c_str()); // fileName is only used for arcade + delete hashDisk; + hashDisk = nullptr; return hash; } @@ -724,7 +766,7 @@ void Achievements::loadGame() } if (!init() || !isLoggedOn()) { if (!isLoggedOn()) - WARN_LOG(COMMON, "Not logged on. Not loading game yet"); + INFO_LOG(COMMON, "Not logged on. Not loading game yet"); loadingGame = false; return; } @@ -735,6 +777,10 @@ void Achievements::loadGame() ((Achievements *)userdata)->gameLoaded(result, error_message); }, this); } + else { + INFO_LOG(COMMON, "RA: empty hash. Aborting load"); + loadingGame = false; + } } void Achievements::gameLoaded(int result, const char *errorMessage) @@ -811,6 +857,93 @@ void Achievements::diskChange() }, this); } +Game Achievements::getCurrentGame() +{ + if (!active) + return Game{}; + const rc_client_game_t *info = rc_client_get_game_info(rc_client); + if (info == nullptr) + return Game{}; + char url[128]; + std::string image; + if (rc_client_game_get_image_url(info, url, sizeof(url)) == RC_OK) + { + bool cached; + std::tie(image, cached) = getCachedImage(url); + if (!cached) + { + if (asyncImageDownload.valid()) + { + if (asyncImageDownload.wait_for(std::chrono::seconds::zero()) == std::future_status::timeout) + INFO_LOG(COMMON, "Async image download already in progress"); + else + asyncImageDownload.get(); + } + if (!asyncImageDownload.valid()) + { + std::string surl = url; + asyncImageDownload = std::async(std::launch::async, [this, surl]() { + getOrDownloadImage(surl.c_str()); + }); + } + } + } + rc_client_user_game_summary_t summary; + rc_client_get_user_game_summary(rc_client, &summary); + + return Game{ image, info->title, summary.num_unlocked_achievements, summary.num_core_achievements, summary.points_unlocked, summary.points_core }; +} + +std::vector Achievements::getAchievementList() +{ + std::vector achievements; + rc_client_achievement_list_t *list = rc_client_create_achievement_list(rc_client, + RC_CLIENT_ACHIEVEMENT_CATEGORY_CORE_AND_UNOFFICIAL, + RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS); + std::vector uncachedImages; + for (u32 i = 0; i < list->num_buckets; i++) + { + const char *label = list->buckets[i].label; + for (u32 j = 0; j < list->buckets[i].num_achievements; j++) + { + const rc_client_achievement_t *achievement = list->buckets[i].achievements[j]; + char url[128]; + std::string image; + if (rc_client_achievement_get_image_url(achievement, achievement->state, url, sizeof(url)) == RC_OK) + { + bool cached; + std::tie(image, cached) = getCachedImage(url); + if (!cached) + uncachedImages.push_back(url); + } + std::string status; + if (achievement->measured_percent) + status = achievement->measured_progress; + achievements.emplace_back(image, achievement->title, achievement->description, label, status); + } + } + rc_client_destroy_achievement_list(list); + if (!uncachedImages.empty()) + { + if (asyncImageDownload.valid()) + { + if (asyncImageDownload.wait_for(std::chrono::seconds::zero()) == std::future_status::timeout) + INFO_LOG(COMMON, "Async image download already in progress"); + else + asyncImageDownload.get(); + } + if (!asyncImageDownload.valid()) + { + asyncImageDownload = std::async(std::launch::async, [this, uncachedImages]() { + for (const std::string& url : uncachedImages) + getOrDownloadImage(url.c_str()); + }); + } + } + + return achievements; +} + void Achievements::serialize(Serializer& ser) { u32 size = (u32)rc_client_progress_size(rc_client); diff --git a/core/achievements/achievements.h b/core/achievements/achievements.h index 28023cc28..8b72df131 100644 --- a/core/achievements/achievements.h +++ b/core/achievements/achievements.h @@ -17,16 +17,42 @@ #pragma once #include "types.h" #include +#include namespace achievements { #ifdef USE_RACHIEVEMENTS +struct Game +{ + std::string image; + std::string title; + u32 unlockedAchievements; + u32 totalAchievements; + u32 points; + u32 totalPoints; +}; + +struct Achievement +{ + Achievement() = default; + Achievement(const std::string& image, const std::string& title, const std::string& description, const std::string& category, const std::string& status) + : image(image), title(title), description(description), category(category), status(status) {} + std::string image; + std::string title; + std::string description; + std::string category; + std::string status; +}; + bool init(); void term(); std::future login(const char *username, const char *password); void logout(); bool isLoggedOn(); +bool isActive(); +Game getCurrentGame(); +std::vector getAchievementList(); #endif diff --git a/core/emulator.h b/core/emulator.h index f4b8b14c0..f23835441 100644 --- a/core/emulator.h +++ b/core/emulator.h @@ -38,6 +38,7 @@ void dc_exit(); void dc_savestate(int index = 0); void dc_loadstate(int index = 0); void dc_loadstate(Deserializer& deser); +std::string dc_getStateUpdateDate(int index); enum class Event { Start, diff --git a/core/nullDC.cpp b/core/nullDC.cpp index ef0a5b8d3..da3379f29 100644 --- a/core/nullDC.cpp +++ b/core/nullDC.cpp @@ -7,6 +7,7 @@ #include "log/LogManager.h" #include "rend/gui.h" #include "oslib/oslib.h" +#include "oslib/directory.h" #include "debug/gdb_server.h" #include "archive/rzip.h" #include "rend/mainui.h" @@ -14,6 +15,7 @@ #include "lua/lua.h" #include "stdclass.h" #include "serialize.h" +#include int flycast_init(int argc, char* argv[]) { @@ -231,4 +233,32 @@ void dc_loadstate(int index) EventManager::event(Event::LoadState); } +#ifdef _WIN32 +static struct tm *localtime_r(const time_t *_clock, struct tm *_result) +{ + return localtime_s(_result, _clock) ? nullptr : _result; +} +#endif + +std::string dc_getStateUpdateDate(int index) +{ + std::string filename = hostfs::getSavestatePath(index, false); + struct stat st; + if (flycast::stat(filename.c_str(), &st) != 0) + return {}; + time_t ago = time(nullptr) - st.st_mtime; + if (ago < 60) + return std::to_string(ago) + " seconds ago"; + if (ago < 3600) + return std::to_string(ago / 60) + " minutes ago"; + if (ago < 3600 * 24) + return std::to_string(ago / 3600) + " hours ago"; + tm t; + if (localtime_r(&st.st_mtime, &t) == nullptr) + return {}; + std::string s(32, '\0'); + s.resize(snprintf(s.data(), 32, "%04d/%02d/%02d %02d:%02d:%02d", t.tm_year + 1900, t.tm_mon + 1, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec)); + return s; +} + #endif diff --git a/core/oslib/storage.cpp b/core/oslib/storage.cpp index e3c7055c5..69e0ec259 100644 --- a/core/oslib/storage.cpp +++ b/core/oslib/storage.cpp @@ -184,7 +184,8 @@ public: #ifndef _WIN32 struct stat st; if (flycast::stat(path.c_str(), &st) != 0) { - INFO_LOG(COMMON, "Cannot stat file '%s' errno %d", path.c_str(), errno); + if (errno != ENOENT) + INFO_LOG(COMMON, "Cannot stat file '%s' errno %d", path.c_str(), errno); throw StorageException("Cannot stat " + path); } info.isDirectory = S_ISDIR(st.st_mode); diff --git a/core/rend/CustomTexture.cpp b/core/rend/CustomTexture.cpp index 6edcfb0ed..fd082cdd0 100644 --- a/core/rend/CustomTexture.cpp +++ b/core/rend/CustomTexture.cpp @@ -284,7 +284,7 @@ void CustomTexture::DumpTexture(u32 hash, int w, int h, TextureType textype, voi FILE *f = nowide::fopen((const char *)context, "wb"); if (f == nullptr) { - WARN_LOG(RENDERER, "Dump texture: can't save to file %s: error %d", context, errno); + WARN_LOG(RENDERER, "Dump texture: can't save to file %s: error %d", (const char *)context, errno); } else { diff --git a/core/rend/IconsFontAwesome6.h b/core/rend/IconsFontAwesome6.h new file mode 100644 index 000000000..a9e11503c --- /dev/null +++ b/core/rend/IconsFontAwesome6.h @@ -0,0 +1,1406 @@ +// Generated by https://github.com/juliettef/IconFontCppHeaders script GenerateIconFontCppHeaders.py +// for C and C++ +// from codepoints https://github.com/FortAwesome/Font-Awesome/raw/6.x/metadata/icons.yml +// for use with font https://github.com/FortAwesome/Font-Awesome/blob/6.x/webfonts/fa-regular-400.ttf, https://github.com/FortAwesome/Font-Awesome/blob/6.x/webfonts/fa-solid-900.ttf + +#pragma once + +#define FONT_ICON_FILE_NAME_FAR "fa-regular-400.ttf" +#define FONT_ICON_FILE_NAME_FAS "fa-solid-900.ttf" + +#define ICON_MIN_FA 0xe005 +#define ICON_MAX_16_FA 0xf8ff +#define ICON_MAX_FA 0xf8ff + +#define ICON_FA_0 "0" // U+0030 +#define ICON_FA_1 "1" // U+0031 +#define ICON_FA_2 "2" // U+0032 +#define ICON_FA_3 "3" // U+0033 +#define ICON_FA_4 "4" // U+0034 +#define ICON_FA_5 "5" // U+0035 +#define ICON_FA_6 "6" // U+0036 +#define ICON_FA_7 "7" // U+0037 +#define ICON_FA_8 "8" // U+0038 +#define ICON_FA_9 "9" // U+0039 +#define ICON_FA_A "A" // U+0041 +#define ICON_FA_ADDRESS_BOOK "\xef\x8a\xb9" // U+f2b9 +#define ICON_FA_ADDRESS_CARD "\xef\x8a\xbb" // U+f2bb +#define ICON_FA_ALIGN_CENTER "\xef\x80\xb7" // U+f037 +#define ICON_FA_ALIGN_JUSTIFY "\xef\x80\xb9" // U+f039 +#define ICON_FA_ALIGN_LEFT "\xef\x80\xb6" // U+f036 +#define ICON_FA_ALIGN_RIGHT "\xef\x80\xb8" // U+f038 +#define ICON_FA_ANCHOR "\xef\x84\xbd" // U+f13d +#define ICON_FA_ANCHOR_CIRCLE_CHECK "\xee\x92\xaa" // U+e4aa +#define ICON_FA_ANCHOR_CIRCLE_EXCLAMATION "\xee\x92\xab" // U+e4ab +#define ICON_FA_ANCHOR_CIRCLE_XMARK "\xee\x92\xac" // U+e4ac +#define ICON_FA_ANCHOR_LOCK "\xee\x92\xad" // U+e4ad +#define ICON_FA_ANGLE_DOWN "\xef\x84\x87" // U+f107 +#define ICON_FA_ANGLE_LEFT "\xef\x84\x84" // U+f104 +#define ICON_FA_ANGLE_RIGHT "\xef\x84\x85" // U+f105 +#define ICON_FA_ANGLE_UP "\xef\x84\x86" // U+f106 +#define ICON_FA_ANGLES_DOWN "\xef\x84\x83" // U+f103 +#define ICON_FA_ANGLES_LEFT "\xef\x84\x80" // U+f100 +#define ICON_FA_ANGLES_RIGHT "\xef\x84\x81" // U+f101 +#define ICON_FA_ANGLES_UP "\xef\x84\x82" // U+f102 +#define ICON_FA_ANKH "\xef\x99\x84" // U+f644 +#define ICON_FA_APPLE_WHOLE "\xef\x97\x91" // U+f5d1 +#define ICON_FA_ARCHWAY "\xef\x95\x97" // U+f557 +#define ICON_FA_ARROW_DOWN "\xef\x81\xa3" // U+f063 +#define ICON_FA_ARROW_DOWN_1_9 "\xef\x85\xa2" // U+f162 +#define ICON_FA_ARROW_DOWN_9_1 "\xef\xa2\x86" // U+f886 +#define ICON_FA_ARROW_DOWN_A_Z "\xef\x85\x9d" // U+f15d +#define ICON_FA_ARROW_DOWN_LONG "\xef\x85\xb5" // U+f175 +#define ICON_FA_ARROW_DOWN_SHORT_WIDE "\xef\xa2\x84" // U+f884 +#define ICON_FA_ARROW_DOWN_UP_ACROSS_LINE "\xee\x92\xaf" // U+e4af +#define ICON_FA_ARROW_DOWN_UP_LOCK "\xee\x92\xb0" // U+e4b0 +#define ICON_FA_ARROW_DOWN_WIDE_SHORT "\xef\x85\xa0" // U+f160 +#define ICON_FA_ARROW_DOWN_Z_A "\xef\xa2\x81" // U+f881 +#define ICON_FA_ARROW_LEFT "\xef\x81\xa0" // U+f060 +#define ICON_FA_ARROW_LEFT_LONG "\xef\x85\xb7" // U+f177 +#define ICON_FA_ARROW_POINTER "\xef\x89\x85" // U+f245 +#define ICON_FA_ARROW_RIGHT "\xef\x81\xa1" // U+f061 +#define ICON_FA_ARROW_RIGHT_ARROW_LEFT "\xef\x83\xac" // U+f0ec +#define ICON_FA_ARROW_RIGHT_FROM_BRACKET "\xef\x82\x8b" // U+f08b +#define ICON_FA_ARROW_RIGHT_LONG "\xef\x85\xb8" // U+f178 +#define ICON_FA_ARROW_RIGHT_TO_BRACKET "\xef\x82\x90" // U+f090 +#define ICON_FA_ARROW_RIGHT_TO_CITY "\xee\x92\xb3" // U+e4b3 +#define ICON_FA_ARROW_ROTATE_LEFT "\xef\x83\xa2" // U+f0e2 +#define ICON_FA_ARROW_ROTATE_RIGHT "\xef\x80\x9e" // U+f01e +#define ICON_FA_ARROW_TREND_DOWN "\xee\x82\x97" // U+e097 +#define ICON_FA_ARROW_TREND_UP "\xee\x82\x98" // U+e098 +#define ICON_FA_ARROW_TURN_DOWN "\xef\x85\x89" // U+f149 +#define ICON_FA_ARROW_TURN_UP "\xef\x85\x88" // U+f148 +#define ICON_FA_ARROW_UP "\xef\x81\xa2" // U+f062 +#define ICON_FA_ARROW_UP_1_9 "\xef\x85\xa3" // U+f163 +#define ICON_FA_ARROW_UP_9_1 "\xef\xa2\x87" // U+f887 +#define ICON_FA_ARROW_UP_A_Z "\xef\x85\x9e" // U+f15e +#define ICON_FA_ARROW_UP_FROM_BRACKET "\xee\x82\x9a" // U+e09a +#define ICON_FA_ARROW_UP_FROM_GROUND_WATER "\xee\x92\xb5" // U+e4b5 +#define ICON_FA_ARROW_UP_FROM_WATER_PUMP "\xee\x92\xb6" // U+e4b6 +#define ICON_FA_ARROW_UP_LONG "\xef\x85\xb6" // U+f176 +#define ICON_FA_ARROW_UP_RIGHT_DOTS "\xee\x92\xb7" // U+e4b7 +#define ICON_FA_ARROW_UP_RIGHT_FROM_SQUARE "\xef\x82\x8e" // U+f08e +#define ICON_FA_ARROW_UP_SHORT_WIDE "\xef\xa2\x85" // U+f885 +#define ICON_FA_ARROW_UP_WIDE_SHORT "\xef\x85\xa1" // U+f161 +#define ICON_FA_ARROW_UP_Z_A "\xef\xa2\x82" // U+f882 +#define ICON_FA_ARROWS_DOWN_TO_LINE "\xee\x92\xb8" // U+e4b8 +#define ICON_FA_ARROWS_DOWN_TO_PEOPLE "\xee\x92\xb9" // U+e4b9 +#define ICON_FA_ARROWS_LEFT_RIGHT "\xef\x81\xbe" // U+f07e +#define ICON_FA_ARROWS_LEFT_RIGHT_TO_LINE "\xee\x92\xba" // U+e4ba +#define ICON_FA_ARROWS_ROTATE "\xef\x80\xa1" // U+f021 +#define ICON_FA_ARROWS_SPIN "\xee\x92\xbb" // U+e4bb +#define ICON_FA_ARROWS_SPLIT_UP_AND_LEFT "\xee\x92\xbc" // U+e4bc +#define ICON_FA_ARROWS_TO_CIRCLE "\xee\x92\xbd" // U+e4bd +#define ICON_FA_ARROWS_TO_DOT "\xee\x92\xbe" // U+e4be +#define ICON_FA_ARROWS_TO_EYE "\xee\x92\xbf" // U+e4bf +#define ICON_FA_ARROWS_TURN_RIGHT "\xee\x93\x80" // U+e4c0 +#define ICON_FA_ARROWS_TURN_TO_DOTS "\xee\x93\x81" // U+e4c1 +#define ICON_FA_ARROWS_UP_DOWN "\xef\x81\xbd" // U+f07d +#define ICON_FA_ARROWS_UP_DOWN_LEFT_RIGHT "\xef\x81\x87" // U+f047 +#define ICON_FA_ARROWS_UP_TO_LINE "\xee\x93\x82" // U+e4c2 +#define ICON_FA_ASTERISK "*" // U+002a +#define ICON_FA_AT "@" // U+0040 +#define ICON_FA_ATOM "\xef\x97\x92" // U+f5d2 +#define ICON_FA_AUDIO_DESCRIPTION "\xef\x8a\x9e" // U+f29e +#define ICON_FA_AUSTRAL_SIGN "\xee\x82\xa9" // U+e0a9 +#define ICON_FA_AWARD "\xef\x95\x99" // U+f559 +#define ICON_FA_B "B" // U+0042 +#define ICON_FA_BABY "\xef\x9d\xbc" // U+f77c +#define ICON_FA_BABY_CARRIAGE "\xef\x9d\xbd" // U+f77d +#define ICON_FA_BACKWARD "\xef\x81\x8a" // U+f04a +#define ICON_FA_BACKWARD_FAST "\xef\x81\x89" // U+f049 +#define ICON_FA_BACKWARD_STEP "\xef\x81\x88" // U+f048 +#define ICON_FA_BACON "\xef\x9f\xa5" // U+f7e5 +#define ICON_FA_BACTERIA "\xee\x81\x99" // U+e059 +#define ICON_FA_BACTERIUM "\xee\x81\x9a" // U+e05a +#define ICON_FA_BAG_SHOPPING "\xef\x8a\x90" // U+f290 +#define ICON_FA_BAHAI "\xef\x99\xa6" // U+f666 +#define ICON_FA_BAHT_SIGN "\xee\x82\xac" // U+e0ac +#define ICON_FA_BAN "\xef\x81\x9e" // U+f05e +#define ICON_FA_BAN_SMOKING "\xef\x95\x8d" // U+f54d +#define ICON_FA_BANDAGE "\xef\x91\xa2" // U+f462 +#define ICON_FA_BANGLADESHI_TAKA_SIGN "\xee\x8b\xa6" // U+e2e6 +#define ICON_FA_BARCODE "\xef\x80\xaa" // U+f02a +#define ICON_FA_BARS "\xef\x83\x89" // U+f0c9 +#define ICON_FA_BARS_PROGRESS "\xef\xa0\xa8" // U+f828 +#define ICON_FA_BARS_STAGGERED "\xef\x95\x90" // U+f550 +#define ICON_FA_BASEBALL "\xef\x90\xb3" // U+f433 +#define ICON_FA_BASEBALL_BAT_BALL "\xef\x90\xb2" // U+f432 +#define ICON_FA_BASKET_SHOPPING "\xef\x8a\x91" // U+f291 +#define ICON_FA_BASKETBALL "\xef\x90\xb4" // U+f434 +#define ICON_FA_BATH "\xef\x8b\x8d" // U+f2cd +#define ICON_FA_BATTERY_EMPTY "\xef\x89\x84" // U+f244 +#define ICON_FA_BATTERY_FULL "\xef\x89\x80" // U+f240 +#define ICON_FA_BATTERY_HALF "\xef\x89\x82" // U+f242 +#define ICON_FA_BATTERY_QUARTER "\xef\x89\x83" // U+f243 +#define ICON_FA_BATTERY_THREE_QUARTERS "\xef\x89\x81" // U+f241 +#define ICON_FA_BED "\xef\x88\xb6" // U+f236 +#define ICON_FA_BED_PULSE "\xef\x92\x87" // U+f487 +#define ICON_FA_BEER_MUG_EMPTY "\xef\x83\xbc" // U+f0fc +#define ICON_FA_BELL "\xef\x83\xb3" // U+f0f3 +#define ICON_FA_BELL_CONCIERGE "\xef\x95\xa2" // U+f562 +#define ICON_FA_BELL_SLASH "\xef\x87\xb6" // U+f1f6 +#define ICON_FA_BEZIER_CURVE "\xef\x95\x9b" // U+f55b +#define ICON_FA_BICYCLE "\xef\x88\x86" // U+f206 +#define ICON_FA_BINOCULARS "\xef\x87\xa5" // U+f1e5 +#define ICON_FA_BIOHAZARD "\xef\x9e\x80" // U+f780 +#define ICON_FA_BITCOIN_SIGN "\xee\x82\xb4" // U+e0b4 +#define ICON_FA_BLENDER "\xef\x94\x97" // U+f517 +#define ICON_FA_BLENDER_PHONE "\xef\x9a\xb6" // U+f6b6 +#define ICON_FA_BLOG "\xef\x9e\x81" // U+f781 +#define ICON_FA_BOLD "\xef\x80\xb2" // U+f032 +#define ICON_FA_BOLT "\xef\x83\xa7" // U+f0e7 +#define ICON_FA_BOLT_LIGHTNING "\xee\x82\xb7" // U+e0b7 +#define ICON_FA_BOMB "\xef\x87\xa2" // U+f1e2 +#define ICON_FA_BONE "\xef\x97\x97" // U+f5d7 +#define ICON_FA_BONG "\xef\x95\x9c" // U+f55c +#define ICON_FA_BOOK "\xef\x80\xad" // U+f02d +#define ICON_FA_BOOK_ATLAS "\xef\x95\x98" // U+f558 +#define ICON_FA_BOOK_BIBLE "\xef\x99\x87" // U+f647 +#define ICON_FA_BOOK_BOOKMARK "\xee\x82\xbb" // U+e0bb +#define ICON_FA_BOOK_JOURNAL_WHILLS "\xef\x99\xaa" // U+f66a +#define ICON_FA_BOOK_MEDICAL "\xef\x9f\xa6" // U+f7e6 +#define ICON_FA_BOOK_OPEN "\xef\x94\x98" // U+f518 +#define ICON_FA_BOOK_OPEN_READER "\xef\x97\x9a" // U+f5da +#define ICON_FA_BOOK_QURAN "\xef\x9a\x87" // U+f687 +#define ICON_FA_BOOK_SKULL "\xef\x9a\xb7" // U+f6b7 +#define ICON_FA_BOOK_TANAKH "\xef\xa0\xa7" // U+f827 +#define ICON_FA_BOOKMARK "\xef\x80\xae" // U+f02e +#define ICON_FA_BORDER_ALL "\xef\xa1\x8c" // U+f84c +#define ICON_FA_BORDER_NONE "\xef\xa1\x90" // U+f850 +#define ICON_FA_BORDER_TOP_LEFT "\xef\xa1\x93" // U+f853 +#define ICON_FA_BORE_HOLE "\xee\x93\x83" // U+e4c3 +#define ICON_FA_BOTTLE_DROPLET "\xee\x93\x84" // U+e4c4 +#define ICON_FA_BOTTLE_WATER "\xee\x93\x85" // U+e4c5 +#define ICON_FA_BOWL_FOOD "\xee\x93\x86" // U+e4c6 +#define ICON_FA_BOWL_RICE "\xee\x8b\xab" // U+e2eb +#define ICON_FA_BOWLING_BALL "\xef\x90\xb6" // U+f436 +#define ICON_FA_BOX "\xef\x91\xa6" // U+f466 +#define ICON_FA_BOX_ARCHIVE "\xef\x86\x87" // U+f187 +#define ICON_FA_BOX_OPEN "\xef\x92\x9e" // U+f49e +#define ICON_FA_BOX_TISSUE "\xee\x81\x9b" // U+e05b +#define ICON_FA_BOXES_PACKING "\xee\x93\x87" // U+e4c7 +#define ICON_FA_BOXES_STACKED "\xef\x91\xa8" // U+f468 +#define ICON_FA_BRAILLE "\xef\x8a\xa1" // U+f2a1 +#define ICON_FA_BRAIN "\xef\x97\x9c" // U+f5dc +#define ICON_FA_BRAZILIAN_REAL_SIGN "\xee\x91\xac" // U+e46c +#define ICON_FA_BREAD_SLICE "\xef\x9f\xac" // U+f7ec +#define ICON_FA_BRIDGE "\xee\x93\x88" // U+e4c8 +#define ICON_FA_BRIDGE_CIRCLE_CHECK "\xee\x93\x89" // U+e4c9 +#define ICON_FA_BRIDGE_CIRCLE_EXCLAMATION "\xee\x93\x8a" // U+e4ca +#define ICON_FA_BRIDGE_CIRCLE_XMARK "\xee\x93\x8b" // U+e4cb +#define ICON_FA_BRIDGE_LOCK "\xee\x93\x8c" // U+e4cc +#define ICON_FA_BRIDGE_WATER "\xee\x93\x8e" // U+e4ce +#define ICON_FA_BRIEFCASE "\xef\x82\xb1" // U+f0b1 +#define ICON_FA_BRIEFCASE_MEDICAL "\xef\x91\xa9" // U+f469 +#define ICON_FA_BROOM "\xef\x94\x9a" // U+f51a +#define ICON_FA_BROOM_BALL "\xef\x91\x98" // U+f458 +#define ICON_FA_BRUSH "\xef\x95\x9d" // U+f55d +#define ICON_FA_BUCKET "\xee\x93\x8f" // U+e4cf +#define ICON_FA_BUG "\xef\x86\x88" // U+f188 +#define ICON_FA_BUG_SLASH "\xee\x92\x90" // U+e490 +#define ICON_FA_BUGS "\xee\x93\x90" // U+e4d0 +#define ICON_FA_BUILDING "\xef\x86\xad" // U+f1ad +#define ICON_FA_BUILDING_CIRCLE_ARROW_RIGHT "\xee\x93\x91" // U+e4d1 +#define ICON_FA_BUILDING_CIRCLE_CHECK "\xee\x93\x92" // U+e4d2 +#define ICON_FA_BUILDING_CIRCLE_EXCLAMATION "\xee\x93\x93" // U+e4d3 +#define ICON_FA_BUILDING_CIRCLE_XMARK "\xee\x93\x94" // U+e4d4 +#define ICON_FA_BUILDING_COLUMNS "\xef\x86\x9c" // U+f19c +#define ICON_FA_BUILDING_FLAG "\xee\x93\x95" // U+e4d5 +#define ICON_FA_BUILDING_LOCK "\xee\x93\x96" // U+e4d6 +#define ICON_FA_BUILDING_NGO "\xee\x93\x97" // U+e4d7 +#define ICON_FA_BUILDING_SHIELD "\xee\x93\x98" // U+e4d8 +#define ICON_FA_BUILDING_UN "\xee\x93\x99" // U+e4d9 +#define ICON_FA_BUILDING_USER "\xee\x93\x9a" // U+e4da +#define ICON_FA_BUILDING_WHEAT "\xee\x93\x9b" // U+e4db +#define ICON_FA_BULLHORN "\xef\x82\xa1" // U+f0a1 +#define ICON_FA_BULLSEYE "\xef\x85\x80" // U+f140 +#define ICON_FA_BURGER "\xef\xa0\x85" // U+f805 +#define ICON_FA_BURST "\xee\x93\x9c" // U+e4dc +#define ICON_FA_BUS "\xef\x88\x87" // U+f207 +#define ICON_FA_BUS_SIMPLE "\xef\x95\x9e" // U+f55e +#define ICON_FA_BUSINESS_TIME "\xef\x99\x8a" // U+f64a +#define ICON_FA_C "C" // U+0043 +#define ICON_FA_CABLE_CAR "\xef\x9f\x9a" // U+f7da +#define ICON_FA_CAKE_CANDLES "\xef\x87\xbd" // U+f1fd +#define ICON_FA_CALCULATOR "\xef\x87\xac" // U+f1ec +#define ICON_FA_CALENDAR "\xef\x84\xb3" // U+f133 +#define ICON_FA_CALENDAR_CHECK "\xef\x89\xb4" // U+f274 +#define ICON_FA_CALENDAR_DAY "\xef\x9e\x83" // U+f783 +#define ICON_FA_CALENDAR_DAYS "\xef\x81\xb3" // U+f073 +#define ICON_FA_CALENDAR_MINUS "\xef\x89\xb2" // U+f272 +#define ICON_FA_CALENDAR_PLUS "\xef\x89\xb1" // U+f271 +#define ICON_FA_CALENDAR_WEEK "\xef\x9e\x84" // U+f784 +#define ICON_FA_CALENDAR_XMARK "\xef\x89\xb3" // U+f273 +#define ICON_FA_CAMERA "\xef\x80\xb0" // U+f030 +#define ICON_FA_CAMERA_RETRO "\xef\x82\x83" // U+f083 +#define ICON_FA_CAMERA_ROTATE "\xee\x83\x98" // U+e0d8 +#define ICON_FA_CAMPGROUND "\xef\x9a\xbb" // U+f6bb +#define ICON_FA_CANDY_CANE "\xef\x9e\x86" // U+f786 +#define ICON_FA_CANNABIS "\xef\x95\x9f" // U+f55f +#define ICON_FA_CAPSULES "\xef\x91\xab" // U+f46b +#define ICON_FA_CAR "\xef\x86\xb9" // U+f1b9 +#define ICON_FA_CAR_BATTERY "\xef\x97\x9f" // U+f5df +#define ICON_FA_CAR_BURST "\xef\x97\xa1" // U+f5e1 +#define ICON_FA_CAR_ON "\xee\x93\x9d" // U+e4dd +#define ICON_FA_CAR_REAR "\xef\x97\x9e" // U+f5de +#define ICON_FA_CAR_SIDE "\xef\x97\xa4" // U+f5e4 +#define ICON_FA_CAR_TUNNEL "\xee\x93\x9e" // U+e4de +#define ICON_FA_CARAVAN "\xef\xa3\xbf" // U+f8ff +#define ICON_FA_CARET_DOWN "\xef\x83\x97" // U+f0d7 +#define ICON_FA_CARET_LEFT "\xef\x83\x99" // U+f0d9 +#define ICON_FA_CARET_RIGHT "\xef\x83\x9a" // U+f0da +#define ICON_FA_CARET_UP "\xef\x83\x98" // U+f0d8 +#define ICON_FA_CARROT "\xef\x9e\x87" // U+f787 +#define ICON_FA_CART_ARROW_DOWN "\xef\x88\x98" // U+f218 +#define ICON_FA_CART_FLATBED "\xef\x91\xb4" // U+f474 +#define ICON_FA_CART_FLATBED_SUITCASE "\xef\x96\x9d" // U+f59d +#define ICON_FA_CART_PLUS "\xef\x88\x97" // U+f217 +#define ICON_FA_CART_SHOPPING "\xef\x81\xba" // U+f07a +#define ICON_FA_CASH_REGISTER "\xef\x9e\x88" // U+f788 +#define ICON_FA_CAT "\xef\x9a\xbe" // U+f6be +#define ICON_FA_CEDI_SIGN "\xee\x83\x9f" // U+e0df +#define ICON_FA_CENT_SIGN "\xee\x8f\xb5" // U+e3f5 +#define ICON_FA_CERTIFICATE "\xef\x82\xa3" // U+f0a3 +#define ICON_FA_CHAIR "\xef\x9b\x80" // U+f6c0 +#define ICON_FA_CHALKBOARD "\xef\x94\x9b" // U+f51b +#define ICON_FA_CHALKBOARD_USER "\xef\x94\x9c" // U+f51c +#define ICON_FA_CHAMPAGNE_GLASSES "\xef\x9e\x9f" // U+f79f +#define ICON_FA_CHARGING_STATION "\xef\x97\xa7" // U+f5e7 +#define ICON_FA_CHART_AREA "\xef\x87\xbe" // U+f1fe +#define ICON_FA_CHART_BAR "\xef\x82\x80" // U+f080 +#define ICON_FA_CHART_COLUMN "\xee\x83\xa3" // U+e0e3 +#define ICON_FA_CHART_GANTT "\xee\x83\xa4" // U+e0e4 +#define ICON_FA_CHART_LINE "\xef\x88\x81" // U+f201 +#define ICON_FA_CHART_PIE "\xef\x88\x80" // U+f200 +#define ICON_FA_CHART_SIMPLE "\xee\x91\xb3" // U+e473 +#define ICON_FA_CHECK "\xef\x80\x8c" // U+f00c +#define ICON_FA_CHECK_DOUBLE "\xef\x95\xa0" // U+f560 +#define ICON_FA_CHECK_TO_SLOT "\xef\x9d\xb2" // U+f772 +#define ICON_FA_CHEESE "\xef\x9f\xaf" // U+f7ef +#define ICON_FA_CHESS "\xef\x90\xb9" // U+f439 +#define ICON_FA_CHESS_BISHOP "\xef\x90\xba" // U+f43a +#define ICON_FA_CHESS_BOARD "\xef\x90\xbc" // U+f43c +#define ICON_FA_CHESS_KING "\xef\x90\xbf" // U+f43f +#define ICON_FA_CHESS_KNIGHT "\xef\x91\x81" // U+f441 +#define ICON_FA_CHESS_PAWN "\xef\x91\x83" // U+f443 +#define ICON_FA_CHESS_QUEEN "\xef\x91\x85" // U+f445 +#define ICON_FA_CHESS_ROOK "\xef\x91\x87" // U+f447 +#define ICON_FA_CHEVRON_DOWN "\xef\x81\xb8" // U+f078 +#define ICON_FA_CHEVRON_LEFT "\xef\x81\x93" // U+f053 +#define ICON_FA_CHEVRON_RIGHT "\xef\x81\x94" // U+f054 +#define ICON_FA_CHEVRON_UP "\xef\x81\xb7" // U+f077 +#define ICON_FA_CHILD "\xef\x86\xae" // U+f1ae +#define ICON_FA_CHILD_COMBATANT "\xee\x93\xa0" // U+e4e0 +#define ICON_FA_CHILD_DRESS "\xee\x96\x9c" // U+e59c +#define ICON_FA_CHILD_REACHING "\xee\x96\x9d" // U+e59d +#define ICON_FA_CHILDREN "\xee\x93\xa1" // U+e4e1 +#define ICON_FA_CHURCH "\xef\x94\x9d" // U+f51d +#define ICON_FA_CIRCLE "\xef\x84\x91" // U+f111 +#define ICON_FA_CIRCLE_ARROW_DOWN "\xef\x82\xab" // U+f0ab +#define ICON_FA_CIRCLE_ARROW_LEFT "\xef\x82\xa8" // U+f0a8 +#define ICON_FA_CIRCLE_ARROW_RIGHT "\xef\x82\xa9" // U+f0a9 +#define ICON_FA_CIRCLE_ARROW_UP "\xef\x82\xaa" // U+f0aa +#define ICON_FA_CIRCLE_CHECK "\xef\x81\x98" // U+f058 +#define ICON_FA_CIRCLE_CHEVRON_DOWN "\xef\x84\xba" // U+f13a +#define ICON_FA_CIRCLE_CHEVRON_LEFT "\xef\x84\xb7" // U+f137 +#define ICON_FA_CIRCLE_CHEVRON_RIGHT "\xef\x84\xb8" // U+f138 +#define ICON_FA_CIRCLE_CHEVRON_UP "\xef\x84\xb9" // U+f139 +#define ICON_FA_CIRCLE_DOLLAR_TO_SLOT "\xef\x92\xb9" // U+f4b9 +#define ICON_FA_CIRCLE_DOT "\xef\x86\x92" // U+f192 +#define ICON_FA_CIRCLE_DOWN "\xef\x8d\x98" // U+f358 +#define ICON_FA_CIRCLE_EXCLAMATION "\xef\x81\xaa" // U+f06a +#define ICON_FA_CIRCLE_H "\xef\x91\xbe" // U+f47e +#define ICON_FA_CIRCLE_HALF_STROKE "\xef\x81\x82" // U+f042 +#define ICON_FA_CIRCLE_INFO "\xef\x81\x9a" // U+f05a +#define ICON_FA_CIRCLE_LEFT "\xef\x8d\x99" // U+f359 +#define ICON_FA_CIRCLE_MINUS "\xef\x81\x96" // U+f056 +#define ICON_FA_CIRCLE_NODES "\xee\x93\xa2" // U+e4e2 +#define ICON_FA_CIRCLE_NOTCH "\xef\x87\x8e" // U+f1ce +#define ICON_FA_CIRCLE_PAUSE "\xef\x8a\x8b" // U+f28b +#define ICON_FA_CIRCLE_PLAY "\xef\x85\x84" // U+f144 +#define ICON_FA_CIRCLE_PLUS "\xef\x81\x95" // U+f055 +#define ICON_FA_CIRCLE_QUESTION "\xef\x81\x99" // U+f059 +#define ICON_FA_CIRCLE_RADIATION "\xef\x9e\xba" // U+f7ba +#define ICON_FA_CIRCLE_RIGHT "\xef\x8d\x9a" // U+f35a +#define ICON_FA_CIRCLE_STOP "\xef\x8a\x8d" // U+f28d +#define ICON_FA_CIRCLE_UP "\xef\x8d\x9b" // U+f35b +#define ICON_FA_CIRCLE_USER "\xef\x8a\xbd" // U+f2bd +#define ICON_FA_CIRCLE_XMARK "\xef\x81\x97" // U+f057 +#define ICON_FA_CITY "\xef\x99\x8f" // U+f64f +#define ICON_FA_CLAPPERBOARD "\xee\x84\xb1" // U+e131 +#define ICON_FA_CLIPBOARD "\xef\x8c\xa8" // U+f328 +#define ICON_FA_CLIPBOARD_CHECK "\xef\x91\xac" // U+f46c +#define ICON_FA_CLIPBOARD_LIST "\xef\x91\xad" // U+f46d +#define ICON_FA_CLIPBOARD_QUESTION "\xee\x93\xa3" // U+e4e3 +#define ICON_FA_CLIPBOARD_USER "\xef\x9f\xb3" // U+f7f3 +#define ICON_FA_CLOCK "\xef\x80\x97" // U+f017 +#define ICON_FA_CLOCK_ROTATE_LEFT "\xef\x87\x9a" // U+f1da +#define ICON_FA_CLONE "\xef\x89\x8d" // U+f24d +#define ICON_FA_CLOSED_CAPTIONING "\xef\x88\x8a" // U+f20a +#define ICON_FA_CLOUD "\xef\x83\x82" // U+f0c2 +#define ICON_FA_CLOUD_ARROW_DOWN "\xef\x83\xad" // U+f0ed +#define ICON_FA_CLOUD_ARROW_UP "\xef\x83\xae" // U+f0ee +#define ICON_FA_CLOUD_BOLT "\xef\x9d\xac" // U+f76c +#define ICON_FA_CLOUD_MEATBALL "\xef\x9c\xbb" // U+f73b +#define ICON_FA_CLOUD_MOON "\xef\x9b\x83" // U+f6c3 +#define ICON_FA_CLOUD_MOON_RAIN "\xef\x9c\xbc" // U+f73c +#define ICON_FA_CLOUD_RAIN "\xef\x9c\xbd" // U+f73d +#define ICON_FA_CLOUD_SHOWERS_HEAVY "\xef\x9d\x80" // U+f740 +#define ICON_FA_CLOUD_SHOWERS_WATER "\xee\x93\xa4" // U+e4e4 +#define ICON_FA_CLOUD_SUN "\xef\x9b\x84" // U+f6c4 +#define ICON_FA_CLOUD_SUN_RAIN "\xef\x9d\x83" // U+f743 +#define ICON_FA_CLOVER "\xee\x84\xb9" // U+e139 +#define ICON_FA_CODE "\xef\x84\xa1" // U+f121 +#define ICON_FA_CODE_BRANCH "\xef\x84\xa6" // U+f126 +#define ICON_FA_CODE_COMMIT "\xef\x8e\x86" // U+f386 +#define ICON_FA_CODE_COMPARE "\xee\x84\xba" // U+e13a +#define ICON_FA_CODE_FORK "\xee\x84\xbb" // U+e13b +#define ICON_FA_CODE_MERGE "\xef\x8e\x87" // U+f387 +#define ICON_FA_CODE_PULL_REQUEST "\xee\x84\xbc" // U+e13c +#define ICON_FA_COINS "\xef\x94\x9e" // U+f51e +#define ICON_FA_COLON_SIGN "\xee\x85\x80" // U+e140 +#define ICON_FA_COMMENT "\xef\x81\xb5" // U+f075 +#define ICON_FA_COMMENT_DOLLAR "\xef\x99\x91" // U+f651 +#define ICON_FA_COMMENT_DOTS "\xef\x92\xad" // U+f4ad +#define ICON_FA_COMMENT_MEDICAL "\xef\x9f\xb5" // U+f7f5 +#define ICON_FA_COMMENT_SLASH "\xef\x92\xb3" // U+f4b3 +#define ICON_FA_COMMENT_SMS "\xef\x9f\x8d" // U+f7cd +#define ICON_FA_COMMENTS "\xef\x82\x86" // U+f086 +#define ICON_FA_COMMENTS_DOLLAR "\xef\x99\x93" // U+f653 +#define ICON_FA_COMPACT_DISC "\xef\x94\x9f" // U+f51f +#define ICON_FA_COMPASS "\xef\x85\x8e" // U+f14e +#define ICON_FA_COMPASS_DRAFTING "\xef\x95\xa8" // U+f568 +#define ICON_FA_COMPRESS "\xef\x81\xa6" // U+f066 +#define ICON_FA_COMPUTER "\xee\x93\xa5" // U+e4e5 +#define ICON_FA_COMPUTER_MOUSE "\xef\xa3\x8c" // U+f8cc +#define ICON_FA_COOKIE "\xef\x95\xa3" // U+f563 +#define ICON_FA_COOKIE_BITE "\xef\x95\xa4" // U+f564 +#define ICON_FA_COPY "\xef\x83\x85" // U+f0c5 +#define ICON_FA_COPYRIGHT "\xef\x87\xb9" // U+f1f9 +#define ICON_FA_COUCH "\xef\x92\xb8" // U+f4b8 +#define ICON_FA_COW "\xef\x9b\x88" // U+f6c8 +#define ICON_FA_CREDIT_CARD "\xef\x82\x9d" // U+f09d +#define ICON_FA_CROP "\xef\x84\xa5" // U+f125 +#define ICON_FA_CROP_SIMPLE "\xef\x95\xa5" // U+f565 +#define ICON_FA_CROSS "\xef\x99\x94" // U+f654 +#define ICON_FA_CROSSHAIRS "\xef\x81\x9b" // U+f05b +#define ICON_FA_CROW "\xef\x94\xa0" // U+f520 +#define ICON_FA_CROWN "\xef\x94\xa1" // U+f521 +#define ICON_FA_CRUTCH "\xef\x9f\xb7" // U+f7f7 +#define ICON_FA_CRUZEIRO_SIGN "\xee\x85\x92" // U+e152 +#define ICON_FA_CUBE "\xef\x86\xb2" // U+f1b2 +#define ICON_FA_CUBES "\xef\x86\xb3" // U+f1b3 +#define ICON_FA_CUBES_STACKED "\xee\x93\xa6" // U+e4e6 +#define ICON_FA_D "D" // U+0044 +#define ICON_FA_DATABASE "\xef\x87\x80" // U+f1c0 +#define ICON_FA_DELETE_LEFT "\xef\x95\x9a" // U+f55a +#define ICON_FA_DEMOCRAT "\xef\x9d\x87" // U+f747 +#define ICON_FA_DESKTOP "\xef\x8e\x90" // U+f390 +#define ICON_FA_DHARMACHAKRA "\xef\x99\x95" // U+f655 +#define ICON_FA_DIAGRAM_NEXT "\xee\x91\xb6" // U+e476 +#define ICON_FA_DIAGRAM_PREDECESSOR "\xee\x91\xb7" // U+e477 +#define ICON_FA_DIAGRAM_PROJECT "\xef\x95\x82" // U+f542 +#define ICON_FA_DIAGRAM_SUCCESSOR "\xee\x91\xba" // U+e47a +#define ICON_FA_DIAMOND "\xef\x88\x99" // U+f219 +#define ICON_FA_DIAMOND_TURN_RIGHT "\xef\x97\xab" // U+f5eb +#define ICON_FA_DICE "\xef\x94\xa2" // U+f522 +#define ICON_FA_DICE_D20 "\xef\x9b\x8f" // U+f6cf +#define ICON_FA_DICE_D6 "\xef\x9b\x91" // U+f6d1 +#define ICON_FA_DICE_FIVE "\xef\x94\xa3" // U+f523 +#define ICON_FA_DICE_FOUR "\xef\x94\xa4" // U+f524 +#define ICON_FA_DICE_ONE "\xef\x94\xa5" // U+f525 +#define ICON_FA_DICE_SIX "\xef\x94\xa6" // U+f526 +#define ICON_FA_DICE_THREE "\xef\x94\xa7" // U+f527 +#define ICON_FA_DICE_TWO "\xef\x94\xa8" // U+f528 +#define ICON_FA_DISEASE "\xef\x9f\xba" // U+f7fa +#define ICON_FA_DISPLAY "\xee\x85\xa3" // U+e163 +#define ICON_FA_DIVIDE "\xef\x94\xa9" // U+f529 +#define ICON_FA_DNA "\xef\x91\xb1" // U+f471 +#define ICON_FA_DOG "\xef\x9b\x93" // U+f6d3 +#define ICON_FA_DOLLAR_SIGN "$" // U+0024 +#define ICON_FA_DOLLY "\xef\x91\xb2" // U+f472 +#define ICON_FA_DONG_SIGN "\xee\x85\xa9" // U+e169 +#define ICON_FA_DOOR_CLOSED "\xef\x94\xaa" // U+f52a +#define ICON_FA_DOOR_OPEN "\xef\x94\xab" // U+f52b +#define ICON_FA_DOVE "\xef\x92\xba" // U+f4ba +#define ICON_FA_DOWN_LEFT_AND_UP_RIGHT_TO_CENTER "\xef\x90\xa2" // U+f422 +#define ICON_FA_DOWN_LONG "\xef\x8c\x89" // U+f309 +#define ICON_FA_DOWNLOAD "\xef\x80\x99" // U+f019 +#define ICON_FA_DRAGON "\xef\x9b\x95" // U+f6d5 +#define ICON_FA_DRAW_POLYGON "\xef\x97\xae" // U+f5ee +#define ICON_FA_DROPLET "\xef\x81\x83" // U+f043 +#define ICON_FA_DROPLET_SLASH "\xef\x97\x87" // U+f5c7 +#define ICON_FA_DRUM "\xef\x95\xa9" // U+f569 +#define ICON_FA_DRUM_STEELPAN "\xef\x95\xaa" // U+f56a +#define ICON_FA_DRUMSTICK_BITE "\xef\x9b\x97" // U+f6d7 +#define ICON_FA_DUMBBELL "\xef\x91\x8b" // U+f44b +#define ICON_FA_DUMPSTER "\xef\x9e\x93" // U+f793 +#define ICON_FA_DUMPSTER_FIRE "\xef\x9e\x94" // U+f794 +#define ICON_FA_DUNGEON "\xef\x9b\x99" // U+f6d9 +#define ICON_FA_E "E" // U+0045 +#define ICON_FA_EAR_DEAF "\xef\x8a\xa4" // U+f2a4 +#define ICON_FA_EAR_LISTEN "\xef\x8a\xa2" // U+f2a2 +#define ICON_FA_EARTH_AFRICA "\xef\x95\xbc" // U+f57c +#define ICON_FA_EARTH_AMERICAS "\xef\x95\xbd" // U+f57d +#define ICON_FA_EARTH_ASIA "\xef\x95\xbe" // U+f57e +#define ICON_FA_EARTH_EUROPE "\xef\x9e\xa2" // U+f7a2 +#define ICON_FA_EARTH_OCEANIA "\xee\x91\xbb" // U+e47b +#define ICON_FA_EGG "\xef\x9f\xbb" // U+f7fb +#define ICON_FA_EJECT "\xef\x81\x92" // U+f052 +#define ICON_FA_ELEVATOR "\xee\x85\xad" // U+e16d +#define ICON_FA_ELLIPSIS "\xef\x85\x81" // U+f141 +#define ICON_FA_ELLIPSIS_VERTICAL "\xef\x85\x82" // U+f142 +#define ICON_FA_ENVELOPE "\xef\x83\xa0" // U+f0e0 +#define ICON_FA_ENVELOPE_CIRCLE_CHECK "\xee\x93\xa8" // U+e4e8 +#define ICON_FA_ENVELOPE_OPEN "\xef\x8a\xb6" // U+f2b6 +#define ICON_FA_ENVELOPE_OPEN_TEXT "\xef\x99\x98" // U+f658 +#define ICON_FA_ENVELOPES_BULK "\xef\x99\xb4" // U+f674 +#define ICON_FA_EQUALS "=" // U+003d +#define ICON_FA_ERASER "\xef\x84\xad" // U+f12d +#define ICON_FA_ETHERNET "\xef\x9e\x96" // U+f796 +#define ICON_FA_EURO_SIGN "\xef\x85\x93" // U+f153 +#define ICON_FA_EXCLAMATION "!" // U+0021 +#define ICON_FA_EXPAND "\xef\x81\xa5" // U+f065 +#define ICON_FA_EXPLOSION "\xee\x93\xa9" // U+e4e9 +#define ICON_FA_EYE "\xef\x81\xae" // U+f06e +#define ICON_FA_EYE_DROPPER "\xef\x87\xbb" // U+f1fb +#define ICON_FA_EYE_LOW_VISION "\xef\x8a\xa8" // U+f2a8 +#define ICON_FA_EYE_SLASH "\xef\x81\xb0" // U+f070 +#define ICON_FA_F "F" // U+0046 +#define ICON_FA_FACE_ANGRY "\xef\x95\x96" // U+f556 +#define ICON_FA_FACE_DIZZY "\xef\x95\xa7" // U+f567 +#define ICON_FA_FACE_FLUSHED "\xef\x95\xb9" // U+f579 +#define ICON_FA_FACE_FROWN "\xef\x84\x99" // U+f119 +#define ICON_FA_FACE_FROWN_OPEN "\xef\x95\xba" // U+f57a +#define ICON_FA_FACE_GRIMACE "\xef\x95\xbf" // U+f57f +#define ICON_FA_FACE_GRIN "\xef\x96\x80" // U+f580 +#define ICON_FA_FACE_GRIN_BEAM "\xef\x96\x82" // U+f582 +#define ICON_FA_FACE_GRIN_BEAM_SWEAT "\xef\x96\x83" // U+f583 +#define ICON_FA_FACE_GRIN_HEARTS "\xef\x96\x84" // U+f584 +#define ICON_FA_FACE_GRIN_SQUINT "\xef\x96\x85" // U+f585 +#define ICON_FA_FACE_GRIN_SQUINT_TEARS "\xef\x96\x86" // U+f586 +#define ICON_FA_FACE_GRIN_STARS "\xef\x96\x87" // U+f587 +#define ICON_FA_FACE_GRIN_TEARS "\xef\x96\x88" // U+f588 +#define ICON_FA_FACE_GRIN_TONGUE "\xef\x96\x89" // U+f589 +#define ICON_FA_FACE_GRIN_TONGUE_SQUINT "\xef\x96\x8a" // U+f58a +#define ICON_FA_FACE_GRIN_TONGUE_WINK "\xef\x96\x8b" // U+f58b +#define ICON_FA_FACE_GRIN_WIDE "\xef\x96\x81" // U+f581 +#define ICON_FA_FACE_GRIN_WINK "\xef\x96\x8c" // U+f58c +#define ICON_FA_FACE_KISS "\xef\x96\x96" // U+f596 +#define ICON_FA_FACE_KISS_BEAM "\xef\x96\x97" // U+f597 +#define ICON_FA_FACE_KISS_WINK_HEART "\xef\x96\x98" // U+f598 +#define ICON_FA_FACE_LAUGH "\xef\x96\x99" // U+f599 +#define ICON_FA_FACE_LAUGH_BEAM "\xef\x96\x9a" // U+f59a +#define ICON_FA_FACE_LAUGH_SQUINT "\xef\x96\x9b" // U+f59b +#define ICON_FA_FACE_LAUGH_WINK "\xef\x96\x9c" // U+f59c +#define ICON_FA_FACE_MEH "\xef\x84\x9a" // U+f11a +#define ICON_FA_FACE_MEH_BLANK "\xef\x96\xa4" // U+f5a4 +#define ICON_FA_FACE_ROLLING_EYES "\xef\x96\xa5" // U+f5a5 +#define ICON_FA_FACE_SAD_CRY "\xef\x96\xb3" // U+f5b3 +#define ICON_FA_FACE_SAD_TEAR "\xef\x96\xb4" // U+f5b4 +#define ICON_FA_FACE_SMILE "\xef\x84\x98" // U+f118 +#define ICON_FA_FACE_SMILE_BEAM "\xef\x96\xb8" // U+f5b8 +#define ICON_FA_FACE_SMILE_WINK "\xef\x93\x9a" // U+f4da +#define ICON_FA_FACE_SURPRISE "\xef\x97\x82" // U+f5c2 +#define ICON_FA_FACE_TIRED "\xef\x97\x88" // U+f5c8 +#define ICON_FA_FAN "\xef\xa1\xa3" // U+f863 +#define ICON_FA_FAUCET "\xee\x80\x85" // U+e005 +#define ICON_FA_FAUCET_DRIP "\xee\x80\x86" // U+e006 +#define ICON_FA_FAX "\xef\x86\xac" // U+f1ac +#define ICON_FA_FEATHER "\xef\x94\xad" // U+f52d +#define ICON_FA_FEATHER_POINTED "\xef\x95\xab" // U+f56b +#define ICON_FA_FERRY "\xee\x93\xaa" // U+e4ea +#define ICON_FA_FILE "\xef\x85\x9b" // U+f15b +#define ICON_FA_FILE_ARROW_DOWN "\xef\x95\xad" // U+f56d +#define ICON_FA_FILE_ARROW_UP "\xef\x95\xb4" // U+f574 +#define ICON_FA_FILE_AUDIO "\xef\x87\x87" // U+f1c7 +#define ICON_FA_FILE_CIRCLE_CHECK "\xee\x96\xa0" // U+e5a0 +#define ICON_FA_FILE_CIRCLE_EXCLAMATION "\xee\x93\xab" // U+e4eb +#define ICON_FA_FILE_CIRCLE_MINUS "\xee\x93\xad" // U+e4ed +#define ICON_FA_FILE_CIRCLE_PLUS "\xee\x92\x94" // U+e494 +#define ICON_FA_FILE_CIRCLE_QUESTION "\xee\x93\xaf" // U+e4ef +#define ICON_FA_FILE_CIRCLE_XMARK "\xee\x96\xa1" // U+e5a1 +#define ICON_FA_FILE_CODE "\xef\x87\x89" // U+f1c9 +#define ICON_FA_FILE_CONTRACT "\xef\x95\xac" // U+f56c +#define ICON_FA_FILE_CSV "\xef\x9b\x9d" // U+f6dd +#define ICON_FA_FILE_EXCEL "\xef\x87\x83" // U+f1c3 +#define ICON_FA_FILE_EXPORT "\xef\x95\xae" // U+f56e +#define ICON_FA_FILE_IMAGE "\xef\x87\x85" // U+f1c5 +#define ICON_FA_FILE_IMPORT "\xef\x95\xaf" // U+f56f +#define ICON_FA_FILE_INVOICE "\xef\x95\xb0" // U+f570 +#define ICON_FA_FILE_INVOICE_DOLLAR "\xef\x95\xb1" // U+f571 +#define ICON_FA_FILE_LINES "\xef\x85\x9c" // U+f15c +#define ICON_FA_FILE_MEDICAL "\xef\x91\xb7" // U+f477 +#define ICON_FA_FILE_PDF "\xef\x87\x81" // U+f1c1 +#define ICON_FA_FILE_PEN "\xef\x8c\x9c" // U+f31c +#define ICON_FA_FILE_POWERPOINT "\xef\x87\x84" // U+f1c4 +#define ICON_FA_FILE_PRESCRIPTION "\xef\x95\xb2" // U+f572 +#define ICON_FA_FILE_SHIELD "\xee\x93\xb0" // U+e4f0 +#define ICON_FA_FILE_SIGNATURE "\xef\x95\xb3" // U+f573 +#define ICON_FA_FILE_VIDEO "\xef\x87\x88" // U+f1c8 +#define ICON_FA_FILE_WAVEFORM "\xef\x91\xb8" // U+f478 +#define ICON_FA_FILE_WORD "\xef\x87\x82" // U+f1c2 +#define ICON_FA_FILE_ZIPPER "\xef\x87\x86" // U+f1c6 +#define ICON_FA_FILL "\xef\x95\xb5" // U+f575 +#define ICON_FA_FILL_DRIP "\xef\x95\xb6" // U+f576 +#define ICON_FA_FILM "\xef\x80\x88" // U+f008 +#define ICON_FA_FILTER "\xef\x82\xb0" // U+f0b0 +#define ICON_FA_FILTER_CIRCLE_DOLLAR "\xef\x99\xa2" // U+f662 +#define ICON_FA_FILTER_CIRCLE_XMARK "\xee\x85\xbb" // U+e17b +#define ICON_FA_FINGERPRINT "\xef\x95\xb7" // U+f577 +#define ICON_FA_FIRE "\xef\x81\xad" // U+f06d +#define ICON_FA_FIRE_BURNER "\xee\x93\xb1" // U+e4f1 +#define ICON_FA_FIRE_EXTINGUISHER "\xef\x84\xb4" // U+f134 +#define ICON_FA_FIRE_FLAME_CURVED "\xef\x9f\xa4" // U+f7e4 +#define ICON_FA_FIRE_FLAME_SIMPLE "\xef\x91\xaa" // U+f46a +#define ICON_FA_FISH "\xef\x95\xb8" // U+f578 +#define ICON_FA_FISH_FINS "\xee\x93\xb2" // U+e4f2 +#define ICON_FA_FLAG "\xef\x80\xa4" // U+f024 +#define ICON_FA_FLAG_CHECKERED "\xef\x84\x9e" // U+f11e +#define ICON_FA_FLAG_USA "\xef\x9d\x8d" // U+f74d +#define ICON_FA_FLASK "\xef\x83\x83" // U+f0c3 +#define ICON_FA_FLASK_VIAL "\xee\x93\xb3" // U+e4f3 +#define ICON_FA_FLOPPY_DISK "\xef\x83\x87" // U+f0c7 +#define ICON_FA_FLORIN_SIGN "\xee\x86\x84" // U+e184 +#define ICON_FA_FOLDER "\xef\x81\xbb" // U+f07b +#define ICON_FA_FOLDER_CLOSED "\xee\x86\x85" // U+e185 +#define ICON_FA_FOLDER_MINUS "\xef\x99\x9d" // U+f65d +#define ICON_FA_FOLDER_OPEN "\xef\x81\xbc" // U+f07c +#define ICON_FA_FOLDER_PLUS "\xef\x99\x9e" // U+f65e +#define ICON_FA_FOLDER_TREE "\xef\xa0\x82" // U+f802 +#define ICON_FA_FONT "\xef\x80\xb1" // U+f031 +#define ICON_FA_FONT_AWESOME "\xef\x8a\xb4" // U+f2b4 +#define ICON_FA_FOOTBALL "\xef\x91\x8e" // U+f44e +#define ICON_FA_FORWARD "\xef\x81\x8e" // U+f04e +#define ICON_FA_FORWARD_FAST "\xef\x81\x90" // U+f050 +#define ICON_FA_FORWARD_STEP "\xef\x81\x91" // U+f051 +#define ICON_FA_FRANC_SIGN "\xee\x86\x8f" // U+e18f +#define ICON_FA_FROG "\xef\x94\xae" // U+f52e +#define ICON_FA_FUTBOL "\xef\x87\xa3" // U+f1e3 +#define ICON_FA_G "G" // U+0047 +#define ICON_FA_GAMEPAD "\xef\x84\x9b" // U+f11b +#define ICON_FA_GAS_PUMP "\xef\x94\xaf" // U+f52f +#define ICON_FA_GAUGE "\xef\x98\xa4" // U+f624 +#define ICON_FA_GAUGE_HIGH "\xef\x98\xa5" // U+f625 +#define ICON_FA_GAUGE_SIMPLE "\xef\x98\xa9" // U+f629 +#define ICON_FA_GAUGE_SIMPLE_HIGH "\xef\x98\xaa" // U+f62a +#define ICON_FA_GAVEL "\xef\x83\xa3" // U+f0e3 +#define ICON_FA_GEAR "\xef\x80\x93" // U+f013 +#define ICON_FA_GEARS "\xef\x82\x85" // U+f085 +#define ICON_FA_GEM "\xef\x8e\xa5" // U+f3a5 +#define ICON_FA_GENDERLESS "\xef\x88\xad" // U+f22d +#define ICON_FA_GHOST "\xef\x9b\xa2" // U+f6e2 +#define ICON_FA_GIFT "\xef\x81\xab" // U+f06b +#define ICON_FA_GIFTS "\xef\x9e\x9c" // U+f79c +#define ICON_FA_GLASS_WATER "\xee\x93\xb4" // U+e4f4 +#define ICON_FA_GLASS_WATER_DROPLET "\xee\x93\xb5" // U+e4f5 +#define ICON_FA_GLASSES "\xef\x94\xb0" // U+f530 +#define ICON_FA_GLOBE "\xef\x82\xac" // U+f0ac +#define ICON_FA_GOLF_BALL_TEE "\xef\x91\x90" // U+f450 +#define ICON_FA_GOPURAM "\xef\x99\xa4" // U+f664 +#define ICON_FA_GRADUATION_CAP "\xef\x86\x9d" // U+f19d +#define ICON_FA_GREATER_THAN ">" // U+003e +#define ICON_FA_GREATER_THAN_EQUAL "\xef\x94\xb2" // U+f532 +#define ICON_FA_GRIP "\xef\x96\x8d" // U+f58d +#define ICON_FA_GRIP_LINES "\xef\x9e\xa4" // U+f7a4 +#define ICON_FA_GRIP_LINES_VERTICAL "\xef\x9e\xa5" // U+f7a5 +#define ICON_FA_GRIP_VERTICAL "\xef\x96\x8e" // U+f58e +#define ICON_FA_GROUP_ARROWS_ROTATE "\xee\x93\xb6" // U+e4f6 +#define ICON_FA_GUARANI_SIGN "\xee\x86\x9a" // U+e19a +#define ICON_FA_GUITAR "\xef\x9e\xa6" // U+f7a6 +#define ICON_FA_GUN "\xee\x86\x9b" // U+e19b +#define ICON_FA_H "H" // U+0048 +#define ICON_FA_HAMMER "\xef\x9b\xa3" // U+f6e3 +#define ICON_FA_HAMSA "\xef\x99\xa5" // U+f665 +#define ICON_FA_HAND "\xef\x89\x96" // U+f256 +#define ICON_FA_HAND_BACK_FIST "\xef\x89\x95" // U+f255 +#define ICON_FA_HAND_DOTS "\xef\x91\xa1" // U+f461 +#define ICON_FA_HAND_FIST "\xef\x9b\x9e" // U+f6de +#define ICON_FA_HAND_HOLDING "\xef\x92\xbd" // U+f4bd +#define ICON_FA_HAND_HOLDING_DOLLAR "\xef\x93\x80" // U+f4c0 +#define ICON_FA_HAND_HOLDING_DROPLET "\xef\x93\x81" // U+f4c1 +#define ICON_FA_HAND_HOLDING_HAND "\xee\x93\xb7" // U+e4f7 +#define ICON_FA_HAND_HOLDING_HEART "\xef\x92\xbe" // U+f4be +#define ICON_FA_HAND_HOLDING_MEDICAL "\xee\x81\x9c" // U+e05c +#define ICON_FA_HAND_LIZARD "\xef\x89\x98" // U+f258 +#define ICON_FA_HAND_MIDDLE_FINGER "\xef\xa0\x86" // U+f806 +#define ICON_FA_HAND_PEACE "\xef\x89\x9b" // U+f25b +#define ICON_FA_HAND_POINT_DOWN "\xef\x82\xa7" // U+f0a7 +#define ICON_FA_HAND_POINT_LEFT "\xef\x82\xa5" // U+f0a5 +#define ICON_FA_HAND_POINT_RIGHT "\xef\x82\xa4" // U+f0a4 +#define ICON_FA_HAND_POINT_UP "\xef\x82\xa6" // U+f0a6 +#define ICON_FA_HAND_POINTER "\xef\x89\x9a" // U+f25a +#define ICON_FA_HAND_SCISSORS "\xef\x89\x97" // U+f257 +#define ICON_FA_HAND_SPARKLES "\xee\x81\x9d" // U+e05d +#define ICON_FA_HAND_SPOCK "\xef\x89\x99" // U+f259 +#define ICON_FA_HANDCUFFS "\xee\x93\xb8" // U+e4f8 +#define ICON_FA_HANDS "\xef\x8a\xa7" // U+f2a7 +#define ICON_FA_HANDS_ASL_INTERPRETING "\xef\x8a\xa3" // U+f2a3 +#define ICON_FA_HANDS_BOUND "\xee\x93\xb9" // U+e4f9 +#define ICON_FA_HANDS_BUBBLES "\xee\x81\x9e" // U+e05e +#define ICON_FA_HANDS_CLAPPING "\xee\x86\xa8" // U+e1a8 +#define ICON_FA_HANDS_HOLDING "\xef\x93\x82" // U+f4c2 +#define ICON_FA_HANDS_HOLDING_CHILD "\xee\x93\xba" // U+e4fa +#define ICON_FA_HANDS_HOLDING_CIRCLE "\xee\x93\xbb" // U+e4fb +#define ICON_FA_HANDS_PRAYING "\xef\x9a\x84" // U+f684 +#define ICON_FA_HANDSHAKE "\xef\x8a\xb5" // U+f2b5 +#define ICON_FA_HANDSHAKE_ANGLE "\xef\x93\x84" // U+f4c4 +#define ICON_FA_HANDSHAKE_SIMPLE "\xef\x93\x86" // U+f4c6 +#define ICON_FA_HANDSHAKE_SIMPLE_SLASH "\xee\x81\x9f" // U+e05f +#define ICON_FA_HANDSHAKE_SLASH "\xee\x81\xa0" // U+e060 +#define ICON_FA_HANUKIAH "\xef\x9b\xa6" // U+f6e6 +#define ICON_FA_HARD_DRIVE "\xef\x82\xa0" // U+f0a0 +#define ICON_FA_HASHTAG "#" // U+0023 +#define ICON_FA_HAT_COWBOY "\xef\xa3\x80" // U+f8c0 +#define ICON_FA_HAT_COWBOY_SIDE "\xef\xa3\x81" // U+f8c1 +#define ICON_FA_HAT_WIZARD "\xef\x9b\xa8" // U+f6e8 +#define ICON_FA_HEAD_SIDE_COUGH "\xee\x81\xa1" // U+e061 +#define ICON_FA_HEAD_SIDE_COUGH_SLASH "\xee\x81\xa2" // U+e062 +#define ICON_FA_HEAD_SIDE_MASK "\xee\x81\xa3" // U+e063 +#define ICON_FA_HEAD_SIDE_VIRUS "\xee\x81\xa4" // U+e064 +#define ICON_FA_HEADING "\xef\x87\x9c" // U+f1dc +#define ICON_FA_HEADPHONES "\xef\x80\xa5" // U+f025 +#define ICON_FA_HEADPHONES_SIMPLE "\xef\x96\x8f" // U+f58f +#define ICON_FA_HEADSET "\xef\x96\x90" // U+f590 +#define ICON_FA_HEART "\xef\x80\x84" // U+f004 +#define ICON_FA_HEART_CIRCLE_BOLT "\xee\x93\xbc" // U+e4fc +#define ICON_FA_HEART_CIRCLE_CHECK "\xee\x93\xbd" // U+e4fd +#define ICON_FA_HEART_CIRCLE_EXCLAMATION "\xee\x93\xbe" // U+e4fe +#define ICON_FA_HEART_CIRCLE_MINUS "\xee\x93\xbf" // U+e4ff +#define ICON_FA_HEART_CIRCLE_PLUS "\xee\x94\x80" // U+e500 +#define ICON_FA_HEART_CIRCLE_XMARK "\xee\x94\x81" // U+e501 +#define ICON_FA_HEART_CRACK "\xef\x9e\xa9" // U+f7a9 +#define ICON_FA_HEART_PULSE "\xef\x88\x9e" // U+f21e +#define ICON_FA_HELICOPTER "\xef\x94\xb3" // U+f533 +#define ICON_FA_HELICOPTER_SYMBOL "\xee\x94\x82" // U+e502 +#define ICON_FA_HELMET_SAFETY "\xef\xa0\x87" // U+f807 +#define ICON_FA_HELMET_UN "\xee\x94\x83" // U+e503 +#define ICON_FA_HIGHLIGHTER "\xef\x96\x91" // U+f591 +#define ICON_FA_HILL_AVALANCHE "\xee\x94\x87" // U+e507 +#define ICON_FA_HILL_ROCKSLIDE "\xee\x94\x88" // U+e508 +#define ICON_FA_HIPPO "\xef\x9b\xad" // U+f6ed +#define ICON_FA_HOCKEY_PUCK "\xef\x91\x93" // U+f453 +#define ICON_FA_HOLLY_BERRY "\xef\x9e\xaa" // U+f7aa +#define ICON_FA_HORSE "\xef\x9b\xb0" // U+f6f0 +#define ICON_FA_HORSE_HEAD "\xef\x9e\xab" // U+f7ab +#define ICON_FA_HOSPITAL "\xef\x83\xb8" // U+f0f8 +#define ICON_FA_HOSPITAL_USER "\xef\xa0\x8d" // U+f80d +#define ICON_FA_HOT_TUB_PERSON "\xef\x96\x93" // U+f593 +#define ICON_FA_HOTDOG "\xef\xa0\x8f" // U+f80f +#define ICON_FA_HOTEL "\xef\x96\x94" // U+f594 +#define ICON_FA_HOURGLASS "\xef\x89\x94" // U+f254 +#define ICON_FA_HOURGLASS_END "\xef\x89\x93" // U+f253 +#define ICON_FA_HOURGLASS_HALF "\xef\x89\x92" // U+f252 +#define ICON_FA_HOURGLASS_START "\xef\x89\x91" // U+f251 +#define ICON_FA_HOUSE "\xef\x80\x95" // U+f015 +#define ICON_FA_HOUSE_CHIMNEY "\xee\x8e\xaf" // U+e3af +#define ICON_FA_HOUSE_CHIMNEY_CRACK "\xef\x9b\xb1" // U+f6f1 +#define ICON_FA_HOUSE_CHIMNEY_MEDICAL "\xef\x9f\xb2" // U+f7f2 +#define ICON_FA_HOUSE_CHIMNEY_USER "\xee\x81\xa5" // U+e065 +#define ICON_FA_HOUSE_CHIMNEY_WINDOW "\xee\x80\x8d" // U+e00d +#define ICON_FA_HOUSE_CIRCLE_CHECK "\xee\x94\x89" // U+e509 +#define ICON_FA_HOUSE_CIRCLE_EXCLAMATION "\xee\x94\x8a" // U+e50a +#define ICON_FA_HOUSE_CIRCLE_XMARK "\xee\x94\x8b" // U+e50b +#define ICON_FA_HOUSE_CRACK "\xee\x8e\xb1" // U+e3b1 +#define ICON_FA_HOUSE_FIRE "\xee\x94\x8c" // U+e50c +#define ICON_FA_HOUSE_FLAG "\xee\x94\x8d" // U+e50d +#define ICON_FA_HOUSE_FLOOD_WATER "\xee\x94\x8e" // U+e50e +#define ICON_FA_HOUSE_FLOOD_WATER_CIRCLE_ARROW_RIGHT "\xee\x94\x8f" // U+e50f +#define ICON_FA_HOUSE_LAPTOP "\xee\x81\xa6" // U+e066 +#define ICON_FA_HOUSE_LOCK "\xee\x94\x90" // U+e510 +#define ICON_FA_HOUSE_MEDICAL "\xee\x8e\xb2" // U+e3b2 +#define ICON_FA_HOUSE_MEDICAL_CIRCLE_CHECK "\xee\x94\x91" // U+e511 +#define ICON_FA_HOUSE_MEDICAL_CIRCLE_EXCLAMATION "\xee\x94\x92" // U+e512 +#define ICON_FA_HOUSE_MEDICAL_CIRCLE_XMARK "\xee\x94\x93" // U+e513 +#define ICON_FA_HOUSE_MEDICAL_FLAG "\xee\x94\x94" // U+e514 +#define ICON_FA_HOUSE_SIGNAL "\xee\x80\x92" // U+e012 +#define ICON_FA_HOUSE_TSUNAMI "\xee\x94\x95" // U+e515 +#define ICON_FA_HOUSE_USER "\xee\x86\xb0" // U+e1b0 +#define ICON_FA_HRYVNIA_SIGN "\xef\x9b\xb2" // U+f6f2 +#define ICON_FA_HURRICANE "\xef\x9d\x91" // U+f751 +#define ICON_FA_I "I" // U+0049 +#define ICON_FA_I_CURSOR "\xef\x89\x86" // U+f246 +#define ICON_FA_ICE_CREAM "\xef\xa0\x90" // U+f810 +#define ICON_FA_ICICLES "\xef\x9e\xad" // U+f7ad +#define ICON_FA_ICONS "\xef\xa1\xad" // U+f86d +#define ICON_FA_ID_BADGE "\xef\x8b\x81" // U+f2c1 +#define ICON_FA_ID_CARD "\xef\x8b\x82" // U+f2c2 +#define ICON_FA_ID_CARD_CLIP "\xef\x91\xbf" // U+f47f +#define ICON_FA_IGLOO "\xef\x9e\xae" // U+f7ae +#define ICON_FA_IMAGE "\xef\x80\xbe" // U+f03e +#define ICON_FA_IMAGE_PORTRAIT "\xef\x8f\xa0" // U+f3e0 +#define ICON_FA_IMAGES "\xef\x8c\x82" // U+f302 +#define ICON_FA_INBOX "\xef\x80\x9c" // U+f01c +#define ICON_FA_INDENT "\xef\x80\xbc" // U+f03c +#define ICON_FA_INDIAN_RUPEE_SIGN "\xee\x86\xbc" // U+e1bc +#define ICON_FA_INDUSTRY "\xef\x89\xb5" // U+f275 +#define ICON_FA_INFINITY "\xef\x94\xb4" // U+f534 +#define ICON_FA_INFO "\xef\x84\xa9" // U+f129 +#define ICON_FA_ITALIC "\xef\x80\xb3" // U+f033 +#define ICON_FA_J "J" // U+004a +#define ICON_FA_JAR "\xee\x94\x96" // U+e516 +#define ICON_FA_JAR_WHEAT "\xee\x94\x97" // U+e517 +#define ICON_FA_JEDI "\xef\x99\xa9" // U+f669 +#define ICON_FA_JET_FIGHTER "\xef\x83\xbb" // U+f0fb +#define ICON_FA_JET_FIGHTER_UP "\xee\x94\x98" // U+e518 +#define ICON_FA_JOINT "\xef\x96\x95" // U+f595 +#define ICON_FA_JUG_DETERGENT "\xee\x94\x99" // U+e519 +#define ICON_FA_K "K" // U+004b +#define ICON_FA_KAABA "\xef\x99\xab" // U+f66b +#define ICON_FA_KEY "\xef\x82\x84" // U+f084 +#define ICON_FA_KEYBOARD "\xef\x84\x9c" // U+f11c +#define ICON_FA_KHANDA "\xef\x99\xad" // U+f66d +#define ICON_FA_KIP_SIGN "\xee\x87\x84" // U+e1c4 +#define ICON_FA_KIT_MEDICAL "\xef\x91\xb9" // U+f479 +#define ICON_FA_KITCHEN_SET "\xee\x94\x9a" // U+e51a +#define ICON_FA_KIWI_BIRD "\xef\x94\xb5" // U+f535 +#define ICON_FA_L "L" // U+004c +#define ICON_FA_LAND_MINE_ON "\xee\x94\x9b" // U+e51b +#define ICON_FA_LANDMARK "\xef\x99\xaf" // U+f66f +#define ICON_FA_LANDMARK_DOME "\xef\x9d\x92" // U+f752 +#define ICON_FA_LANDMARK_FLAG "\xee\x94\x9c" // U+e51c +#define ICON_FA_LANGUAGE "\xef\x86\xab" // U+f1ab +#define ICON_FA_LAPTOP "\xef\x84\x89" // U+f109 +#define ICON_FA_LAPTOP_CODE "\xef\x97\xbc" // U+f5fc +#define ICON_FA_LAPTOP_FILE "\xee\x94\x9d" // U+e51d +#define ICON_FA_LAPTOP_MEDICAL "\xef\xa0\x92" // U+f812 +#define ICON_FA_LARI_SIGN "\xee\x87\x88" // U+e1c8 +#define ICON_FA_LAYER_GROUP "\xef\x97\xbd" // U+f5fd +#define ICON_FA_LEAF "\xef\x81\xac" // U+f06c +#define ICON_FA_LEFT_LONG "\xef\x8c\x8a" // U+f30a +#define ICON_FA_LEFT_RIGHT "\xef\x8c\xb7" // U+f337 +#define ICON_FA_LEMON "\xef\x82\x94" // U+f094 +#define ICON_FA_LESS_THAN "<" // U+003c +#define ICON_FA_LESS_THAN_EQUAL "\xef\x94\xb7" // U+f537 +#define ICON_FA_LIFE_RING "\xef\x87\x8d" // U+f1cd +#define ICON_FA_LIGHTBULB "\xef\x83\xab" // U+f0eb +#define ICON_FA_LINES_LEANING "\xee\x94\x9e" // U+e51e +#define ICON_FA_LINK "\xef\x83\x81" // U+f0c1 +#define ICON_FA_LINK_SLASH "\xef\x84\xa7" // U+f127 +#define ICON_FA_LIRA_SIGN "\xef\x86\x95" // U+f195 +#define ICON_FA_LIST "\xef\x80\xba" // U+f03a +#define ICON_FA_LIST_CHECK "\xef\x82\xae" // U+f0ae +#define ICON_FA_LIST_OL "\xef\x83\x8b" // U+f0cb +#define ICON_FA_LIST_UL "\xef\x83\x8a" // U+f0ca +#define ICON_FA_LITECOIN_SIGN "\xee\x87\x93" // U+e1d3 +#define ICON_FA_LOCATION_ARROW "\xef\x84\xa4" // U+f124 +#define ICON_FA_LOCATION_CROSSHAIRS "\xef\x98\x81" // U+f601 +#define ICON_FA_LOCATION_DOT "\xef\x8f\x85" // U+f3c5 +#define ICON_FA_LOCATION_PIN "\xef\x81\x81" // U+f041 +#define ICON_FA_LOCATION_PIN_LOCK "\xee\x94\x9f" // U+e51f +#define ICON_FA_LOCK "\xef\x80\xa3" // U+f023 +#define ICON_FA_LOCK_OPEN "\xef\x8f\x81" // U+f3c1 +#define ICON_FA_LOCUST "\xee\x94\xa0" // U+e520 +#define ICON_FA_LUNGS "\xef\x98\x84" // U+f604 +#define ICON_FA_LUNGS_VIRUS "\xee\x81\xa7" // U+e067 +#define ICON_FA_M "M" // U+004d +#define ICON_FA_MAGNET "\xef\x81\xb6" // U+f076 +#define ICON_FA_MAGNIFYING_GLASS "\xef\x80\x82" // U+f002 +#define ICON_FA_MAGNIFYING_GLASS_ARROW_RIGHT "\xee\x94\xa1" // U+e521 +#define ICON_FA_MAGNIFYING_GLASS_CHART "\xee\x94\xa2" // U+e522 +#define ICON_FA_MAGNIFYING_GLASS_DOLLAR "\xef\x9a\x88" // U+f688 +#define ICON_FA_MAGNIFYING_GLASS_LOCATION "\xef\x9a\x89" // U+f689 +#define ICON_FA_MAGNIFYING_GLASS_MINUS "\xef\x80\x90" // U+f010 +#define ICON_FA_MAGNIFYING_GLASS_PLUS "\xef\x80\x8e" // U+f00e +#define ICON_FA_MANAT_SIGN "\xee\x87\x95" // U+e1d5 +#define ICON_FA_MAP "\xef\x89\xb9" // U+f279 +#define ICON_FA_MAP_LOCATION "\xef\x96\x9f" // U+f59f +#define ICON_FA_MAP_LOCATION_DOT "\xef\x96\xa0" // U+f5a0 +#define ICON_FA_MAP_PIN "\xef\x89\xb6" // U+f276 +#define ICON_FA_MARKER "\xef\x96\xa1" // U+f5a1 +#define ICON_FA_MARS "\xef\x88\xa2" // U+f222 +#define ICON_FA_MARS_AND_VENUS "\xef\x88\xa4" // U+f224 +#define ICON_FA_MARS_AND_VENUS_BURST "\xee\x94\xa3" // U+e523 +#define ICON_FA_MARS_DOUBLE "\xef\x88\xa7" // U+f227 +#define ICON_FA_MARS_STROKE "\xef\x88\xa9" // U+f229 +#define ICON_FA_MARS_STROKE_RIGHT "\xef\x88\xab" // U+f22b +#define ICON_FA_MARS_STROKE_UP "\xef\x88\xaa" // U+f22a +#define ICON_FA_MARTINI_GLASS "\xef\x95\xbb" // U+f57b +#define ICON_FA_MARTINI_GLASS_CITRUS "\xef\x95\xa1" // U+f561 +#define ICON_FA_MARTINI_GLASS_EMPTY "\xef\x80\x80" // U+f000 +#define ICON_FA_MASK "\xef\x9b\xba" // U+f6fa +#define ICON_FA_MASK_FACE "\xee\x87\x97" // U+e1d7 +#define ICON_FA_MASK_VENTILATOR "\xee\x94\xa4" // U+e524 +#define ICON_FA_MASKS_THEATER "\xef\x98\xb0" // U+f630 +#define ICON_FA_MATTRESS_PILLOW "\xee\x94\xa5" // U+e525 +#define ICON_FA_MAXIMIZE "\xef\x8c\x9e" // U+f31e +#define ICON_FA_MEDAL "\xef\x96\xa2" // U+f5a2 +#define ICON_FA_MEMORY "\xef\x94\xb8" // U+f538 +#define ICON_FA_MENORAH "\xef\x99\xb6" // U+f676 +#define ICON_FA_MERCURY "\xef\x88\xa3" // U+f223 +#define ICON_FA_MESSAGE "\xef\x89\xba" // U+f27a +#define ICON_FA_METEOR "\xef\x9d\x93" // U+f753 +#define ICON_FA_MICROCHIP "\xef\x8b\x9b" // U+f2db +#define ICON_FA_MICROPHONE "\xef\x84\xb0" // U+f130 +#define ICON_FA_MICROPHONE_LINES "\xef\x8f\x89" // U+f3c9 +#define ICON_FA_MICROPHONE_LINES_SLASH "\xef\x94\xb9" // U+f539 +#define ICON_FA_MICROPHONE_SLASH "\xef\x84\xb1" // U+f131 +#define ICON_FA_MICROSCOPE "\xef\x98\x90" // U+f610 +#define ICON_FA_MILL_SIGN "\xee\x87\xad" // U+e1ed +#define ICON_FA_MINIMIZE "\xef\x9e\x8c" // U+f78c +#define ICON_FA_MINUS "\xef\x81\xa8" // U+f068 +#define ICON_FA_MITTEN "\xef\x9e\xb5" // U+f7b5 +#define ICON_FA_MOBILE "\xef\x8f\x8e" // U+f3ce +#define ICON_FA_MOBILE_BUTTON "\xef\x84\x8b" // U+f10b +#define ICON_FA_MOBILE_RETRO "\xee\x94\xa7" // U+e527 +#define ICON_FA_MOBILE_SCREEN "\xef\x8f\x8f" // U+f3cf +#define ICON_FA_MOBILE_SCREEN_BUTTON "\xef\x8f\x8d" // U+f3cd +#define ICON_FA_MONEY_BILL "\xef\x83\x96" // U+f0d6 +#define ICON_FA_MONEY_BILL_1 "\xef\x8f\x91" // U+f3d1 +#define ICON_FA_MONEY_BILL_1_WAVE "\xef\x94\xbb" // U+f53b +#define ICON_FA_MONEY_BILL_TRANSFER "\xee\x94\xa8" // U+e528 +#define ICON_FA_MONEY_BILL_TREND_UP "\xee\x94\xa9" // U+e529 +#define ICON_FA_MONEY_BILL_WAVE "\xef\x94\xba" // U+f53a +#define ICON_FA_MONEY_BILL_WHEAT "\xee\x94\xaa" // U+e52a +#define ICON_FA_MONEY_BILLS "\xee\x87\xb3" // U+e1f3 +#define ICON_FA_MONEY_CHECK "\xef\x94\xbc" // U+f53c +#define ICON_FA_MONEY_CHECK_DOLLAR "\xef\x94\xbd" // U+f53d +#define ICON_FA_MONUMENT "\xef\x96\xa6" // U+f5a6 +#define ICON_FA_MOON "\xef\x86\x86" // U+f186 +#define ICON_FA_MORTAR_PESTLE "\xef\x96\xa7" // U+f5a7 +#define ICON_FA_MOSQUE "\xef\x99\xb8" // U+f678 +#define ICON_FA_MOSQUITO "\xee\x94\xab" // U+e52b +#define ICON_FA_MOSQUITO_NET "\xee\x94\xac" // U+e52c +#define ICON_FA_MOTORCYCLE "\xef\x88\x9c" // U+f21c +#define ICON_FA_MOUND "\xee\x94\xad" // U+e52d +#define ICON_FA_MOUNTAIN "\xef\x9b\xbc" // U+f6fc +#define ICON_FA_MOUNTAIN_CITY "\xee\x94\xae" // U+e52e +#define ICON_FA_MOUNTAIN_SUN "\xee\x94\xaf" // U+e52f +#define ICON_FA_MUG_HOT "\xef\x9e\xb6" // U+f7b6 +#define ICON_FA_MUG_SAUCER "\xef\x83\xb4" // U+f0f4 +#define ICON_FA_MUSIC "\xef\x80\x81" // U+f001 +#define ICON_FA_N "N" // U+004e +#define ICON_FA_NAIRA_SIGN "\xee\x87\xb6" // U+e1f6 +#define ICON_FA_NETWORK_WIRED "\xef\x9b\xbf" // U+f6ff +#define ICON_FA_NEUTER "\xef\x88\xac" // U+f22c +#define ICON_FA_NEWSPAPER "\xef\x87\xaa" // U+f1ea +#define ICON_FA_NOT_EQUAL "\xef\x94\xbe" // U+f53e +#define ICON_FA_NOTDEF "\xee\x87\xbe" // U+e1fe +#define ICON_FA_NOTE_STICKY "\xef\x89\x89" // U+f249 +#define ICON_FA_NOTES_MEDICAL "\xef\x92\x81" // U+f481 +#define ICON_FA_O "O" // U+004f +#define ICON_FA_OBJECT_GROUP "\xef\x89\x87" // U+f247 +#define ICON_FA_OBJECT_UNGROUP "\xef\x89\x88" // U+f248 +#define ICON_FA_OIL_CAN "\xef\x98\x93" // U+f613 +#define ICON_FA_OIL_WELL "\xee\x94\xb2" // U+e532 +#define ICON_FA_OM "\xef\x99\xb9" // U+f679 +#define ICON_FA_OTTER "\xef\x9c\x80" // U+f700 +#define ICON_FA_OUTDENT "\xef\x80\xbb" // U+f03b +#define ICON_FA_P "P" // U+0050 +#define ICON_FA_PAGER "\xef\xa0\x95" // U+f815 +#define ICON_FA_PAINT_ROLLER "\xef\x96\xaa" // U+f5aa +#define ICON_FA_PAINTBRUSH "\xef\x87\xbc" // U+f1fc +#define ICON_FA_PALETTE "\xef\x94\xbf" // U+f53f +#define ICON_FA_PALLET "\xef\x92\x82" // U+f482 +#define ICON_FA_PANORAMA "\xee\x88\x89" // U+e209 +#define ICON_FA_PAPER_PLANE "\xef\x87\x98" // U+f1d8 +#define ICON_FA_PAPERCLIP "\xef\x83\x86" // U+f0c6 +#define ICON_FA_PARACHUTE_BOX "\xef\x93\x8d" // U+f4cd +#define ICON_FA_PARAGRAPH "\xef\x87\x9d" // U+f1dd +#define ICON_FA_PASSPORT "\xef\x96\xab" // U+f5ab +#define ICON_FA_PASTE "\xef\x83\xaa" // U+f0ea +#define ICON_FA_PAUSE "\xef\x81\x8c" // U+f04c +#define ICON_FA_PAW "\xef\x86\xb0" // U+f1b0 +#define ICON_FA_PEACE "\xef\x99\xbc" // U+f67c +#define ICON_FA_PEN "\xef\x8c\x84" // U+f304 +#define ICON_FA_PEN_CLIP "\xef\x8c\x85" // U+f305 +#define ICON_FA_PEN_FANCY "\xef\x96\xac" // U+f5ac +#define ICON_FA_PEN_NIB "\xef\x96\xad" // U+f5ad +#define ICON_FA_PEN_RULER "\xef\x96\xae" // U+f5ae +#define ICON_FA_PEN_TO_SQUARE "\xef\x81\x84" // U+f044 +#define ICON_FA_PENCIL "\xef\x8c\x83" // U+f303 +#define ICON_FA_PEOPLE_ARROWS "\xee\x81\xa8" // U+e068 +#define ICON_FA_PEOPLE_CARRY_BOX "\xef\x93\x8e" // U+f4ce +#define ICON_FA_PEOPLE_GROUP "\xee\x94\xb3" // U+e533 +#define ICON_FA_PEOPLE_LINE "\xee\x94\xb4" // U+e534 +#define ICON_FA_PEOPLE_PULLING "\xee\x94\xb5" // U+e535 +#define ICON_FA_PEOPLE_ROBBERY "\xee\x94\xb6" // U+e536 +#define ICON_FA_PEOPLE_ROOF "\xee\x94\xb7" // U+e537 +#define ICON_FA_PEPPER_HOT "\xef\xa0\x96" // U+f816 +#define ICON_FA_PERCENT "%" // U+0025 +#define ICON_FA_PERSON "\xef\x86\x83" // U+f183 +#define ICON_FA_PERSON_ARROW_DOWN_TO_LINE "\xee\x94\xb8" // U+e538 +#define ICON_FA_PERSON_ARROW_UP_FROM_LINE "\xee\x94\xb9" // U+e539 +#define ICON_FA_PERSON_BIKING "\xef\xa1\x8a" // U+f84a +#define ICON_FA_PERSON_BOOTH "\xef\x9d\x96" // U+f756 +#define ICON_FA_PERSON_BREASTFEEDING "\xee\x94\xba" // U+e53a +#define ICON_FA_PERSON_BURST "\xee\x94\xbb" // U+e53b +#define ICON_FA_PERSON_CANE "\xee\x94\xbc" // U+e53c +#define ICON_FA_PERSON_CHALKBOARD "\xee\x94\xbd" // U+e53d +#define ICON_FA_PERSON_CIRCLE_CHECK "\xee\x94\xbe" // U+e53e +#define ICON_FA_PERSON_CIRCLE_EXCLAMATION "\xee\x94\xbf" // U+e53f +#define ICON_FA_PERSON_CIRCLE_MINUS "\xee\x95\x80" // U+e540 +#define ICON_FA_PERSON_CIRCLE_PLUS "\xee\x95\x81" // U+e541 +#define ICON_FA_PERSON_CIRCLE_QUESTION "\xee\x95\x82" // U+e542 +#define ICON_FA_PERSON_CIRCLE_XMARK "\xee\x95\x83" // U+e543 +#define ICON_FA_PERSON_DIGGING "\xef\xa1\x9e" // U+f85e +#define ICON_FA_PERSON_DOTS_FROM_LINE "\xef\x91\xb0" // U+f470 +#define ICON_FA_PERSON_DRESS "\xef\x86\x82" // U+f182 +#define ICON_FA_PERSON_DRESS_BURST "\xee\x95\x84" // U+e544 +#define ICON_FA_PERSON_DROWNING "\xee\x95\x85" // U+e545 +#define ICON_FA_PERSON_FALLING "\xee\x95\x86" // U+e546 +#define ICON_FA_PERSON_FALLING_BURST "\xee\x95\x87" // U+e547 +#define ICON_FA_PERSON_HALF_DRESS "\xee\x95\x88" // U+e548 +#define ICON_FA_PERSON_HARASSING "\xee\x95\x89" // U+e549 +#define ICON_FA_PERSON_HIKING "\xef\x9b\xac" // U+f6ec +#define ICON_FA_PERSON_MILITARY_POINTING "\xee\x95\x8a" // U+e54a +#define ICON_FA_PERSON_MILITARY_RIFLE "\xee\x95\x8b" // U+e54b +#define ICON_FA_PERSON_MILITARY_TO_PERSON "\xee\x95\x8c" // U+e54c +#define ICON_FA_PERSON_PRAYING "\xef\x9a\x83" // U+f683 +#define ICON_FA_PERSON_PREGNANT "\xee\x8c\x9e" // U+e31e +#define ICON_FA_PERSON_RAYS "\xee\x95\x8d" // U+e54d +#define ICON_FA_PERSON_RIFLE "\xee\x95\x8e" // U+e54e +#define ICON_FA_PERSON_RUNNING "\xef\x9c\x8c" // U+f70c +#define ICON_FA_PERSON_SHELTER "\xee\x95\x8f" // U+e54f +#define ICON_FA_PERSON_SKATING "\xef\x9f\x85" // U+f7c5 +#define ICON_FA_PERSON_SKIING "\xef\x9f\x89" // U+f7c9 +#define ICON_FA_PERSON_SKIING_NORDIC "\xef\x9f\x8a" // U+f7ca +#define ICON_FA_PERSON_SNOWBOARDING "\xef\x9f\x8e" // U+f7ce +#define ICON_FA_PERSON_SWIMMING "\xef\x97\x84" // U+f5c4 +#define ICON_FA_PERSON_THROUGH_WINDOW "\xee\x96\xa9" // U+e5a9 +#define ICON_FA_PERSON_WALKING "\xef\x95\x94" // U+f554 +#define ICON_FA_PERSON_WALKING_ARROW_LOOP_LEFT "\xee\x95\x91" // U+e551 +#define ICON_FA_PERSON_WALKING_ARROW_RIGHT "\xee\x95\x92" // U+e552 +#define ICON_FA_PERSON_WALKING_DASHED_LINE_ARROW_RIGHT "\xee\x95\x93" // U+e553 +#define ICON_FA_PERSON_WALKING_LUGGAGE "\xee\x95\x94" // U+e554 +#define ICON_FA_PERSON_WALKING_WITH_CANE "\xef\x8a\x9d" // U+f29d +#define ICON_FA_PESETA_SIGN "\xee\x88\xa1" // U+e221 +#define ICON_FA_PESO_SIGN "\xee\x88\xa2" // U+e222 +#define ICON_FA_PHONE "\xef\x82\x95" // U+f095 +#define ICON_FA_PHONE_FLIP "\xef\xa1\xb9" // U+f879 +#define ICON_FA_PHONE_SLASH "\xef\x8f\x9d" // U+f3dd +#define ICON_FA_PHONE_VOLUME "\xef\x8a\xa0" // U+f2a0 +#define ICON_FA_PHOTO_FILM "\xef\xa1\xbc" // U+f87c +#define ICON_FA_PIGGY_BANK "\xef\x93\x93" // U+f4d3 +#define ICON_FA_PILLS "\xef\x92\x84" // U+f484 +#define ICON_FA_PIZZA_SLICE "\xef\xa0\x98" // U+f818 +#define ICON_FA_PLACE_OF_WORSHIP "\xef\x99\xbf" // U+f67f +#define ICON_FA_PLANE "\xef\x81\xb2" // U+f072 +#define ICON_FA_PLANE_ARRIVAL "\xef\x96\xaf" // U+f5af +#define ICON_FA_PLANE_CIRCLE_CHECK "\xee\x95\x95" // U+e555 +#define ICON_FA_PLANE_CIRCLE_EXCLAMATION "\xee\x95\x96" // U+e556 +#define ICON_FA_PLANE_CIRCLE_XMARK "\xee\x95\x97" // U+e557 +#define ICON_FA_PLANE_DEPARTURE "\xef\x96\xb0" // U+f5b0 +#define ICON_FA_PLANE_LOCK "\xee\x95\x98" // U+e558 +#define ICON_FA_PLANE_SLASH "\xee\x81\xa9" // U+e069 +#define ICON_FA_PLANE_UP "\xee\x88\xad" // U+e22d +#define ICON_FA_PLANT_WILT "\xee\x96\xaa" // U+e5aa +#define ICON_FA_PLATE_WHEAT "\xee\x95\x9a" // U+e55a +#define ICON_FA_PLAY "\xef\x81\x8b" // U+f04b +#define ICON_FA_PLUG "\xef\x87\xa6" // U+f1e6 +#define ICON_FA_PLUG_CIRCLE_BOLT "\xee\x95\x9b" // U+e55b +#define ICON_FA_PLUG_CIRCLE_CHECK "\xee\x95\x9c" // U+e55c +#define ICON_FA_PLUG_CIRCLE_EXCLAMATION "\xee\x95\x9d" // U+e55d +#define ICON_FA_PLUG_CIRCLE_MINUS "\xee\x95\x9e" // U+e55e +#define ICON_FA_PLUG_CIRCLE_PLUS "\xee\x95\x9f" // U+e55f +#define ICON_FA_PLUG_CIRCLE_XMARK "\xee\x95\xa0" // U+e560 +#define ICON_FA_PLUS "+" // U+002b +#define ICON_FA_PLUS_MINUS "\xee\x90\xbc" // U+e43c +#define ICON_FA_PODCAST "\xef\x8b\x8e" // U+f2ce +#define ICON_FA_POO "\xef\x8b\xbe" // U+f2fe +#define ICON_FA_POO_STORM "\xef\x9d\x9a" // U+f75a +#define ICON_FA_POOP "\xef\x98\x99" // U+f619 +#define ICON_FA_POWER_OFF "\xef\x80\x91" // U+f011 +#define ICON_FA_PRESCRIPTION "\xef\x96\xb1" // U+f5b1 +#define ICON_FA_PRESCRIPTION_BOTTLE "\xef\x92\x85" // U+f485 +#define ICON_FA_PRESCRIPTION_BOTTLE_MEDICAL "\xef\x92\x86" // U+f486 +#define ICON_FA_PRINT "\xef\x80\xaf" // U+f02f +#define ICON_FA_PUMP_MEDICAL "\xee\x81\xaa" // U+e06a +#define ICON_FA_PUMP_SOAP "\xee\x81\xab" // U+e06b +#define ICON_FA_PUZZLE_PIECE "\xef\x84\xae" // U+f12e +#define ICON_FA_Q "Q" // U+0051 +#define ICON_FA_QRCODE "\xef\x80\xa9" // U+f029 +#define ICON_FA_QUESTION "?" // U+003f +#define ICON_FA_QUOTE_LEFT "\xef\x84\x8d" // U+f10d +#define ICON_FA_QUOTE_RIGHT "\xef\x84\x8e" // U+f10e +#define ICON_FA_R "R" // U+0052 +#define ICON_FA_RADIATION "\xef\x9e\xb9" // U+f7b9 +#define ICON_FA_RADIO "\xef\xa3\x97" // U+f8d7 +#define ICON_FA_RAINBOW "\xef\x9d\x9b" // U+f75b +#define ICON_FA_RANKING_STAR "\xee\x95\xa1" // U+e561 +#define ICON_FA_RECEIPT "\xef\x95\x83" // U+f543 +#define ICON_FA_RECORD_VINYL "\xef\xa3\x99" // U+f8d9 +#define ICON_FA_RECTANGLE_AD "\xef\x99\x81" // U+f641 +#define ICON_FA_RECTANGLE_LIST "\xef\x80\xa2" // U+f022 +#define ICON_FA_RECTANGLE_XMARK "\xef\x90\x90" // U+f410 +#define ICON_FA_RECYCLE "\xef\x86\xb8" // U+f1b8 +#define ICON_FA_REGISTERED "\xef\x89\x9d" // U+f25d +#define ICON_FA_REPEAT "\xef\x8d\xa3" // U+f363 +#define ICON_FA_REPLY "\xef\x8f\xa5" // U+f3e5 +#define ICON_FA_REPLY_ALL "\xef\x84\xa2" // U+f122 +#define ICON_FA_REPUBLICAN "\xef\x9d\x9e" // U+f75e +#define ICON_FA_RESTROOM "\xef\x9e\xbd" // U+f7bd +#define ICON_FA_RETWEET "\xef\x81\xb9" // U+f079 +#define ICON_FA_RIBBON "\xef\x93\x96" // U+f4d6 +#define ICON_FA_RIGHT_FROM_BRACKET "\xef\x8b\xb5" // U+f2f5 +#define ICON_FA_RIGHT_LEFT "\xef\x8d\xa2" // U+f362 +#define ICON_FA_RIGHT_LONG "\xef\x8c\x8b" // U+f30b +#define ICON_FA_RIGHT_TO_BRACKET "\xef\x8b\xb6" // U+f2f6 +#define ICON_FA_RING "\xef\x9c\x8b" // U+f70b +#define ICON_FA_ROAD "\xef\x80\x98" // U+f018 +#define ICON_FA_ROAD_BARRIER "\xee\x95\xa2" // U+e562 +#define ICON_FA_ROAD_BRIDGE "\xee\x95\xa3" // U+e563 +#define ICON_FA_ROAD_CIRCLE_CHECK "\xee\x95\xa4" // U+e564 +#define ICON_FA_ROAD_CIRCLE_EXCLAMATION "\xee\x95\xa5" // U+e565 +#define ICON_FA_ROAD_CIRCLE_XMARK "\xee\x95\xa6" // U+e566 +#define ICON_FA_ROAD_LOCK "\xee\x95\xa7" // U+e567 +#define ICON_FA_ROAD_SPIKES "\xee\x95\xa8" // U+e568 +#define ICON_FA_ROBOT "\xef\x95\x84" // U+f544 +#define ICON_FA_ROCKET "\xef\x84\xb5" // U+f135 +#define ICON_FA_ROTATE "\xef\x8b\xb1" // U+f2f1 +#define ICON_FA_ROTATE_LEFT "\xef\x8b\xaa" // U+f2ea +#define ICON_FA_ROTATE_RIGHT "\xef\x8b\xb9" // U+f2f9 +#define ICON_FA_ROUTE "\xef\x93\x97" // U+f4d7 +#define ICON_FA_RSS "\xef\x82\x9e" // U+f09e +#define ICON_FA_RUBLE_SIGN "\xef\x85\x98" // U+f158 +#define ICON_FA_RUG "\xee\x95\xa9" // U+e569 +#define ICON_FA_RULER "\xef\x95\x85" // U+f545 +#define ICON_FA_RULER_COMBINED "\xef\x95\x86" // U+f546 +#define ICON_FA_RULER_HORIZONTAL "\xef\x95\x87" // U+f547 +#define ICON_FA_RULER_VERTICAL "\xef\x95\x88" // U+f548 +#define ICON_FA_RUPEE_SIGN "\xef\x85\x96" // U+f156 +#define ICON_FA_RUPIAH_SIGN "\xee\x88\xbd" // U+e23d +#define ICON_FA_S "S" // U+0053 +#define ICON_FA_SACK_DOLLAR "\xef\xa0\x9d" // U+f81d +#define ICON_FA_SACK_XMARK "\xee\x95\xaa" // U+e56a +#define ICON_FA_SAILBOAT "\xee\x91\x85" // U+e445 +#define ICON_FA_SATELLITE "\xef\x9e\xbf" // U+f7bf +#define ICON_FA_SATELLITE_DISH "\xef\x9f\x80" // U+f7c0 +#define ICON_FA_SCALE_BALANCED "\xef\x89\x8e" // U+f24e +#define ICON_FA_SCALE_UNBALANCED "\xef\x94\x95" // U+f515 +#define ICON_FA_SCALE_UNBALANCED_FLIP "\xef\x94\x96" // U+f516 +#define ICON_FA_SCHOOL "\xef\x95\x89" // U+f549 +#define ICON_FA_SCHOOL_CIRCLE_CHECK "\xee\x95\xab" // U+e56b +#define ICON_FA_SCHOOL_CIRCLE_EXCLAMATION "\xee\x95\xac" // U+e56c +#define ICON_FA_SCHOOL_CIRCLE_XMARK "\xee\x95\xad" // U+e56d +#define ICON_FA_SCHOOL_FLAG "\xee\x95\xae" // U+e56e +#define ICON_FA_SCHOOL_LOCK "\xee\x95\xaf" // U+e56f +#define ICON_FA_SCISSORS "\xef\x83\x84" // U+f0c4 +#define ICON_FA_SCREWDRIVER "\xef\x95\x8a" // U+f54a +#define ICON_FA_SCREWDRIVER_WRENCH "\xef\x9f\x99" // U+f7d9 +#define ICON_FA_SCROLL "\xef\x9c\x8e" // U+f70e +#define ICON_FA_SCROLL_TORAH "\xef\x9a\xa0" // U+f6a0 +#define ICON_FA_SD_CARD "\xef\x9f\x82" // U+f7c2 +#define ICON_FA_SECTION "\xee\x91\x87" // U+e447 +#define ICON_FA_SEEDLING "\xef\x93\x98" // U+f4d8 +#define ICON_FA_SERVER "\xef\x88\xb3" // U+f233 +#define ICON_FA_SHAPES "\xef\x98\x9f" // U+f61f +#define ICON_FA_SHARE "\xef\x81\xa4" // U+f064 +#define ICON_FA_SHARE_FROM_SQUARE "\xef\x85\x8d" // U+f14d +#define ICON_FA_SHARE_NODES "\xef\x87\xa0" // U+f1e0 +#define ICON_FA_SHEET_PLASTIC "\xee\x95\xb1" // U+e571 +#define ICON_FA_SHEKEL_SIGN "\xef\x88\x8b" // U+f20b +#define ICON_FA_SHIELD "\xef\x84\xb2" // U+f132 +#define ICON_FA_SHIELD_CAT "\xee\x95\xb2" // U+e572 +#define ICON_FA_SHIELD_DOG "\xee\x95\xb3" // U+e573 +#define ICON_FA_SHIELD_HALVED "\xef\x8f\xad" // U+f3ed +#define ICON_FA_SHIELD_HEART "\xee\x95\xb4" // U+e574 +#define ICON_FA_SHIELD_VIRUS "\xee\x81\xac" // U+e06c +#define ICON_FA_SHIP "\xef\x88\x9a" // U+f21a +#define ICON_FA_SHIRT "\xef\x95\x93" // U+f553 +#define ICON_FA_SHOE_PRINTS "\xef\x95\x8b" // U+f54b +#define ICON_FA_SHOP "\xef\x95\x8f" // U+f54f +#define ICON_FA_SHOP_LOCK "\xee\x92\xa5" // U+e4a5 +#define ICON_FA_SHOP_SLASH "\xee\x81\xb0" // U+e070 +#define ICON_FA_SHOWER "\xef\x8b\x8c" // U+f2cc +#define ICON_FA_SHRIMP "\xee\x91\x88" // U+e448 +#define ICON_FA_SHUFFLE "\xef\x81\xb4" // U+f074 +#define ICON_FA_SHUTTLE_SPACE "\xef\x86\x97" // U+f197 +#define ICON_FA_SIGN_HANGING "\xef\x93\x99" // U+f4d9 +#define ICON_FA_SIGNAL "\xef\x80\x92" // U+f012 +#define ICON_FA_SIGNATURE "\xef\x96\xb7" // U+f5b7 +#define ICON_FA_SIGNS_POST "\xef\x89\xb7" // U+f277 +#define ICON_FA_SIM_CARD "\xef\x9f\x84" // U+f7c4 +#define ICON_FA_SINK "\xee\x81\xad" // U+e06d +#define ICON_FA_SITEMAP "\xef\x83\xa8" // U+f0e8 +#define ICON_FA_SKULL "\xef\x95\x8c" // U+f54c +#define ICON_FA_SKULL_CROSSBONES "\xef\x9c\x94" // U+f714 +#define ICON_FA_SLASH "\xef\x9c\x95" // U+f715 +#define ICON_FA_SLEIGH "\xef\x9f\x8c" // U+f7cc +#define ICON_FA_SLIDERS "\xef\x87\x9e" // U+f1de +#define ICON_FA_SMOG "\xef\x9d\x9f" // U+f75f +#define ICON_FA_SMOKING "\xef\x92\x8d" // U+f48d +#define ICON_FA_SNOWFLAKE "\xef\x8b\x9c" // U+f2dc +#define ICON_FA_SNOWMAN "\xef\x9f\x90" // U+f7d0 +#define ICON_FA_SNOWPLOW "\xef\x9f\x92" // U+f7d2 +#define ICON_FA_SOAP "\xee\x81\xae" // U+e06e +#define ICON_FA_SOCKS "\xef\x9a\x96" // U+f696 +#define ICON_FA_SOLAR_PANEL "\xef\x96\xba" // U+f5ba +#define ICON_FA_SORT "\xef\x83\x9c" // U+f0dc +#define ICON_FA_SORT_DOWN "\xef\x83\x9d" // U+f0dd +#define ICON_FA_SORT_UP "\xef\x83\x9e" // U+f0de +#define ICON_FA_SPA "\xef\x96\xbb" // U+f5bb +#define ICON_FA_SPAGHETTI_MONSTER_FLYING "\xef\x99\xbb" // U+f67b +#define ICON_FA_SPELL_CHECK "\xef\xa2\x91" // U+f891 +#define ICON_FA_SPIDER "\xef\x9c\x97" // U+f717 +#define ICON_FA_SPINNER "\xef\x84\x90" // U+f110 +#define ICON_FA_SPLOTCH "\xef\x96\xbc" // U+f5bc +#define ICON_FA_SPOON "\xef\x8b\xa5" // U+f2e5 +#define ICON_FA_SPRAY_CAN "\xef\x96\xbd" // U+f5bd +#define ICON_FA_SPRAY_CAN_SPARKLES "\xef\x97\x90" // U+f5d0 +#define ICON_FA_SQUARE "\xef\x83\x88" // U+f0c8 +#define ICON_FA_SQUARE_ARROW_UP_RIGHT "\xef\x85\x8c" // U+f14c +#define ICON_FA_SQUARE_CARET_DOWN "\xef\x85\x90" // U+f150 +#define ICON_FA_SQUARE_CARET_LEFT "\xef\x86\x91" // U+f191 +#define ICON_FA_SQUARE_CARET_RIGHT "\xef\x85\x92" // U+f152 +#define ICON_FA_SQUARE_CARET_UP "\xef\x85\x91" // U+f151 +#define ICON_FA_SQUARE_CHECK "\xef\x85\x8a" // U+f14a +#define ICON_FA_SQUARE_ENVELOPE "\xef\x86\x99" // U+f199 +#define ICON_FA_SQUARE_FULL "\xef\x91\x9c" // U+f45c +#define ICON_FA_SQUARE_H "\xef\x83\xbd" // U+f0fd +#define ICON_FA_SQUARE_MINUS "\xef\x85\x86" // U+f146 +#define ICON_FA_SQUARE_NFI "\xee\x95\xb6" // U+e576 +#define ICON_FA_SQUARE_PARKING "\xef\x95\x80" // U+f540 +#define ICON_FA_SQUARE_PEN "\xef\x85\x8b" // U+f14b +#define ICON_FA_SQUARE_PERSON_CONFINED "\xee\x95\xb7" // U+e577 +#define ICON_FA_SQUARE_PHONE "\xef\x82\x98" // U+f098 +#define ICON_FA_SQUARE_PHONE_FLIP "\xef\xa1\xbb" // U+f87b +#define ICON_FA_SQUARE_PLUS "\xef\x83\xbe" // U+f0fe +#define ICON_FA_SQUARE_POLL_HORIZONTAL "\xef\x9a\x82" // U+f682 +#define ICON_FA_SQUARE_POLL_VERTICAL "\xef\x9a\x81" // U+f681 +#define ICON_FA_SQUARE_ROOT_VARIABLE "\xef\x9a\x98" // U+f698 +#define ICON_FA_SQUARE_RSS "\xef\x85\x83" // U+f143 +#define ICON_FA_SQUARE_SHARE_NODES "\xef\x87\xa1" // U+f1e1 +#define ICON_FA_SQUARE_UP_RIGHT "\xef\x8d\xa0" // U+f360 +#define ICON_FA_SQUARE_VIRUS "\xee\x95\xb8" // U+e578 +#define ICON_FA_SQUARE_XMARK "\xef\x8b\x93" // U+f2d3 +#define ICON_FA_STAFF_SNAKE "\xee\x95\xb9" // U+e579 +#define ICON_FA_STAIRS "\xee\x8a\x89" // U+e289 +#define ICON_FA_STAMP "\xef\x96\xbf" // U+f5bf +#define ICON_FA_STAPLER "\xee\x96\xaf" // U+e5af +#define ICON_FA_STAR "\xef\x80\x85" // U+f005 +#define ICON_FA_STAR_AND_CRESCENT "\xef\x9a\x99" // U+f699 +#define ICON_FA_STAR_HALF "\xef\x82\x89" // U+f089 +#define ICON_FA_STAR_HALF_STROKE "\xef\x97\x80" // U+f5c0 +#define ICON_FA_STAR_OF_DAVID "\xef\x9a\x9a" // U+f69a +#define ICON_FA_STAR_OF_LIFE "\xef\x98\xa1" // U+f621 +#define ICON_FA_STERLING_SIGN "\xef\x85\x94" // U+f154 +#define ICON_FA_STETHOSCOPE "\xef\x83\xb1" // U+f0f1 +#define ICON_FA_STOP "\xef\x81\x8d" // U+f04d +#define ICON_FA_STOPWATCH "\xef\x8b\xb2" // U+f2f2 +#define ICON_FA_STOPWATCH_20 "\xee\x81\xaf" // U+e06f +#define ICON_FA_STORE "\xef\x95\x8e" // U+f54e +#define ICON_FA_STORE_SLASH "\xee\x81\xb1" // U+e071 +#define ICON_FA_STREET_VIEW "\xef\x88\x9d" // U+f21d +#define ICON_FA_STRIKETHROUGH "\xef\x83\x8c" // U+f0cc +#define ICON_FA_STROOPWAFEL "\xef\x95\x91" // U+f551 +#define ICON_FA_SUBSCRIPT "\xef\x84\xac" // U+f12c +#define ICON_FA_SUITCASE "\xef\x83\xb2" // U+f0f2 +#define ICON_FA_SUITCASE_MEDICAL "\xef\x83\xba" // U+f0fa +#define ICON_FA_SUITCASE_ROLLING "\xef\x97\x81" // U+f5c1 +#define ICON_FA_SUN "\xef\x86\x85" // U+f185 +#define ICON_FA_SUN_PLANT_WILT "\xee\x95\xba" // U+e57a +#define ICON_FA_SUPERSCRIPT "\xef\x84\xab" // U+f12b +#define ICON_FA_SWATCHBOOK "\xef\x97\x83" // U+f5c3 +#define ICON_FA_SYNAGOGUE "\xef\x9a\x9b" // U+f69b +#define ICON_FA_SYRINGE "\xef\x92\x8e" // U+f48e +#define ICON_FA_T "T" // U+0054 +#define ICON_FA_TABLE "\xef\x83\x8e" // U+f0ce +#define ICON_FA_TABLE_CELLS "\xef\x80\x8a" // U+f00a +#define ICON_FA_TABLE_CELLS_COLUMN_LOCK "\xee\x99\xb8" // U+e678 +#define ICON_FA_TABLE_CELLS_LARGE "\xef\x80\x89" // U+f009 +#define ICON_FA_TABLE_CELLS_ROW_LOCK "\xee\x99\xba" // U+e67a +#define ICON_FA_TABLE_COLUMNS "\xef\x83\x9b" // U+f0db +#define ICON_FA_TABLE_LIST "\xef\x80\x8b" // U+f00b +#define ICON_FA_TABLE_TENNIS_PADDLE_BALL "\xef\x91\x9d" // U+f45d +#define ICON_FA_TABLET "\xef\x8f\xbb" // U+f3fb +#define ICON_FA_TABLET_BUTTON "\xef\x84\x8a" // U+f10a +#define ICON_FA_TABLET_SCREEN_BUTTON "\xef\x8f\xba" // U+f3fa +#define ICON_FA_TABLETS "\xef\x92\x90" // U+f490 +#define ICON_FA_TACHOGRAPH_DIGITAL "\xef\x95\xa6" // U+f566 +#define ICON_FA_TAG "\xef\x80\xab" // U+f02b +#define ICON_FA_TAGS "\xef\x80\xac" // U+f02c +#define ICON_FA_TAPE "\xef\x93\x9b" // U+f4db +#define ICON_FA_TARP "\xee\x95\xbb" // U+e57b +#define ICON_FA_TARP_DROPLET "\xee\x95\xbc" // U+e57c +#define ICON_FA_TAXI "\xef\x86\xba" // U+f1ba +#define ICON_FA_TEETH "\xef\x98\xae" // U+f62e +#define ICON_FA_TEETH_OPEN "\xef\x98\xaf" // U+f62f +#define ICON_FA_TEMPERATURE_ARROW_DOWN "\xee\x80\xbf" // U+e03f +#define ICON_FA_TEMPERATURE_ARROW_UP "\xee\x81\x80" // U+e040 +#define ICON_FA_TEMPERATURE_EMPTY "\xef\x8b\x8b" // U+f2cb +#define ICON_FA_TEMPERATURE_FULL "\xef\x8b\x87" // U+f2c7 +#define ICON_FA_TEMPERATURE_HALF "\xef\x8b\x89" // U+f2c9 +#define ICON_FA_TEMPERATURE_HIGH "\xef\x9d\xa9" // U+f769 +#define ICON_FA_TEMPERATURE_LOW "\xef\x9d\xab" // U+f76b +#define ICON_FA_TEMPERATURE_QUARTER "\xef\x8b\x8a" // U+f2ca +#define ICON_FA_TEMPERATURE_THREE_QUARTERS "\xef\x8b\x88" // U+f2c8 +#define ICON_FA_TENGE_SIGN "\xef\x9f\x97" // U+f7d7 +#define ICON_FA_TENT "\xee\x95\xbd" // U+e57d +#define ICON_FA_TENT_ARROW_DOWN_TO_LINE "\xee\x95\xbe" // U+e57e +#define ICON_FA_TENT_ARROW_LEFT_RIGHT "\xee\x95\xbf" // U+e57f +#define ICON_FA_TENT_ARROW_TURN_LEFT "\xee\x96\x80" // U+e580 +#define ICON_FA_TENT_ARROWS_DOWN "\xee\x96\x81" // U+e581 +#define ICON_FA_TENTS "\xee\x96\x82" // U+e582 +#define ICON_FA_TERMINAL "\xef\x84\xa0" // U+f120 +#define ICON_FA_TEXT_HEIGHT "\xef\x80\xb4" // U+f034 +#define ICON_FA_TEXT_SLASH "\xef\xa1\xbd" // U+f87d +#define ICON_FA_TEXT_WIDTH "\xef\x80\xb5" // U+f035 +#define ICON_FA_THERMOMETER "\xef\x92\x91" // U+f491 +#define ICON_FA_THUMBS_DOWN "\xef\x85\xa5" // U+f165 +#define ICON_FA_THUMBS_UP "\xef\x85\xa4" // U+f164 +#define ICON_FA_THUMBTACK "\xef\x82\x8d" // U+f08d +#define ICON_FA_TICKET "\xef\x85\x85" // U+f145 +#define ICON_FA_TICKET_SIMPLE "\xef\x8f\xbf" // U+f3ff +#define ICON_FA_TIMELINE "\xee\x8a\x9c" // U+e29c +#define ICON_FA_TOGGLE_OFF "\xef\x88\x84" // U+f204 +#define ICON_FA_TOGGLE_ON "\xef\x88\x85" // U+f205 +#define ICON_FA_TOILET "\xef\x9f\x98" // U+f7d8 +#define ICON_FA_TOILET_PAPER "\xef\x9c\x9e" // U+f71e +#define ICON_FA_TOILET_PAPER_SLASH "\xee\x81\xb2" // U+e072 +#define ICON_FA_TOILET_PORTABLE "\xee\x96\x83" // U+e583 +#define ICON_FA_TOILETS_PORTABLE "\xee\x96\x84" // U+e584 +#define ICON_FA_TOOLBOX "\xef\x95\x92" // U+f552 +#define ICON_FA_TOOTH "\xef\x97\x89" // U+f5c9 +#define ICON_FA_TORII_GATE "\xef\x9a\xa1" // U+f6a1 +#define ICON_FA_TORNADO "\xef\x9d\xaf" // U+f76f +#define ICON_FA_TOWER_BROADCAST "\xef\x94\x99" // U+f519 +#define ICON_FA_TOWER_CELL "\xee\x96\x85" // U+e585 +#define ICON_FA_TOWER_OBSERVATION "\xee\x96\x86" // U+e586 +#define ICON_FA_TRACTOR "\xef\x9c\xa2" // U+f722 +#define ICON_FA_TRADEMARK "\xef\x89\x9c" // U+f25c +#define ICON_FA_TRAFFIC_LIGHT "\xef\x98\xb7" // U+f637 +#define ICON_FA_TRAILER "\xee\x81\x81" // U+e041 +#define ICON_FA_TRAIN "\xef\x88\xb8" // U+f238 +#define ICON_FA_TRAIN_SUBWAY "\xef\x88\xb9" // U+f239 +#define ICON_FA_TRAIN_TRAM "\xee\x96\xb4" // U+e5b4 +#define ICON_FA_TRANSGENDER "\xef\x88\xa5" // U+f225 +#define ICON_FA_TRASH "\xef\x87\xb8" // U+f1f8 +#define ICON_FA_TRASH_ARROW_UP "\xef\xa0\xa9" // U+f829 +#define ICON_FA_TRASH_CAN "\xef\x8b\xad" // U+f2ed +#define ICON_FA_TRASH_CAN_ARROW_UP "\xef\xa0\xaa" // U+f82a +#define ICON_FA_TREE "\xef\x86\xbb" // U+f1bb +#define ICON_FA_TREE_CITY "\xee\x96\x87" // U+e587 +#define ICON_FA_TRIANGLE_EXCLAMATION "\xef\x81\xb1" // U+f071 +#define ICON_FA_TROPHY "\xef\x82\x91" // U+f091 +#define ICON_FA_TROWEL "\xee\x96\x89" // U+e589 +#define ICON_FA_TROWEL_BRICKS "\xee\x96\x8a" // U+e58a +#define ICON_FA_TRUCK "\xef\x83\x91" // U+f0d1 +#define ICON_FA_TRUCK_ARROW_RIGHT "\xee\x96\x8b" // U+e58b +#define ICON_FA_TRUCK_DROPLET "\xee\x96\x8c" // U+e58c +#define ICON_FA_TRUCK_FAST "\xef\x92\x8b" // U+f48b +#define ICON_FA_TRUCK_FIELD "\xee\x96\x8d" // U+e58d +#define ICON_FA_TRUCK_FIELD_UN "\xee\x96\x8e" // U+e58e +#define ICON_FA_TRUCK_FRONT "\xee\x8a\xb7" // U+e2b7 +#define ICON_FA_TRUCK_MEDICAL "\xef\x83\xb9" // U+f0f9 +#define ICON_FA_TRUCK_MONSTER "\xef\x98\xbb" // U+f63b +#define ICON_FA_TRUCK_MOVING "\xef\x93\x9f" // U+f4df +#define ICON_FA_TRUCK_PICKUP "\xef\x98\xbc" // U+f63c +#define ICON_FA_TRUCK_PLANE "\xee\x96\x8f" // U+e58f +#define ICON_FA_TRUCK_RAMP_BOX "\xef\x93\x9e" // U+f4de +#define ICON_FA_TTY "\xef\x87\xa4" // U+f1e4 +#define ICON_FA_TURKISH_LIRA_SIGN "\xee\x8a\xbb" // U+e2bb +#define ICON_FA_TURN_DOWN "\xef\x8e\xbe" // U+f3be +#define ICON_FA_TURN_UP "\xef\x8e\xbf" // U+f3bf +#define ICON_FA_TV "\xef\x89\xac" // U+f26c +#define ICON_FA_U "U" // U+0055 +#define ICON_FA_UMBRELLA "\xef\x83\xa9" // U+f0e9 +#define ICON_FA_UMBRELLA_BEACH "\xef\x97\x8a" // U+f5ca +#define ICON_FA_UNDERLINE "\xef\x83\x8d" // U+f0cd +#define ICON_FA_UNIVERSAL_ACCESS "\xef\x8a\x9a" // U+f29a +#define ICON_FA_UNLOCK "\xef\x82\x9c" // U+f09c +#define ICON_FA_UNLOCK_KEYHOLE "\xef\x84\xbe" // U+f13e +#define ICON_FA_UP_DOWN "\xef\x8c\xb8" // U+f338 +#define ICON_FA_UP_DOWN_LEFT_RIGHT "\xef\x82\xb2" // U+f0b2 +#define ICON_FA_UP_LONG "\xef\x8c\x8c" // U+f30c +#define ICON_FA_UP_RIGHT_AND_DOWN_LEFT_FROM_CENTER "\xef\x90\xa4" // U+f424 +#define ICON_FA_UP_RIGHT_FROM_SQUARE "\xef\x8d\x9d" // U+f35d +#define ICON_FA_UPLOAD "\xef\x82\x93" // U+f093 +#define ICON_FA_USER "\xef\x80\x87" // U+f007 +#define ICON_FA_USER_ASTRONAUT "\xef\x93\xbb" // U+f4fb +#define ICON_FA_USER_CHECK "\xef\x93\xbc" // U+f4fc +#define ICON_FA_USER_CLOCK "\xef\x93\xbd" // U+f4fd +#define ICON_FA_USER_DOCTOR "\xef\x83\xb0" // U+f0f0 +#define ICON_FA_USER_GEAR "\xef\x93\xbe" // U+f4fe +#define ICON_FA_USER_GRADUATE "\xef\x94\x81" // U+f501 +#define ICON_FA_USER_GROUP "\xef\x94\x80" // U+f500 +#define ICON_FA_USER_INJURED "\xef\x9c\xa8" // U+f728 +#define ICON_FA_USER_LARGE "\xef\x90\x86" // U+f406 +#define ICON_FA_USER_LARGE_SLASH "\xef\x93\xba" // U+f4fa +#define ICON_FA_USER_LOCK "\xef\x94\x82" // U+f502 +#define ICON_FA_USER_MINUS "\xef\x94\x83" // U+f503 +#define ICON_FA_USER_NINJA "\xef\x94\x84" // U+f504 +#define ICON_FA_USER_NURSE "\xef\xa0\xaf" // U+f82f +#define ICON_FA_USER_PEN "\xef\x93\xbf" // U+f4ff +#define ICON_FA_USER_PLUS "\xef\x88\xb4" // U+f234 +#define ICON_FA_USER_SECRET "\xef\x88\x9b" // U+f21b +#define ICON_FA_USER_SHIELD "\xef\x94\x85" // U+f505 +#define ICON_FA_USER_SLASH "\xef\x94\x86" // U+f506 +#define ICON_FA_USER_TAG "\xef\x94\x87" // U+f507 +#define ICON_FA_USER_TIE "\xef\x94\x88" // U+f508 +#define ICON_FA_USER_XMARK "\xef\x88\xb5" // U+f235 +#define ICON_FA_USERS "\xef\x83\x80" // U+f0c0 +#define ICON_FA_USERS_BETWEEN_LINES "\xee\x96\x91" // U+e591 +#define ICON_FA_USERS_GEAR "\xef\x94\x89" // U+f509 +#define ICON_FA_USERS_LINE "\xee\x96\x92" // U+e592 +#define ICON_FA_USERS_RAYS "\xee\x96\x93" // U+e593 +#define ICON_FA_USERS_RECTANGLE "\xee\x96\x94" // U+e594 +#define ICON_FA_USERS_SLASH "\xee\x81\xb3" // U+e073 +#define ICON_FA_USERS_VIEWFINDER "\xee\x96\x95" // U+e595 +#define ICON_FA_UTENSILS "\xef\x8b\xa7" // U+f2e7 +#define ICON_FA_V "V" // U+0056 +#define ICON_FA_VAN_SHUTTLE "\xef\x96\xb6" // U+f5b6 +#define ICON_FA_VAULT "\xee\x8b\x85" // U+e2c5 +#define ICON_FA_VECTOR_SQUARE "\xef\x97\x8b" // U+f5cb +#define ICON_FA_VENUS "\xef\x88\xa1" // U+f221 +#define ICON_FA_VENUS_DOUBLE "\xef\x88\xa6" // U+f226 +#define ICON_FA_VENUS_MARS "\xef\x88\xa8" // U+f228 +#define ICON_FA_VEST "\xee\x82\x85" // U+e085 +#define ICON_FA_VEST_PATCHES "\xee\x82\x86" // U+e086 +#define ICON_FA_VIAL "\xef\x92\x92" // U+f492 +#define ICON_FA_VIAL_CIRCLE_CHECK "\xee\x96\x96" // U+e596 +#define ICON_FA_VIAL_VIRUS "\xee\x96\x97" // U+e597 +#define ICON_FA_VIALS "\xef\x92\x93" // U+f493 +#define ICON_FA_VIDEO "\xef\x80\xbd" // U+f03d +#define ICON_FA_VIDEO_SLASH "\xef\x93\xa2" // U+f4e2 +#define ICON_FA_VIHARA "\xef\x9a\xa7" // U+f6a7 +#define ICON_FA_VIRUS "\xee\x81\xb4" // U+e074 +#define ICON_FA_VIRUS_COVID "\xee\x92\xa8" // U+e4a8 +#define ICON_FA_VIRUS_COVID_SLASH "\xee\x92\xa9" // U+e4a9 +#define ICON_FA_VIRUS_SLASH "\xee\x81\xb5" // U+e075 +#define ICON_FA_VIRUSES "\xee\x81\xb6" // U+e076 +#define ICON_FA_VOICEMAIL "\xef\xa2\x97" // U+f897 +#define ICON_FA_VOLCANO "\xef\x9d\xb0" // U+f770 +#define ICON_FA_VOLLEYBALL "\xef\x91\x9f" // U+f45f +#define ICON_FA_VOLUME_HIGH "\xef\x80\xa8" // U+f028 +#define ICON_FA_VOLUME_LOW "\xef\x80\xa7" // U+f027 +#define ICON_FA_VOLUME_OFF "\xef\x80\xa6" // U+f026 +#define ICON_FA_VOLUME_XMARK "\xef\x9a\xa9" // U+f6a9 +#define ICON_FA_VR_CARDBOARD "\xef\x9c\xa9" // U+f729 +#define ICON_FA_W "W" // U+0057 +#define ICON_FA_WALKIE_TALKIE "\xef\xa3\xaf" // U+f8ef +#define ICON_FA_WALLET "\xef\x95\x95" // U+f555 +#define ICON_FA_WAND_MAGIC "\xef\x83\x90" // U+f0d0 +#define ICON_FA_WAND_MAGIC_SPARKLES "\xee\x8b\x8a" // U+e2ca +#define ICON_FA_WAND_SPARKLES "\xef\x9c\xab" // U+f72b +#define ICON_FA_WAREHOUSE "\xef\x92\x94" // U+f494 +#define ICON_FA_WATER "\xef\x9d\xb3" // U+f773 +#define ICON_FA_WATER_LADDER "\xef\x97\x85" // U+f5c5 +#define ICON_FA_WAVE_SQUARE "\xef\xa0\xbe" // U+f83e +#define ICON_FA_WEIGHT_HANGING "\xef\x97\x8d" // U+f5cd +#define ICON_FA_WEIGHT_SCALE "\xef\x92\x96" // U+f496 +#define ICON_FA_WHEAT_AWN "\xee\x8b\x8d" // U+e2cd +#define ICON_FA_WHEAT_AWN_CIRCLE_EXCLAMATION "\xee\x96\x98" // U+e598 +#define ICON_FA_WHEELCHAIR "\xef\x86\x93" // U+f193 +#define ICON_FA_WHEELCHAIR_MOVE "\xee\x8b\x8e" // U+e2ce +#define ICON_FA_WHISKEY_GLASS "\xef\x9e\xa0" // U+f7a0 +#define ICON_FA_WIFI "\xef\x87\xab" // U+f1eb +#define ICON_FA_WIND "\xef\x9c\xae" // U+f72e +#define ICON_FA_WINDOW_MAXIMIZE "\xef\x8b\x90" // U+f2d0 +#define ICON_FA_WINDOW_MINIMIZE "\xef\x8b\x91" // U+f2d1 +#define ICON_FA_WINDOW_RESTORE "\xef\x8b\x92" // U+f2d2 +#define ICON_FA_WINE_BOTTLE "\xef\x9c\xaf" // U+f72f +#define ICON_FA_WINE_GLASS "\xef\x93\xa3" // U+f4e3 +#define ICON_FA_WINE_GLASS_EMPTY "\xef\x97\x8e" // U+f5ce +#define ICON_FA_WON_SIGN "\xef\x85\x99" // U+f159 +#define ICON_FA_WORM "\xee\x96\x99" // U+e599 +#define ICON_FA_WRENCH "\xef\x82\xad" // U+f0ad +#define ICON_FA_X "X" // U+0058 +#define ICON_FA_X_RAY "\xef\x92\x97" // U+f497 +#define ICON_FA_XMARK "\xef\x80\x8d" // U+f00d +#define ICON_FA_XMARKS_LINES "\xee\x96\x9a" // U+e59a +#define ICON_FA_Y "Y" // U+0059 +#define ICON_FA_YEN_SIGN "\xef\x85\x97" // U+f157 +#define ICON_FA_YIN_YANG "\xef\x9a\xad" // U+f6ad +#define ICON_FA_Z "Z" // U+005a diff --git a/core/rend/gui.cpp b/core/rend/gui.cpp index e24c1e033..84215d450 100644 --- a/core/rend/gui.cpp +++ b/core/rend/gui.cpp @@ -48,6 +48,7 @@ #include "oslib/resources.h" #include "achievements/achievements.h" #include "gui_achievements.h" +#include "IconsFontAwesome6.h" #if defined(USE_SDL) #include "sdl/sdl.h" #endif @@ -309,6 +310,12 @@ void gui_initFonts() // TODO Linux, iOS, ... #endif + // Font Awesome symbols (added to default font) + data = resource::load("fonts/" FONT_ICON_FILE_NAME_FAS, dataSize); + verify(data != nullptr); + const float symbolFontSize = 21.f * settings.display.uiScale; + static ImWchar faRanges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 }; + io.Fonts->AddFontFromMemoryTTF(data.release(), dataSize, symbolFontSize, &font_cfg, faRanges); // Large font without Asian glyphs data = resource::load("fonts/Roboto-Regular.ttf", dataSize); verify(data != nullptr); @@ -574,104 +581,159 @@ static bool savestateAllowed() static void gui_display_commands() { - imguiDriver->displayVmus(); + imguiDriver->displayVmus(); + fullScreenWindow(false); + ImGui::SetNextWindowBgAlpha(0.8f); + ImguiStyleVar _{ImGuiStyleVar_WindowBorderSize, 0}; - centerNextWindow(); - ImGui::SetNextWindowSize(ScaledVec2(330, 0)); + ImGui::Begin("##commands", NULL, ImGuiWindowFlags_NoDecoration); + { + ImguiStyleVar _{ImGuiStyleVar_ButtonTextAlign, ImVec2(0.f, 0.5f)}; // left aligned - ImGui::Begin("##commands", NULL, ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_AlwaysAutoResize); + float buttonHeight = 50.f; // not scaled + bool lowH = ImGui::GetContentRegionAvail().y < ((100 + 50 * 6) * settings.display.uiScale + + ImGui::GetStyle().FramePadding.y * 2 + ImGui::GetStyle().ItemSpacing.y * 5); + if (lowH) + { + // Low height available (phone): Put game icon in first column without text + // Button columns in next 2 columns + float emptyW = ImGui::GetContentRegionAvail().x - (100 + 150 * 2) * settings.display.uiScale - ImGui::GetStyle().WindowPadding.x * 2; + ImGui::Columns(3, "buttons", false); + ImGui::SetColumnWidth(0, 100 * settings.display.uiScale + ImGui::GetStyle().FramePadding.x * 2 + emptyW / 3); + bool veryLowH = ImGui::GetContentRegionAvail().y < (50 * 6 * settings.display.uiScale + + ImGui::GetStyle().ItemSpacing.y * 5); + if (veryLowH) + buttonHeight = (ImGui::GetContentRegionAvail().y - ImGui::GetStyle().ItemSpacing.y * 5) + / 6 / settings.display.uiScale; + } + GameMedia game; + game.path = settings.content.path; + game.fileName = settings.content.fileName; + GameBoxart art = boxart.getBoxart(game); + ImguiTexture tex(art.boxartPath); + // TODO use placeholder image if not available + tex.draw(ScaledVec2(100, 100)); - { - if (card_reader::barcodeAvailable()) - { + if (!lowH) + { + ImGui::SameLine(); + ImGui::BeginChild("game_info", ScaledVec2(0, 100.f), ImGuiChildFlags_Border, ImGuiWindowFlags_None); + ImGui::PushFont(largeFont); + ImGui::Text("%s", art.name.c_str()); + ImGui::PopFont(); + ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(0.75f, 0.75f, 0.75f, 1.f)); + ImGui::TextWrapped("%s", art.fileName.c_str()); + ImGui::PopStyleColor(); + ImGui::EndChild(); + + ImGui::Columns(3, "buttons", false); + ImGui::SetColumnWidth(0, 100.f * settings.display.uiScale + ImGui::GetStyle().ItemSpacing.x); + ImGui::SetColumnWidth(1, 200.f * settings.display.uiScale); + } + ImGui::NextColumn(); + ImguiStyleVar _1{ImGuiStyleVar_FramePadding, ScaledVec2(12.f, 3.f)}; + + // Resume + if (ImGui::Button(ICON_FA_PLAY " Resume", ScaledVec2(150, buttonHeight))) + { + GamepadDevice::load_system_mappings(); + gui_setState(GuiState::Closed); + } + // Cheats + { + DisabledScope _{settings.network.online}; + + if (ImGui::Button(ICON_FA_MASK " Cheats", ScaledVec2(150, buttonHeight)) && !settings.network.online) + gui_setState(GuiState::Cheats); + } + // Achievements + { + DisabledScope _{!achievements::isActive()}; + + if (ImGui::Button(ICON_FA_TROPHY " Achievements", ScaledVec2(150, buttonHeight)) && achievements::isActive()) + gui_setState(GuiState::Achievements); + } + // Insert/Eject Disk + const char *disk_label = libGDR_GetDiscType() == Open ? ICON_FA_COMPACT_DISC " Insert Disk" : ICON_FA_COMPACT_DISC " Eject Disk"; + if (ImGui::Button(disk_label, ScaledVec2(150, buttonHeight))) + { + if (libGDR_GetDiscType() == Open) { + gui_setState(GuiState::SelectDisk); + } + else { + DiscOpenLid(); + gui_setState(GuiState::Closed); + } + } + // Settings + if (ImGui::Button(ICON_FA_GEAR " Settings", ScaledVec2(150, buttonHeight))) + gui_setState(GuiState::Settings); + // Exit + if (ImGui::Button(commandLineStart ? ICON_FA_POWER_OFF " Exit" : ICON_FA_POWER_OFF " Close Game", ScaledVec2(150, buttonHeight))) + gui_stop_game(); + + ImGui::NextColumn(); + { + DisabledScope _{!savestateAllowed()}; + + // Load State + if (ImGui::Button(ICON_FA_CLOCK_ROTATE_LEFT " Load State", ScaledVec2(150, buttonHeight)) && savestateAllowed()) + { + gui_setState(GuiState::Closed); + dc_loadstate(config::SavestateSlot); + } + + // Save State + if (ImGui::Button(ICON_FA_DOWNLOAD " Save State", ScaledVec2(150, buttonHeight)) && savestateAllowed()) + { + gui_setState(GuiState::Closed); + dc_savestate(config::SavestateSlot); + } + + // Slot # + if (ImGui::ArrowButton("##prev-slot", ImGuiDir_Left)) + { + if (config::SavestateSlot == 0) + config::SavestateSlot = 9; + else + config::SavestateSlot--; + SaveSettings(); + } + std::string slot = "Slot " + std::to_string((int)config::SavestateSlot + 1); + float spacingW = (150.f * settings.display.uiScale - ImGui::GetFrameHeight() * 2 - ImGui::CalcTextSize(slot.c_str()).x) / 2; + ImGui::SameLine(0, spacingW); + ImGui::Text("%s", slot.c_str()); + ImGui::SameLine(0, spacingW); + if (ImGui::ArrowButton("##next-slot", ImGuiDir_Right)) + { + if (config::SavestateSlot == 9) + config::SavestateSlot = 0; + else + config::SavestateSlot++; + SaveSettings(); + } + std::string date = dc_getStateUpdateDate(config::SavestateSlot); + { + ImVec4 gray(0.75f, 0.75f, 0.75f, 1.f); + if (date.empty()) + ImGui::TextColored(gray, "Empty"); + else + ImGui::TextColored(gray, "%s", date.c_str()); + } + } + // Barcode + if (card_reader::barcodeAvailable()) + { + ImGui::NewLine(); + ImGui::Text("Barcode Card"); char cardBuf[64] {}; strncpy(cardBuf, card_reader::barcodeGetCard().c_str(), sizeof(cardBuf) - 1); - if (ImGui::InputText("Card", cardBuf, sizeof(cardBuf), ImGuiInputTextFlags_None, nullptr, nullptr)) + if (ImGui::InputText("##barcode", cardBuf, sizeof(cardBuf), ImGuiInputTextFlags_None, nullptr, nullptr)) card_reader::barcodeSetCard(cardBuf); - } - - DisabledScope scope(!savestateAllowed()); - - // Load State - if (ImGui::Button("Load State", ScaledVec2(110, 50)) && savestateAllowed()) - { - gui_setState(GuiState::Closed); - dc_loadstate(config::SavestateSlot); } - ImGui::SameLine(); - // Slot # - std::string slot = "Slot " + std::to_string((int)config::SavestateSlot + 1); - if (ImGui::Button(slot.c_str(), ImVec2(80 * settings.display.uiScale - ImGui::GetStyle().FramePadding.x, 50 * settings.display.uiScale))) - ImGui::OpenPopup("slot_select_popup"); - if (ImGui::BeginPopup("slot_select_popup")) - { - for (int i = 0; i < 10; i++) - if (ImGui::Selectable(std::to_string(i + 1).c_str(), config::SavestateSlot == i, 0, - ImVec2(ImGui::CalcTextSize("Slot 8").x, 0))) { - config::SavestateSlot = i; - SaveSettings(); - } - ImGui::EndPopup(); - } - ImGui::SameLine(); - - // Save State - if (ImGui::Button("Save State", ScaledVec2(110, 50)) && savestateAllowed()) - { - gui_setState(GuiState::Closed); - dc_savestate(config::SavestateSlot); - } - } - - ImGui::Columns(2, "buttons", false); - - // Settings - if (ImGui::Button("Settings", ScaledVec2(150, 50))) - { - gui_setState(GuiState::Settings); + ImGui::Columns(1, nullptr, false); } - ImGui::NextColumn(); - if (ImGui::Button("Resume", ScaledVec2(150, 50))) - { - GamepadDevice::load_system_mappings(); - gui_setState(GuiState::Closed); - } - - ImGui::NextColumn(); - - // Insert/Eject Disk - const char *disk_label = libGDR_GetDiscType() == Open ? "Insert Disk" : "Eject Disk"; - if (ImGui::Button(disk_label, ScaledVec2(150, 50))) - { - if (libGDR_GetDiscType() == Open) - { - gui_setState(GuiState::SelectDisk); - } - else - { - DiscOpenLid(); - gui_setState(GuiState::Closed); - } - } - ImGui::NextColumn(); - - // Cheats - { - DisabledScope scope(settings.network.online); - - if (ImGui::Button("Cheats", ScaledVec2(150, 50)) && !settings.network.online) - gui_setState(GuiState::Cheats); - } - ImGui::Columns(1, nullptr, false); - - // Exit - if (ImGui::Button(commandLineStart ? "Exit" : "Close Game", ScaledVec2(300, 50) - + ImVec2(ImGui::GetStyle().ColumnsMinSpacing + ImGui::GetStyle().FramePadding.x * 2 - 1, 0))) - { - gui_stop_game(); - } - ImGui::End(); } @@ -2929,49 +2991,9 @@ static void gameTooltip(const std::string& tip) } } -static bool getGameImage(const GameBoxart& art, ImTextureID& textureId, bool allowLoad) +static bool gameImageButton(ImguiTexture& texture, const std::string& tooltip, ImVec2 size, const std::string& gameName) { - textureId = ImTextureID{}; - if (art.boxartPath.empty()) - return false; - - // Get the boxart texture. Load it if needed. - textureId = imguiDriver->getTexture(art.boxartPath); - if (textureId == ImTextureID() && allowLoad) - { - int width, height; - u8 *imgData = loadImage(art.boxartPath, width, height); - if (imgData != nullptr) - { - try { - textureId = imguiDriver->updateTextureAndAspectRatio(art.boxartPath, imgData, width, height); - } catch (...) { - // vulkan can throw during resizing - } - free(imgData); - } - return true; - } - return false; -} - -static bool gameImageButton(ImTextureID textureId, const std::string& tooltip, ImVec2 size) -{ - float ar = imguiDriver->getAspectRatio(textureId); - ImVec2 uv0 { 0.f, 0.f }; - ImVec2 uv1 { 1.f, 1.f }; - if (ar > 1) - { - uv0.y = -(ar - 1) / 2; - uv1.y = 1 + (ar - 1) / 2; - } - else if (ar != 0) - { - ar = 1 / ar; - uv0.x = -(ar - 1) / 2; - uv1.x = 1 + (ar - 1) / 2; - } - bool pressed = ImGui::ImageButton("", textureId, size - ImGui::GetStyle().FramePadding * 2, uv0, uv1); + bool pressed = texture.button("", size, gameName); gameTooltip(tooltip); return pressed; @@ -3036,22 +3058,16 @@ static void gui_display_content() ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ScaledVec2(8, 20)); int counter = 0; - int loadedImages = 0; if (gui_state != GuiState::SelectDisk && filter.PassFilter("Dreamcast BIOS")) { ImGui::PushID("bios"); bool pressed; if (config::BoxartDisplayMode) { - ImTextureID textureId{}; GameMedia game; GameBoxart art = boxart.getBoxartAndLoad(game); - if (getGameImage(art, textureId, loadedImages < 10)) - loadedImages++; - if (textureId != ImTextureID()) - pressed = gameImageButton(textureId, "Dreamcast BIOS", responsiveBoxVec2); - else - pressed = ImGui::Button("Dreamcast BIOS", responsiveBoxVec2); + ImguiTexture tex(art.boxartPath); + pressed = gameImageButton(tex, "Dreamcast BIOS", responsiveBoxVec2, "Dreamcast BIOS"); } else { @@ -3084,23 +3100,19 @@ static void gui_display_content() if (filter.PassFilter(gameName.c_str())) { ImGui::PushID(game.path.c_str()); - bool pressed; + bool pressed = false; if (config::BoxartDisplayMode) { if (counter % itemsPerLine != 0) ImGui::SameLine(); counter++; - ImTextureID textureId{}; - // Get the boxart texture. Load it if needed (max 10 per frame). - if (getGameImage(art, textureId, loadedImages < 10)) - loadedImages++; - if (textureId != ImTextureID()) - pressed = gameImageButton(textureId, game.name, responsiveBoxVec2); - else + // Put the image inside a child window so we can detect when it's fully clipped and doesn't need to be loaded + if (ImGui::BeginChild("img", ImVec2(0, 0), ImGuiChildFlags_AutoResizeX | ImGuiChildFlags_AutoResizeY, ImGuiWindowFlags_None)) { - pressed = ImGui::Button(gameName.c_str(), responsiveBoxVec2); - gameTooltip(game.name); + ImguiTexture tex(art.boxartPath); + pressed = gameImageButton(tex, game.name, responsiveBoxVec2, gameName); } + ImGui::EndChild(); } else { @@ -3381,6 +3393,9 @@ void gui_display_ui() case GuiState::Cheats: gui_cheats(); break; + case GuiState::Achievements: + achievements::achievementList(); + break; default: die("Unknown UI state"); break; diff --git a/core/rend/gui.h b/core/rend/gui.h index 99ffc9b88..d0ef7af84 100644 --- a/core/rend/gui.h +++ b/core/rend/gui.h @@ -63,7 +63,8 @@ enum class GuiState { SelectDisk, Loading, NetworkStart, - Cheats + Cheats, + Achievements, }; extern GuiState gui_state; diff --git a/core/rend/gui_achievements.cpp b/core/rend/gui_achievements.cpp index 97ab1d00e..0efc41c4a 100644 --- a/core/rend/gui_achievements.cpp +++ b/core/rend/gui_achievements.cpp @@ -21,7 +21,10 @@ #include "gui_util.h" #include "imgui_driver.h" #include "stdclass.h" +#include "achievements/achievements.h" +#include "IconsFontAwesome6.h" #include +#include extern ImFont *largeFont; @@ -33,6 +36,7 @@ Notification notifier; static constexpr u64 DISPLAY_TIME = 5000; static constexpr u64 START_ANIM_TIME = 500; static constexpr u64 END_ANIM_TIME = 1000; +static constexpr u64 NEVER_ENDS = 1000000000000; void Notification::notify(Type type, const std::string& image, const std::string& text1, const std::string& text2, const std::string& text3) @@ -47,7 +51,7 @@ void Notification::notify(Type type, const std::string& image, const std::string { // New progress startTime = now; - endTime = 0x1000000000000; // never + endTime = NEVER_ENDS; } } else @@ -61,23 +65,59 @@ void Notification::notify(Type type, const std::string& image, const std::string endTime = startTime + DISPLAY_TIME; } this->type = type; - this->imagePath = image; - this->imageId = {}; + this->image = { image }; text[0] = text1; text[1] = text2; text[2] = text3; } +void Notification::showChallenge(const std::string& image) +{ + std::lock_guard _(mutex); + ImguiTexture texture{ image }; + if (std::find(challenges.begin(), challenges.end(), texture) != challenges.end()) + return; + challenges.push_back(texture); + if (this->type == None) + { + this->type = Challenge; + startTime = getTimeMs(); + endTime = NEVER_ENDS; + } +} + +void Notification::hideChallenge(const std::string& image) +{ + std::lock_guard _(mutex); + auto it = std::find(challenges.begin(), challenges.end(), image); + if (it == challenges.end()) + return; + challenges.erase(it); + if (this->type == Challenge && challenges.empty()) + endTime = getTimeMs(); +} + bool Notification::draw() { std::lock_guard _(mutex); if (type == None) return false; u64 now = getTimeMs(); - if (now > endTime + END_ANIM_TIME) { - // Hide notification - type = None; - return false; + if (now > endTime + END_ANIM_TIME) + { + if (!challenges.empty()) + { + // Show current challenge indicators + type = Challenge; + startTime = getTimeMs(); + endTime = NEVER_ENDS; + } + else + { + // Hide notification + type = None; + return false; + } } if (now > endTime) { @@ -89,83 +129,148 @@ bool Notification::draw() else { ImGui::SetNextWindowBgAlpha(0.5f); } - if (imageId == ImTextureID{}) - getImage(); float y = ImGui::GetIO().DisplaySize.y; if (now - startTime < START_ANIM_TIME) // Slide up y += 80.f * settings.display.uiScale * (std::cos((now - startTime) / (float)START_ANIM_TIME * (float)M_PI) + 1.f) / 2.f; ImGui::SetNextWindowPos(ImVec2(0, y), ImGuiCond_Always, ImVec2(0.f, 1.f)); // Lower left corner - ImGui::SetNextWindowSizeConstraints(ScaledVec2(80.f, 80.f) + ImVec2(ImGui::GetStyle().WindowPadding.x * 2, 0.f), ImVec2(FLT_MAX, FLT_MAX)); - const float winPaddingX = ImGui::GetStyle().WindowPadding.x; - ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2{}); - - ImGui::Begin("##achievements", nullptr, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoNav - | ImGuiWindowFlags_NoInputs); - const bool hasPic = imageId != ImTextureID{}; - if (ImGui::BeginTable("achievementNotif", hasPic ? 2 : 1, ImGuiTableFlags_SizingFixedFit | ImGuiTableFlags_NoSavedSettings)) + if (type == Challenge) { - if (hasPic) - ImGui::TableSetupColumn("icon", ImGuiTableColumnFlags_WidthFixed); - ImGui::TableSetupColumn("text", ImGuiTableColumnFlags_WidthStretch); - - ImGui::TableNextRow(); - ImGui::TableSetColumnIndex(0); - if (hasPic) + ImGui::Begin("##achievement", nullptr, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoNav + | ImGuiWindowFlags_NoInputs); + for (const auto& img : challenges) { - ImGui::Image(imageId, ScaledVec2(80.f, 80.f), { 0.f, 0.f }, { 1.f, 1.f }); - ImGui::TableSetColumnIndex(1); + img.draw(ScaledVec2(60.f, 60.f)); + ImGui::SameLine(); } - - float w = largeFont->CalcTextSizeA(largeFont->FontSize, FLT_MAX, -1.f, text[0].c_str()).x; - w = std::max(w, ImGui::CalcTextSize(text[1].c_str()).x); - w = std::max(w, ImGui::CalcTextSize(text[2].c_str()).x) + winPaddingX * 2; - int lines = (int)!text[0].empty() + (int)!text[1].empty() + (int)!text[2].empty(); - ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2{ hasPic ? 0.f : winPaddingX, (3 - lines) * ImGui::GetTextLineHeight() / 2 }); - if (ImGui::BeginChild("##text", ImVec2(w, 0), ImGuiChildFlags_AlwaysUseWindowPadding, ImGuiWindowFlags_None)) - { - ImGui::PushFont(largeFont); - ImGui::Text("%s", text[0].c_str()); - ImGui::PopFont(); - if (!text[1].empty()) - ImGui::TextColored(ImVec4(1, 1, 0, 0.7f), "%s", text[1].c_str()); - if (!text[2].empty()) - ImGui::TextColored(ImVec4(1, 1, 0, 0.7f), "%s", text[2].c_str()); - } - ImGui::EndChild(); - ImGui::PopStyleVar(); - - ImGui::EndTable(); + ImGui::End(); + } + else + { + ImGui::SetNextWindowSizeConstraints(ScaledVec2(80.f, 80.f) + ImVec2(ImGui::GetStyle().WindowPadding.x * 2, 0.f), ImVec2(FLT_MAX, FLT_MAX)); + const float winPaddingX = ImGui::GetStyle().WindowPadding.x; + ImguiStyleVar _(ImGuiStyleVar_WindowPadding, ImVec2{}); + + ImGui::Begin("##achievement", nullptr, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoNav + | ImGuiWindowFlags_NoInputs); + ImTextureID imageId = image.getId(); + const bool hasPic = imageId != ImTextureID{}; + if (ImGui::BeginTable("achievementNotif", hasPic ? 2 : 1, ImGuiTableFlags_SizingFixedFit | ImGuiTableFlags_NoSavedSettings)) + { + if (hasPic) + ImGui::TableSetupColumn("icon", ImGuiTableColumnFlags_WidthFixed); + ImGui::TableSetupColumn("text", ImGuiTableColumnFlags_WidthStretch); + + ImGui::TableNextRow(); + ImGui::TableSetColumnIndex(0); + if (hasPic) + { + image.draw(ScaledVec2(80.f, 80.f)); + ImGui::TableSetColumnIndex(1); + } + + float w = largeFont->CalcTextSizeA(largeFont->FontSize, FLT_MAX, -1.f, text[0].c_str()).x; + w = std::max(w, ImGui::CalcTextSize(text[1].c_str()).x); + w = std::max(w, ImGui::CalcTextSize(text[2].c_str()).x) + winPaddingX * 2; + int lines = (int)!text[0].empty() + (int)!text[1].empty() + (int)!text[2].empty(); + ImguiStyleVar _(ImGuiStyleVar_WindowPadding, ImVec2{ hasPic ? 0.f : winPaddingX, (3 - lines) * ImGui::GetTextLineHeight() / 2 }); + if (ImGui::BeginChild("##text", ImVec2(w, 0), ImGuiChildFlags_AlwaysUseWindowPadding, ImGuiWindowFlags_None)) + { + ImGui::PushFont(largeFont); + ImGui::Text("%s", text[0].c_str()); + ImGui::PopFont(); + if (!text[1].empty()) + ImGui::TextColored(ImVec4(1, 1, 0, 0.7f), "%s", text[1].c_str()); + if (!text[2].empty()) + ImGui::TextColored(ImVec4(1, 1, 0, 0.7f), "%s", text[2].c_str()); + } + ImGui::EndChild(); + ImGui::EndTable(); + } + ImGui::End(); } - ImGui::End(); - ImGui::PopStyleVar(); ImGui::GetStyle().Alpha = 1.f; return true; } -void Notification::getImage() +void achievementList() { - if (imagePath.empty()) - return; + fullScreenWindow(false); + ImguiStyleVar _(ImGuiStyleVar_WindowBorderSize, 0); + + ImGui::Begin("##achievements", nullptr, ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_AlwaysAutoResize); - // Get the texture. Load it if needed. - imageId = imguiDriver->getTexture(imagePath); - if (imageId == ImTextureID()) { - int width, height; - u8 *imgData = loadImage(imagePath, width, height); - if (imgData != nullptr) + float w = ImGui::GetWindowContentRegionMax().x - ImGui::CalcTextSize("Close").x - ImGui::GetStyle().ItemSpacing.x * 2 - ImGui::GetStyle().WindowPadding.x + - (80.f + 20.f * 2) * settings.display.uiScale; // image width and button frame padding + Game game = getCurrentGame(); + ImguiTexture tex(game.image); + tex.draw(ScaledVec2(80.f, 80.f)); + ImGui::SameLine(); + ImGui::BeginChild("game_info", ImVec2(w, 80.f * settings.display.uiScale), ImGuiChildFlags_None, ImGuiWindowFlags_None); + ImGui::PushFont(largeFont); + ImGui::Text("%s", game.title.c_str()); + ImGui::PopFont(); + std::stringstream ss; + ss << "You have unlocked " << game.unlockedAchievements << " of " << game.totalAchievements + << " achievements and " << game.points << " of " << game.totalPoints << " points."; + ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(0.75f, 0.75f, 0.75f, 1.f)); + ImGui::TextWrapped("%s", ss.str().c_str()); + ImGui::PopStyleColor(); + ImGui::EndChild(); + + ImGui::SameLine(); + ImguiStyleVar _(ImGuiStyleVar_FramePadding, ScaledVec2(20, 8)); + if (ImGui::Button("Close")) + gui_setState(GuiState::Commands); + } + + if (ImGui::BeginChild(ImGui::GetID("ach_list"), ImVec2(0, 0), ImGuiChildFlags_Border, ImGuiWindowFlags_DragScrolling | ImGuiWindowFlags_NavFlattened)) + { + std::vector achList = getAchievementList(); + int id = 0; + std::string category; + for (const auto& ach : achList) { - try { - imageId = imguiDriver->updateTextureAndAspectRatio(imagePath, imgData, width, height); - } catch (...) { - // vulkan can throw during resizing + if (ach.category != category) + { + category = ach.category; + ImGui::Indent(10 * settings.display.uiScale); + if (category == "Locked" || category == "Active Challenges" || category == "Almost There") + ImGui::Text(ICON_FA_LOCK); + else if (category == "Unlocked" || category == "Recently Unlocked") + ImGui::Text(ICON_FA_LOCK_OPEN); + ImGui::SameLine(); + ImGui::PushFont(largeFont); + ImGui::Text("%s", category.c_str()); + ImGui::PopFont(); + ImGui::Unindent(10 * settings.display.uiScale); } - free(imgData); + ImguiID _("achiev" + std::to_string(id++)); + ImguiTexture tex(ach.image); + tex.draw(ScaledVec2(80.f, 80.f)); + ImGui::SameLine(); + ImGui::BeginChild(ImGui::GetID("ach_item"), ImVec2(0, 0), ImGuiChildFlags_AutoResizeY, ImGuiWindowFlags_None); + ImGui::PushFont(largeFont); + ImGui::Text("%s", ach.title.c_str()); + ImGui::PopFont(); + + ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(0.75f, 0.75f, 0.75f, 1.f)); + ImGui::TextWrapped("%s", ach.description.c_str()); + ImGui::TextWrapped("%s", ach.status.c_str()); + ImGui::PopStyleColor(); + + scrollWhenDraggingOnVoid(); + ImGui::EndChild(); } } + scrollWhenDraggingOnVoid(); + windowDragScroll(); + + ImGui::EndChild(); + ImGui::End(); } } // namespace achievements diff --git a/core/rend/gui_achievements.h b/core/rend/gui_achievements.h index 009581f20..733cc1a6c 100644 --- a/core/rend/gui_achievements.h +++ b/core/rend/gui_achievements.h @@ -18,7 +18,9 @@ */ #include "types.h" #include "imgui.h" +#include "gui_util.h" #include +#include namespace achievements { @@ -33,24 +35,27 @@ public: Unlocked, Progress, Mastery, + Challenge, Error }; void notify(Type type, const std::string& image, const std::string& text1, const std::string& text2 = {}, const std::string& text3 = {}); + void showChallenge(const std::string& image); + void hideChallenge(const std::string& image); bool draw(); private: - void getImage(); - u64 startTime = 0; u64 endTime = 0; Type type = Type::None; - std::string imagePath; - ImTextureID imageId {}; + ImguiTexture image; std::string text[3]; std::mutex mutex; + std::vector challenges; }; extern Notification notifier; +void achievementList(); + } diff --git a/core/rend/gui_util.cpp b/core/rend/gui_util.cpp index c836f7b9e..223b5663d 100644 --- a/core/rend/gui_util.cpp +++ b/core/rend/gui_util.cpp @@ -25,11 +25,9 @@ #include "types.h" #include "stdclass.h" #include "oslib/storage.h" +#include "imgui_driver.h" #include "imgui.h" #include "imgui_internal.h" -#define STBI_ONLY_JPEG -#define STBI_ONLY_PNG -#include static std::string select_current_directory = "**home**"; static std::vector subfolders; @@ -697,17 +695,58 @@ void windowDragScroll() } } -u8 *loadImage(const std::string& path, int& width, int& height) +ImTextureID ImguiTexture::getId() const { - FILE *file = nowide::fopen(path.c_str(), "rb"); - if (file == nullptr) - return nullptr; + if (path.empty()) + return {}; + return imguiDriver->getOrLoadTexture(path); +} - int channels; - stbi_set_flip_vertically_on_load(0); - u8 *imgData = stbi_load_from_file(file, &width, &height, &channels, STBI_rgb_alpha); - std::fclose(file); - return imgData; +static void setUV(float ar, ImVec2& uv0, ImVec2& uv1) +{ + uv0 = { 0.f, 0.f }; + uv1 = { 1.f, 1.f }; + if (ar > 1) + { + uv0.y = -(ar - 1) / 2; + uv1.y = 1 + (ar - 1) / 2; + } + else if (ar != 0) + { + ar = 1 / ar; + uv0.x = -(ar - 1) / 2; + uv1.x = 1 + (ar - 1) / 2; + } +} + +void ImguiTexture::draw(const ImVec2& size, const ImVec4& tint_col, const ImVec4& border_col) const +{ + ImTextureID id = getId(); + if (id == ImTextureID{}) + ImGui::Dummy(size); + else + { + float ar = imguiDriver->getAspectRatio(id); + ImVec2 uv0, uv1; + setUV(ar, uv0, uv1); + ImGui::Image(id, size, uv0, uv1, tint_col, border_col); + } +} + +bool ImguiTexture::button(const char* str_id, const ImVec2& image_size, const std::string& title, + const ImVec4& bg_col, const ImVec4& tint_col) const +{ + ImTextureID id = getId(); + if (id == ImTextureID{}) + return ImGui::Button(title.c_str(), image_size); + else + { + float ar = imguiDriver->getAspectRatio(id); + ImVec2 uv0, uv1; + setUV(ar, uv0, uv1); + ImVec2 size = image_size - ImGui::GetStyle().FramePadding * 2; + return ImGui::ImageButton(str_id, id, size, uv0, uv1, bg_col, tint_col); + } } // Custom version of ImGui::BeginListBox that allows passing window flags diff --git a/core/rend/gui_util.h b/core/rend/gui_util.h index fc25f3f52..4c5f15420 100644 --- a/core/rend/gui_util.h +++ b/core/rend/gui_util.h @@ -59,16 +59,6 @@ static inline void centerNextWindow() ImGuiCond_Always, ImVec2(0.5f, 0.5f)); } -static inline bool operator==(const ImVec2& l, const ImVec2& r) -{ - return l.x == r.x && l.y == r.y; -} - -static inline bool operator!=(const ImVec2& l, const ImVec2& r) -{ - return !(l == r); -} - void fullScreenWindow(bool modal); void windowDragScroll(); @@ -130,20 +120,6 @@ struct ScaledVec2 : public ImVec2 inline static ImVec2 min(const ImVec2& l, const ImVec2& r) { return ImVec2(std::min(l.x, r.x), std::min(l.y, r.y)); } -inline static ImVec2 operator+(const ImVec2& l, const ImVec2& r) { - return ImVec2(l.x + r.x, l.y + r.y); -} -inline static ImVec2 operator-(const ImVec2& l, const ImVec2& r) { - return ImVec2(l.x - r.x, l.y - r.y); -} -inline static ImVec2 operator*(const ImVec2& v, float f) { - return ImVec2(v.x * f, v.y * f); -} -inline static ImVec2 operator/(const ImVec2& v, float f) { - return ImVec2(v.x / f, v.y / f); -} - -u8 *loadImage(const std::string& path, int& width, int& height); class DisabledScope { @@ -173,3 +149,69 @@ private: }; bool BeginListBox(const char* label, const ImVec2& size_arg = ImVec2(0, 0), ImGuiWindowFlags windowFlags = 0); + +class ImguiID +{ +public: + ImguiID(const std::string& id) + : ImguiID(id.c_str()) {} + ImguiID(const char *id) { + ImGui::PushID(id); + } + ~ImguiID() { + ImGui::PopID(); + } +}; + +class ImguiStyleVar +{ +public: + ImguiStyleVar(ImGuiStyleVar idx, const ImVec2& val) { + ImGui::PushStyleVar(idx, val); + } + ImguiStyleVar(ImGuiStyleVar idx, float val) { + ImGui::PushStyleVar(idx, val); + } + ~ImguiStyleVar() { + ImGui::PopStyleVar(); + } +}; + +class ImguiStyleColor +{ +public: + ImguiStyleColor(ImGuiCol idx, const ImVec4& col) { + ImGui::PushStyleColor(idx, col); + } + ImguiStyleColor(ImGuiCol idx, ImU32 col) { + ImGui::PushStyleColor(idx, col); + } + ~ImguiStyleColor() { + ImGui::PopStyleColor(); + } +}; + +class ImguiTexture +{ +public: + ImguiTexture() = default; + ImguiTexture(const std::string& path) : path(path) {} + + void draw(const ImVec2& size, const ImVec4& tint_col = ImVec4(1, 1, 1, 1), + const ImVec4& border_col = ImVec4(0, 0, 0, 0)) const; + bool button(const char* str_id, const ImVec2& image_size, const std::string& title = {}, const ImVec4& bg_col = ImVec4(0, 0, 0, 0), + const ImVec4& tint_col = ImVec4(1, 1, 1, 1)) const; + + ImTextureID getId() const; + + operator ImTextureID() { + return getId(); + } + + bool operator==(const ImguiTexture& other) const { + return other.path == path; + } + +private: + std::string path; +}; diff --git a/core/rend/imgui_driver.cpp b/core/rend/imgui_driver.cpp new file mode 100644 index 000000000..b9435f468 --- /dev/null +++ b/core/rend/imgui_driver.cpp @@ -0,0 +1,56 @@ +/* + Copyright 2024 flyinghead + + This file is part of Flycast. + + Flycast is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Flycast is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Flycast. If not, see . +*/ +#include "imgui_driver.h" +#define STBI_ONLY_JPEG +#define STBI_ONLY_PNG +#include + +static u8 *loadImage(const std::string& path, int& width, int& height) +{ + FILE *file = nowide::fopen(path.c_str(), "rb"); + if (file == nullptr) + return nullptr; + + int channels; + stbi_set_flip_vertically_on_load(0); + u8 *imgData = stbi_load_from_file(file, &width, &height, &channels, STBI_rgb_alpha); + std::fclose(file); + return imgData; +} + +ImTextureID ImGuiDriver::getOrLoadTexture(const std::string& path) +{ + ImTextureID id = getTexture(path); + if (id == ImTextureID() && textureLoadCount < 10) + { + textureLoadCount++; + int width, height; + u8 *imgData = loadImage(path, width, height); + if (imgData != nullptr) + { + try { + id = updateTextureAndAspectRatio(path, imgData, width, height); + } catch (...) { + // vulkan can throw during resizing + } + free(imgData); + } + } + return id; +} diff --git a/core/rend/imgui_driver.h b/core/rend/imgui_driver.h index 3d17cef1c..a84618e33 100644 --- a/core/rend/imgui_driver.h +++ b/core/rend/imgui_driver.h @@ -36,20 +36,13 @@ public: virtual void displayVmus() {} virtual void displayCrosshairs() {} - virtual void present() = 0; - virtual void setFrameRendered() {} - - virtual ImTextureID getTexture(const std::string& name) = 0; - virtual ImTextureID updateTexture(const std::string& name, const u8 *data, int width, int height) = 0; - - ImTextureID updateTextureAndAspectRatio(const std::string& name, const u8 *data, int width, int height) - { - ImTextureID textureId = updateTexture(name, data, width, height); - if (textureId != ImTextureID()) - aspectRatios[textureId] = (float)width / height; - return textureId; + void doPresent() { + textureLoadCount = 0; + present(); } + virtual void setFrameRendered() {} + float getAspectRatio(ImTextureID textureId) { auto it = aspectRatios.find(textureId); if (it != aspectRatios.end()) @@ -58,8 +51,25 @@ public: return 1; } + ImTextureID getOrLoadTexture(const std::string& path); + +protected: + virtual ImTextureID getTexture(const std::string& name) = 0; + virtual ImTextureID updateTexture(const std::string& name, const u8 *data, int width, int height) = 0; + virtual void present() = 0; + private: + ImTextureID updateTextureAndAspectRatio(const std::string& name, const u8 *data, int width, int height) + { + textureLoadCount++; + ImTextureID textureId = updateTexture(name, data, width, height); + if (textureId != ImTextureID()) + aspectRatios[textureId] = (float)width / height; + return textureId; + } + std::unordered_map aspectRatios; + int textureLoadCount = 0; }; extern std::unique_ptr imguiDriver; diff --git a/core/rend/mainui.cpp b/core/rend/mainui.cpp index 8191679e4..7a9a84192 100644 --- a/core/rend/mainui.cpp +++ b/core/rend/mainui.cpp @@ -96,7 +96,7 @@ void mainui_loop() if (imguiDriver == nullptr) forceReinit = true; else - imguiDriver->present(); + imguiDriver->doPresent(); if (config::RendererType != currentRenderer || forceReinit) { diff --git a/fonts/fa-solid-900.ttf.zip b/fonts/fa-solid-900.ttf.zip new file mode 100644 index 0000000000000000000000000000000000000000..449985a452f7a075552bbd399c03416a88655f3e GIT binary patch literal 173936 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

%F%CnB;j`q-z>0l@nOy6K-oVL63S~ElZAb;~) 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