From dd711ed10c5a2e28fff7aac63b746ebb4a9e2d91 Mon Sep 17 00:00:00 2001 From: goat <16760685+goaaats@users.noreply.github.com> Date: Tue, 12 May 2020 19:10:40 +0200 Subject: [PATCH] feat: add IconFont to InterfaceManager and UiBuilder(based on FontAwesome 5) and a FontAwesomeIcon enum --- Dalamud/Interface/AssetManager.cs | 1 + Dalamud/Interface/FontAwesomeIcon.cs | 1429 +++++++++++++++++++++++++ Dalamud/Interface/InterfaceManager.cs | 24 +- Dalamud/Interface/UiBuilder.cs | 9 + 4 files changed, 1457 insertions(+), 6 deletions(-) create mode 100644 Dalamud/Interface/FontAwesomeIcon.cs diff --git a/Dalamud/Interface/AssetManager.cs b/Dalamud/Interface/AssetManager.cs index a9aa492e7..b1fd3bdc1 100644 --- a/Dalamud/Interface/AssetManager.cs +++ b/Dalamud/Interface/AssetManager.cs @@ -16,6 +16,7 @@ namespace Dalamud.Interface {AssetStoreUrl + "UIRes/serveropcode.json", "UIRes/serveropcode.json" }, {AssetStoreUrl + "UIRes/clientopcode.json", "UIRes/clientopcode.json" }, {AssetStoreUrl + "UIRes/NotoSansCJKjp-Medium.otf", "UIRes/NotoSansCJKjp-Medium.otf" }, + {AssetStoreUrl + "UIRes/FontAwesome5FreeSolid.otf", "UIRes/FontAwesome5FreeSolid.otf" }, {AssetStoreUrl + "UIRes/logo.png", "UIRes/logo.png" }, {AssetStoreUrl + "UIRes/loc/dalamud/dalamud_de.json", "UIRes/loc/dalamud/dalamud_de.json" }, {AssetStoreUrl + "UIRes/loc/dalamud/dalamud_es.json", "UIRes/loc/dalamud/dalamud_es.json" }, diff --git a/Dalamud/Interface/FontAwesomeIcon.cs b/Dalamud/Interface/FontAwesomeIcon.cs new file mode 100644 index 000000000..104a931f6 --- /dev/null +++ b/Dalamud/Interface/FontAwesomeIcon.cs @@ -0,0 +1,1429 @@ +//Font-Awesome - Version 5.0.9 +using System.Collections.Generic; + +namespace Dalamud.Interface +{ + public enum FontAwesomeIcon + { + None = 0, + _500Px = 0xf26e, + AccessibleIcon = 0xf368, + Accusoft = 0xf369, + AcquisitionsIncorporated = 0xf6af, + Ad = 0xf641, + AddressBook = 0xf2b9, + AddressCard = 0xf2bb, + Adjust = 0xf042, + Adn = 0xf170, + Adobe = 0xf778, + Adversal = 0xf36a, + Affiliatetheme = 0xf36b, + Airbnb = 0xf834, + AirFreshener = 0xf5d0, + Algolia = 0xf36c, + AlignCenter = 0xf037, + AlignJustify = 0xf039, + AlignLeft = 0xf036, + AlignRight = 0xf038, + Alipay = 0xf642, + Allergies = 0xf461, + Amazon = 0xf270, + AmazonPay = 0xf42c, + Ambulance = 0xf0f9, + AmericanSignLanguageInterpreting = 0xf2a3, + Amilia = 0xf36d, + Anchor = 0xf13d, + Android = 0xf17b, + Angellist = 0xf209, + AngleDoubleDown = 0xf103, + AngleDoubleLeft = 0xf100, + AngleDoubleRight = 0xf101, + AngleDoubleUp = 0xf102, + AngleDown = 0xf107, + AngleLeft = 0xf104, + AngleRight = 0xf105, + AngleUp = 0xf106, + Angry = 0xf556, + Angrycreative = 0xf36e, + Angular = 0xf420, + Ankh = 0xf644, + Apper = 0xf371, + Apple = 0xf179, + AppleAlt = 0xf5d1, + ApplePay = 0xf415, + AppStore = 0xf36f, + AppStoreIos = 0xf370, + Archive = 0xf187, + Archway = 0xf557, + ArrowAltCircleDown = 0xf358, + ArrowAltCircleLeft = 0xf359, + ArrowAltCircleRight = 0xf35a, + ArrowAltCircleUp = 0xf35b, + ArrowCircleDown = 0xf0ab, + ArrowCircleLeft = 0xf0a8, + ArrowCircleRight = 0xf0a9, + ArrowCircleUp = 0xf0aa, + ArrowDown = 0xf063, + ArrowLeft = 0xf060, + ArrowRight = 0xf061, + ArrowsAlt = 0xf0b2, + ArrowsAltH = 0xf337, + ArrowsAltV = 0xf338, + ArrowUp = 0xf062, + Artstation = 0xf77a, + AssistiveListeningSystems = 0xf2a2, + Asterisk = 0xf069, + Asymmetrik = 0xf372, + At = 0xf1fa, + Atlas = 0xf558, + Atlassian = 0xf77b, + Atom = 0xf5d2, + Audible = 0xf373, + AudioDescription = 0xf29e, + Autoprefixer = 0xf41c, + Avianex = 0xf374, + Aviato = 0xf421, + Award = 0xf559, + Aws = 0xf375, + Baby = 0xf77c, + BabyCarriage = 0xf77d, + Backspace = 0xf55a, + Backward = 0xf04a, + Bacon = 0xf7e5, + Bahai = 0xf666, + BalanceScale = 0xf24e, + BalanceScaleLeft = 0xf515, + BalanceScaleRight = 0xf516, + Ban = 0xf05e, + BandAid = 0xf462, + Bandcamp = 0xf2d5, + Barcode = 0xf02a, + Bars = 0xf0c9, + BaseballBall = 0xf433, + BasketballBall = 0xf434, + Bath = 0xf2cd, + BatteryEmpty = 0xf244, + BatteryFull = 0xf240, + BatteryHalf = 0xf242, + BatteryQuarter = 0xf243, + BatteryThreeQuarters = 0xf241, + BattleNet = 0xf835, + Bed = 0xf236, + Beer = 0xf0fc, + Behance = 0xf1b4, + BehanceSquare = 0xf1b5, + Bell = 0xf0f3, + BellSlash = 0xf1f6, + BezierCurve = 0xf55b, + Bible = 0xf647, + Bicycle = 0xf206, + Biking = 0xf84a, + Bimobject = 0xf378, + Binoculars = 0xf1e5, + Biohazard = 0xf780, + BirthdayCake = 0xf1fd, + Bitbucket = 0xf171, + Bitcoin = 0xf379, + Bity = 0xf37a, + Blackberry = 0xf37b, + BlackTie = 0xf27e, + Blender = 0xf517, + BlenderPhone = 0xf6b6, + Blind = 0xf29d, + Blog = 0xf781, + Blogger = 0xf37c, + BloggerB = 0xf37d, + Bluetooth = 0xf293, + BluetoothB = 0xf294, + Bold = 0xf032, + Bolt = 0xf0e7, + Bomb = 0xf1e2, + Bone = 0xf5d7, + Bong = 0xf55c, + Book = 0xf02d, + BookDead = 0xf6b7, + Bookmark = 0xf02e, + BookMedical = 0xf7e6, + BookOpen = 0xf518, + BookReader = 0xf5da, + Bootstrap = 0xf836, + BorderAll = 0xf84c, + BorderNone = 0xf850, + BorderStyle = 0xf853, + BowlingBall = 0xf436, + Box = 0xf466, + Boxes = 0xf468, + BoxOpen = 0xf49e, + Braille = 0xf2a1, + Brain = 0xf5dc, + BreadSlice = 0xf7ec, + Briefcase = 0xf0b1, + BriefcaseMedical = 0xf469, + BroadcastTower = 0xf519, + Broom = 0xf51a, + Brush = 0xf55d, + Btc = 0xf15a, + Buffer = 0xf837, + Bug = 0xf188, + Building = 0xf1ad, + Bullhorn = 0xf0a1, + Bullseye = 0xf140, + Burn = 0xf46a, + Buromobelexperte = 0xf37f, + Bus = 0xf207, + BusAlt = 0xf55e, + BusinessTime = 0xf64a, + BuyNLarge = 0xf8a6, + Buysellads = 0xf20d, + Calculator = 0xf1ec, + Calendar = 0xf133, + CalendarAlt = 0xf073, + CalendarCheck = 0xf274, + CalendarDay = 0xf783, + CalendarMinus = 0xf272, + CalendarPlus = 0xf271, + CalendarTimes = 0xf273, + CalendarWeek = 0xf784, + Camera = 0xf030, + CameraRetro = 0xf083, + Campground = 0xf6bb, + CanadianMapleLeaf = 0xf785, + CandyCane = 0xf786, + Cannabis = 0xf55f, + Capsules = 0xf46b, + Car = 0xf1b9, + CarAlt = 0xf5de, + Caravan = 0xf8ff, + CarBattery = 0xf5df, + CarCrash = 0xf5e1, + CaretDown = 0xf0d7, + CaretLeft = 0xf0d9, + CaretRight = 0xf0da, + CaretSquareDown = 0xf150, + CaretSquareLeft = 0xf191, + CaretSquareRight = 0xf152, + CaretSquareUp = 0xf151, + CaretUp = 0xf0d8, + Carrot = 0xf787, + CarSide = 0xf5e4, + CartArrowDown = 0xf218, + CartPlus = 0xf217, + CashRegister = 0xf788, + Cat = 0xf6be, + CcAmazonPay = 0xf42d, + CcAmex = 0xf1f3, + CcApplePay = 0xf416, + CcDinersClub = 0xf24c, + CcDiscover = 0xf1f2, + CcJcb = 0xf24b, + CcMastercard = 0xf1f1, + CcPaypal = 0xf1f4, + CcStripe = 0xf1f5, + CcVisa = 0xf1f0, + Centercode = 0xf380, + Centos = 0xf789, + Certificate = 0xf0a3, + Chair = 0xf6c0, + Chalkboard = 0xf51b, + ChalkboardTeacher = 0xf51c, + ChargingStation = 0xf5e7, + ChartArea = 0xf1fe, + ChartBar = 0xf080, + ChartLine = 0xf201, + ChartPie = 0xf200, + Check = 0xf00c, + CheckCircle = 0xf058, + CheckDouble = 0xf560, + CheckSquare = 0xf14a, + Cheese = 0xf7ef, + Chess = 0xf439, + ChessBishop = 0xf43a, + ChessBoard = 0xf43c, + ChessKing = 0xf43f, + ChessKnight = 0xf441, + ChessPawn = 0xf443, + ChessQueen = 0xf445, + ChessRook = 0xf447, + ChevronCircleDown = 0xf13a, + ChevronCircleLeft = 0xf137, + ChevronCircleRight = 0xf138, + ChevronCircleUp = 0xf139, + ChevronDown = 0xf078, + ChevronLeft = 0xf053, + ChevronRight = 0xf054, + ChevronUp = 0xf077, + Child = 0xf1ae, + Chrome = 0xf268, + Chromecast = 0xf838, + Church = 0xf51d, + Circle = 0xf111, + CircleNotch = 0xf1ce, + City = 0xf64f, + ClinicMedical = 0xf7f2, + Clipboard = 0xf328, + ClipboardCheck = 0xf46c, + ClipboardList = 0xf46d, + Clock = 0xf017, + Clone = 0xf24d, + ClosedCaptioning = 0xf20a, + Cloud = 0xf0c2, + CloudDownloadAlt = 0xf381, + CloudMeatball = 0xf73b, + CloudMoon = 0xf6c3, + CloudMoonRain = 0xf73c, + CloudRain = 0xf73d, + Cloudscale = 0xf383, + CloudShowersHeavy = 0xf740, + Cloudsmith = 0xf384, + CloudSun = 0xf6c4, + CloudSunRain = 0xf743, + CloudUploadAlt = 0xf382, + Cloudversify = 0xf385, + Cocktail = 0xf561, + Code = 0xf121, + CodeBranch = 0xf126, + Codepen = 0xf1cb, + Codiepie = 0xf284, + Coffee = 0xf0f4, + Cog = 0xf013, + Cogs = 0xf085, + Coins = 0xf51e, + Columns = 0xf0db, + Comment = 0xf075, + CommentAlt = 0xf27a, + CommentDollar = 0xf651, + CommentDots = 0xf4ad, + CommentMedical = 0xf7f5, + Comments = 0xf086, + CommentsDollar = 0xf653, + CommentSlash = 0xf4b3, + CompactDisc = 0xf51f, + Compass = 0xf14e, + Compress = 0xf066, + CompressAlt = 0xf422, + CompressArrowsAlt = 0xf78c, + ConciergeBell = 0xf562, + Confluence = 0xf78d, + Connectdevelop = 0xf20e, + Contao = 0xf26d, + Cookie = 0xf563, + CookieBite = 0xf564, + Copy = 0xf0c5, + Copyright = 0xf1f9, + CottonBureau = 0xf89e, + Couch = 0xf4b8, + Cpanel = 0xf388, + CreativeCommons = 0xf25e, + CreativeCommonsBy = 0xf4e7, + CreativeCommonsNc = 0xf4e8, + CreativeCommonsNcEu = 0xf4e9, + CreativeCommonsNcJp = 0xf4ea, + CreativeCommonsNd = 0xf4eb, + CreativeCommonsPd = 0xf4ec, + CreativeCommonsPdAlt = 0xf4ed, + CreativeCommonsRemix = 0xf4ee, + CreativeCommonsSa = 0xf4ef, + CreativeCommonsSampling = 0xf4f0, + CreativeCommonsSamplingPlus = 0xf4f1, + CreativeCommonsShare = 0xf4f2, + CreativeCommonsZero = 0xf4f3, + CreditCard = 0xf09d, + CriticalRole = 0xf6c9, + Crop = 0xf125, + CropAlt = 0xf565, + Cross = 0xf654, + Crosshairs = 0xf05b, + Crow = 0xf520, + Crown = 0xf521, + Crutch = 0xf7f7, + Css3 = 0xf13c, + Css3Alt = 0xf38b, + Cube = 0xf1b2, + Cubes = 0xf1b3, + Cut = 0xf0c4, + Cuttlefish = 0xf38c, + Dailymotion = 0xf952, + DAndD = 0xf38d, + DAndDBeyond = 0xf6ca, + Dashcube = 0xf210, + Database = 0xf1c0, + Deaf = 0xf2a4, + Delicious = 0xf1a5, + Democrat = 0xf747, + Deploydog = 0xf38e, + Deskpro = 0xf38f, + Desktop = 0xf108, + Dev = 0xf6cc, + Deviantart = 0xf1bd, + Dharmachakra = 0xf655, + Dhl = 0xf790, + Diagnoses = 0xf470, + Diaspora = 0xf791, + Dice = 0xf522, + DiceD20 = 0xf6cf, + DiceD6 = 0xf6d1, + DiceFive = 0xf523, + DiceFour = 0xf524, + DiceOne = 0xf525, + DiceSix = 0xf526, + DiceThree = 0xf527, + DiceTwo = 0xf528, + Digg = 0xf1a6, + DigitalOcean = 0xf391, + DigitalTachograph = 0xf566, + Directions = 0xf5eb, + Discord = 0xf392, + Discourse = 0xf393, + Divide = 0xf529, + Dizzy = 0xf567, + Dna = 0xf471, + Dochub = 0xf394, + Docker = 0xf395, + Dog = 0xf6d3, + DollarSign = 0xf155, + Dolly = 0xf472, + DollyFlatbed = 0xf474, + Donate = 0xf4b9, + DoorClosed = 0xf52a, + DoorOpen = 0xf52b, + DotCircle = 0xf192, + Dove = 0xf4ba, + Download = 0xf019, + Draft2digital = 0xf396, + DraftingCompass = 0xf568, + Dragon = 0xf6d5, + DrawPolygon = 0xf5ee, + Dribbble = 0xf17d, + DribbbleSquare = 0xf397, + Dropbox = 0xf16b, + Drum = 0xf569, + DrumSteelpan = 0xf56a, + DrumstickBite = 0xf6d7, + Drupal = 0xf1a9, + Dumbbell = 0xf44b, + Dumpster = 0xf793, + DumpsterFire = 0xf794, + Dungeon = 0xf6d9, + Dyalog = 0xf399, + Earlybirds = 0xf39a, + Ebay = 0xf4f4, + Edge = 0xf282, + Edit = 0xf044, + Egg = 0xf7fb, + Eject = 0xf052, + Elementor = 0xf430, + EllipsisH = 0xf141, + EllipsisV = 0xf142, + Ello = 0xf5f1, + Ember = 0xf423, + Empire = 0xf1d1, + Envelope = 0xf0e0, + EnvelopeOpen = 0xf2b6, + EnvelopeOpenText = 0xf658, + EnvelopeSquare = 0xf199, + Envira = 0xf299, + Equals = 0xf52c, + Eraser = 0xf12d, + Erlang = 0xf39d, + Ethereum = 0xf42e, + Ethernet = 0xf796, + Etsy = 0xf2d7, + EuroSign = 0xf153, + Evernote = 0xf839, + ExchangeAlt = 0xf362, + Exclamation = 0xf12a, + ExclamationCircle = 0xf06a, + ExclamationTriangle = 0xf071, + Expand = 0xf065, + ExpandAlt = 0xf424, + ExpandArrowsAlt = 0xf31e, + Expeditedssl = 0xf23e, + ExternalLinkAlt = 0xf35d, + ExternalLinkSquareAlt = 0xf360, + Eye = 0xf06e, + EyeDropper = 0xf1fb, + EyeSlash = 0xf070, + Facebook = 0xf09a, + FacebookF = 0xf39e, + FacebookMessenger = 0xf39f, + FacebookSquare = 0xf082, + Fan = 0xf863, + FantasyFlightGames = 0xf6dc, + FastBackward = 0xf049, + FastForward = 0xf050, + Fax = 0xf1ac, + Feather = 0xf52d, + FeatherAlt = 0xf56b, + Fedex = 0xf797, + Fedora = 0xf798, + Female = 0xf182, + FighterJet = 0xf0fb, + Figma = 0xf799, + File = 0xf15b, + FileAlt = 0xf15c, + FileArchive = 0xf1c6, + FileAudio = 0xf1c7, + FileCode = 0xf1c9, + FileContract = 0xf56c, + FileCsv = 0xf6dd, + FileDownload = 0xf56d, + FileExcel = 0xf1c3, + FileExport = 0xf56e, + FileImage = 0xf1c5, + FileImport = 0xf56f, + FileInvoice = 0xf570, + FileInvoiceDollar = 0xf571, + FileMedical = 0xf477, + FileMedicalAlt = 0xf478, + FilePdf = 0xf1c1, + FilePowerpoint = 0xf1c4, + FilePrescription = 0xf572, + FileSignature = 0xf573, + FileUpload = 0xf574, + FileVideo = 0xf1c8, + FileWord = 0xf1c2, + Fill = 0xf575, + FillDrip = 0xf576, + Film = 0xf008, + Filter = 0xf0b0, + Fingerprint = 0xf577, + Fire = 0xf06d, + FireAlt = 0xf7e4, + FireExtinguisher = 0xf134, + Firefox = 0xf269, + FirefoxBrowser = 0xf907, + FirstAid = 0xf479, + Firstdraft = 0xf3a1, + FirstOrder = 0xf2b0, + FirstOrderAlt = 0xf50a, + Fish = 0xf578, + FistRaised = 0xf6de, + Flag = 0xf024, + FlagCheckered = 0xf11e, + FlagUsa = 0xf74d, + Flask = 0xf0c3, + Flickr = 0xf16e, + Flipboard = 0xf44d, + Flushed = 0xf579, + Fly = 0xf417, + Folder = 0xf07b, + FolderMinus = 0xf65d, + FolderOpen = 0xf07c, + FolderPlus = 0xf65e, + Font = 0xf031, + FontAwesome = 0xf2b4, + FontAwesomeAlt = 0xf35c, + FontAwesomeFlag = 0xf425, + FontAwesomeLogoFull = 0xf4e6, + Fonticons = 0xf280, + FonticonsFi = 0xf3a2, + FootballBall = 0xf44e, + FortAwesome = 0xf286, + FortAwesomeAlt = 0xf3a3, + Forumbee = 0xf211, + Forward = 0xf04e, + Foursquare = 0xf180, + Freebsd = 0xf3a4, + FreeCodeCamp = 0xf2c5, + Frog = 0xf52e, + Frown = 0xf119, + FrownOpen = 0xf57a, + Fulcrum = 0xf50b, + FunnelDollar = 0xf662, + Futbol = 0xf1e3, + GalacticRepublic = 0xf50c, + GalacticSenate = 0xf50d, + Gamepad = 0xf11b, + GasPump = 0xf52f, + Gavel = 0xf0e3, + Gem = 0xf3a5, + Genderless = 0xf22d, + GetPocket = 0xf265, + Gg = 0xf260, + GgCircle = 0xf261, + Ghost = 0xf6e2, + Gift = 0xf06b, + Gifts = 0xf79c, + Git = 0xf1d3, + GitAlt = 0xf841, + Github = 0xf09b, + GithubAlt = 0xf113, + GithubSquare = 0xf092, + Gitkraken = 0xf3a6, + Gitlab = 0xf296, + GitSquare = 0xf1d2, + Gitter = 0xf426, + GlassCheers = 0xf79f, + Glasses = 0xf530, + GlassMartini = 0xf000, + GlassMartiniAlt = 0xf57b, + GlassWhiskey = 0xf7a0, + Glide = 0xf2a5, + GlideG = 0xf2a6, + Globe = 0xf0ac, + GlobeAfrica = 0xf57c, + GlobeAmericas = 0xf57d, + GlobeAsia = 0xf57e, + GlobeEurope = 0xf7a2, + Gofore = 0xf3a7, + GolfBall = 0xf450, + Goodreads = 0xf3a8, + GoodreadsG = 0xf3a9, + Google = 0xf1a0, + GoogleDrive = 0xf3aa, + GooglePlay = 0xf3ab, + GooglePlus = 0xf2b3, + GooglePlusG = 0xf0d5, + GooglePlusSquare = 0xf0d4, + GoogleWallet = 0xf1ee, + Gopuram = 0xf664, + GraduationCap = 0xf19d, + Gratipay = 0xf184, + Grav = 0xf2d6, + GreaterThan = 0xf531, + GreaterThanEqual = 0xf532, + Grimace = 0xf57f, + Grin = 0xf580, + GrinAlt = 0xf581, + GrinBeam = 0xf582, + GrinBeamSweat = 0xf583, + GrinHearts = 0xf584, + GrinSquint = 0xf585, + GrinSquintTears = 0xf586, + GrinStars = 0xf587, + GrinTears = 0xf588, + GrinTongue = 0xf589, + GrinTongueSquint = 0xf58a, + GrinTongueWink = 0xf58b, + GrinWink = 0xf58c, + Gripfire = 0xf3ac, + GripHorizontal = 0xf58d, + GripLines = 0xf7a4, + GripLinesVertical = 0xf7a5, + GripVertical = 0xf58e, + Grunt = 0xf3ad, + Guitar = 0xf7a6, + Gulp = 0xf3ae, + HackerNews = 0xf1d4, + HackerNewsSquare = 0xf3af, + Hackerrank = 0xf5f7, + Hamburger = 0xf805, + Hammer = 0xf6e3, + Hamsa = 0xf665, + HandHolding = 0xf4bd, + HandHoldingHeart = 0xf4be, + HandHoldingUsd = 0xf4c0, + HandLizard = 0xf258, + HandMiddleFinger = 0xf806, + HandPaper = 0xf256, + HandPeace = 0xf25b, + HandPointDown = 0xf0a7, + HandPointer = 0xf25a, + HandPointLeft = 0xf0a5, + HandPointRight = 0xf0a4, + HandPointUp = 0xf0a6, + HandRock = 0xf255, + Hands = 0xf4c2, + HandScissors = 0xf257, + Handshake = 0xf2b5, + HandsHelping = 0xf4c4, + HandSpock = 0xf259, + Hanukiah = 0xf6e6, + HardHat = 0xf807, + Hashtag = 0xf292, + HatCowboy = 0xf8c0, + HatCowboySide = 0xf8c1, + HatWizard = 0xf6e8, + Hdd = 0xf0a0, + Heading = 0xf1dc, + Headphones = 0xf025, + HeadphonesAlt = 0xf58f, + Headset = 0xf590, + Heart = 0xf004, + Heartbeat = 0xf21e, + HeartBroken = 0xf7a9, + Helicopter = 0xf533, + Highlighter = 0xf591, + Hiking = 0xf6ec, + Hippo = 0xf6ed, + Hips = 0xf452, + HireAHelper = 0xf3b0, + History = 0xf1da, + HockeyPuck = 0xf453, + HollyBerry = 0xf7aa, + Home = 0xf015, + Hooli = 0xf427, + Hornbill = 0xf592, + Horse = 0xf6f0, + HorseHead = 0xf7ab, + Hospital = 0xf0f8, + HospitalAlt = 0xf47d, + HospitalSymbol = 0xf47e, + Hotdog = 0xf80f, + Hotel = 0xf594, + Hotjar = 0xf3b1, + HotTub = 0xf593, + Hourglass = 0xf254, + HourglassEnd = 0xf253, + HourglassHalf = 0xf252, + HourglassStart = 0xf251, + HouseDamage = 0xf6f1, + Houzz = 0xf27c, + Hryvnia = 0xf6f2, + HSquare = 0xf0fd, + Html5 = 0xf13b, + Hubspot = 0xf3b2, + IceCream = 0xf810, + Icicles = 0xf7ad, + Icons = 0xf86d, + ICursor = 0xf246, + IdBadge = 0xf2c1, + IdCard = 0xf2c2, + IdCardAlt = 0xf47f, + Ideal = 0xf913, + Igloo = 0xf7ae, + Image = 0xf03e, + Images = 0xf302, + Imdb = 0xf2d8, + Inbox = 0xf01c, + Indent = 0xf03c, + Industry = 0xf275, + Infinity = 0xf534, + Info = 0xf129, + InfoCircle = 0xf05a, + Instagram = 0xf16d, + InstagramSquare = 0xf955, + Intercom = 0xf7af, + InternetExplorer = 0xf26b, + Invision = 0xf7b0, + Ioxhost = 0xf208, + Italic = 0xf033, + ItchIo = 0xf83a, + Itunes = 0xf3b4, + ItunesNote = 0xf3b5, + Java = 0xf4e4, + Jedi = 0xf669, + JediOrder = 0xf50e, + Jenkins = 0xf3b6, + Jira = 0xf7b1, + Joget = 0xf3b7, + Joint = 0xf595, + Joomla = 0xf1aa, + JournalWhills = 0xf66a, + Js = 0xf3b8, + Jsfiddle = 0xf1cc, + JsSquare = 0xf3b9, + Kaaba = 0xf66b, + Kaggle = 0xf5fa, + Key = 0xf084, + Keybase = 0xf4f5, + Keyboard = 0xf11c, + Keycdn = 0xf3ba, + Khanda = 0xf66d, + Kickstarter = 0xf3bb, + KickstarterK = 0xf3bc, + Kiss = 0xf596, + KissBeam = 0xf597, + KissWinkHeart = 0xf598, + KiwiBird = 0xf535, + Korvue = 0xf42f, + Landmark = 0xf66f, + Language = 0xf1ab, + Laptop = 0xf109, + LaptopCode = 0xf5fc, + LaptopMedical = 0xf812, + Laravel = 0xf3bd, + Lastfm = 0xf202, + LastfmSquare = 0xf203, + Laugh = 0xf599, + LaughBeam = 0xf59a, + LaughSquint = 0xf59b, + LaughWink = 0xf59c, + LayerGroup = 0xf5fd, + Leaf = 0xf06c, + Leanpub = 0xf212, + Lemon = 0xf094, + Less = 0xf41d, + LessThan = 0xf536, + LessThanEqual = 0xf537, + LevelDownAlt = 0xf3be, + LevelUpAlt = 0xf3bf, + LifeRing = 0xf1cd, + Lightbulb = 0xf0eb, + Line = 0xf3c0, + Link = 0xf0c1, + Linkedin = 0xf08c, + LinkedinIn = 0xf0e1, + Linode = 0xf2b8, + Linux = 0xf17c, + LiraSign = 0xf195, + List = 0xf03a, + ListAlt = 0xf022, + ListOl = 0xf0cb, + ListUl = 0xf0ca, + LocationArrow = 0xf124, + Lock = 0xf023, + LockOpen = 0xf3c1, + LongArrowAltDown = 0xf309, + LongArrowAltLeft = 0xf30a, + LongArrowAltRight = 0xf30b, + LongArrowAltUp = 0xf30c, + LowVision = 0xf2a8, + LuggageCart = 0xf59d, + Lyft = 0xf3c3, + Magento = 0xf3c4, + Magic = 0xf0d0, + Magnet = 0xf076, + MailBulk = 0xf674, + Mailchimp = 0xf59e, + Male = 0xf183, + Mandalorian = 0xf50f, + Map = 0xf279, + MapMarked = 0xf59f, + MapMarkedAlt = 0xf5a0, + MapMarker = 0xf041, + MapMarkerAlt = 0xf3c5, + MapPin = 0xf276, + MapSigns = 0xf277, + Markdown = 0xf60f, + Marker = 0xf5a1, + Mars = 0xf222, + MarsDouble = 0xf227, + MarsStroke = 0xf229, + MarsStrokeH = 0xf22b, + MarsStrokeV = 0xf22a, + Mask = 0xf6fa, + Mastodon = 0xf4f6, + Maxcdn = 0xf136, + Mdb = 0xf8ca, + Medal = 0xf5a2, + Medapps = 0xf3c6, + Medium = 0xf23a, + MediumM = 0xf3c7, + Medkit = 0xf0fa, + Medrt = 0xf3c8, + Meetup = 0xf2e0, + Megaport = 0xf5a3, + Meh = 0xf11a, + MehBlank = 0xf5a4, + MehRollingEyes = 0xf5a5, + Memory = 0xf538, + Mendeley = 0xf7b3, + Menorah = 0xf676, + Mercury = 0xf223, + Meteor = 0xf753, + Microblog = 0xf91a, + Microchip = 0xf2db, + Microphone = 0xf130, + MicrophoneAlt = 0xf3c9, + MicrophoneAltSlash = 0xf539, + MicrophoneSlash = 0xf131, + Microscope = 0xf610, + Microsoft = 0xf3ca, + Minus = 0xf068, + MinusCircle = 0xf056, + MinusSquare = 0xf146, + Mitten = 0xf7b5, + Mix = 0xf3cb, + Mixcloud = 0xf289, + Mixer = 0xf956, + Mizuni = 0xf3cc, + Mobile = 0xf10b, + MobileAlt = 0xf3cd, + Modx = 0xf285, + Monero = 0xf3d0, + MoneyBill = 0xf0d6, + MoneyBillAlt = 0xf3d1, + MoneyBillWave = 0xf53a, + MoneyBillWaveAlt = 0xf53b, + MoneyCheck = 0xf53c, + MoneyCheckAlt = 0xf53d, + Monument = 0xf5a6, + Moon = 0xf186, + MortarPestle = 0xf5a7, + Mosque = 0xf678, + Motorcycle = 0xf21c, + Mountain = 0xf6fc, + Mouse = 0xf8cc, + MousePointer = 0xf245, + MugHot = 0xf7b6, + Music = 0xf001, + Napster = 0xf3d2, + Neos = 0xf612, + NetworkWired = 0xf6ff, + Neuter = 0xf22c, + Newspaper = 0xf1ea, + Nimblr = 0xf5a8, + Node = 0xf419, + NodeJs = 0xf3d3, + NotEqual = 0xf53e, + NotesMedical = 0xf481, + Npm = 0xf3d4, + Ns8 = 0xf3d5, + Nutritionix = 0xf3d6, + ObjectGroup = 0xf247, + ObjectUngroup = 0xf248, + Odnoklassniki = 0xf263, + OdnoklassnikiSquare = 0xf264, + OilCan = 0xf613, + OldRepublic = 0xf510, + Om = 0xf679, + Opencart = 0xf23d, + Openid = 0xf19b, + Opera = 0xf26a, + OptinMonster = 0xf23c, + Orcid = 0xf8d2, + Osi = 0xf41a, + Otter = 0xf700, + Outdent = 0xf03b, + Page4 = 0xf3d7, + Pagelines = 0xf18c, + Pager = 0xf815, + PaintBrush = 0xf1fc, + PaintRoller = 0xf5aa, + Palette = 0xf53f, + Palfed = 0xf3d8, + Pallet = 0xf482, + Paperclip = 0xf0c6, + PaperPlane = 0xf1d8, + ParachuteBox = 0xf4cd, + Paragraph = 0xf1dd, + Parking = 0xf540, + Passport = 0xf5ab, + Pastafarianism = 0xf67b, + Paste = 0xf0ea, + Patreon = 0xf3d9, + Pause = 0xf04c, + PauseCircle = 0xf28b, + Paw = 0xf1b0, + Paypal = 0xf1ed, + Peace = 0xf67c, + Pen = 0xf304, + PenAlt = 0xf305, + PencilAlt = 0xf303, + PencilRuler = 0xf5ae, + PenFancy = 0xf5ac, + PenNib = 0xf5ad, + PennyArcade = 0xf704, + PenSquare = 0xf14b, + PeopleCarry = 0xf4ce, + PepperHot = 0xf816, + Percent = 0xf295, + Percentage = 0xf541, + Periscope = 0xf3da, + PersonBooth = 0xf756, + Phabricator = 0xf3db, + PhoenixFramework = 0xf3dc, + PhoenixSquadron = 0xf511, + Phone = 0xf095, + PhoneAlt = 0xf879, + PhoneSlash = 0xf3dd, + PhoneSquare = 0xf098, + PhoneSquareAlt = 0xf87b, + PhoneVolume = 0xf2a0, + PhotoVideo = 0xf87c, + Php = 0xf457, + PiedPiper = 0xf2ae, + PiedPiperAlt = 0xf1a8, + PiedPiperHat = 0xf4e5, + PiedPiperPp = 0xf1a7, + PiedPiperSquare = 0xf91e, + PiggyBank = 0xf4d3, + Pills = 0xf484, + Pinterest = 0xf0d2, + PinterestP = 0xf231, + PinterestSquare = 0xf0d3, + PizzaSlice = 0xf818, + PlaceOfWorship = 0xf67f, + Plane = 0xf072, + PlaneArrival = 0xf5af, + PlaneDeparture = 0xf5b0, + Play = 0xf04b, + PlayCircle = 0xf144, + Playstation = 0xf3df, + Plug = 0xf1e6, + Plus = 0xf067, + PlusCircle = 0xf055, + PlusSquare = 0xf0fe, + Podcast = 0xf2ce, + Poll = 0xf681, + PollH = 0xf682, + Poo = 0xf2fe, + Poop = 0xf619, + PooStorm = 0xf75a, + Portrait = 0xf3e0, + PoundSign = 0xf154, + PowerOff = 0xf011, + Pray = 0xf683, + PrayingHands = 0xf684, + Prescription = 0xf5b1, + PrescriptionBottle = 0xf485, + PrescriptionBottleAlt = 0xf486, + Print = 0xf02f, + Procedures = 0xf487, + ProductHunt = 0xf288, + ProjectDiagram = 0xf542, + Pushed = 0xf3e1, + PuzzlePiece = 0xf12e, + Python = 0xf3e2, + Qq = 0xf1d6, + Qrcode = 0xf029, + Question = 0xf128, + QuestionCircle = 0xf059, + Quidditch = 0xf458, + Quinscape = 0xf459, + Quora = 0xf2c4, + QuoteLeft = 0xf10d, + QuoteRight = 0xf10e, + Quran = 0xf687, + Radiation = 0xf7b9, + RadiationAlt = 0xf7ba, + Rainbow = 0xf75b, + Random = 0xf074, + RaspberryPi = 0xf7bb, + Ravelry = 0xf2d9, + React = 0xf41b, + Reacteurope = 0xf75d, + Readme = 0xf4d5, + Rebel = 0xf1d0, + Receipt = 0xf543, + RecordVinyl = 0xf8d9, + Recycle = 0xf1b8, + Reddit = 0xf1a1, + RedditAlien = 0xf281, + RedditSquare = 0xf1a2, + Redhat = 0xf7bc, + Redo = 0xf01e, + RedoAlt = 0xf2f9, + RedRiver = 0xf3e3, + Registered = 0xf25d, + RemoveFormat = 0xf87d, + Renren = 0xf18b, + Reply = 0xf3e5, + ReplyAll = 0xf122, + Replyd = 0xf3e6, + Republican = 0xf75e, + Researchgate = 0xf4f8, + Resolving = 0xf3e7, + Restroom = 0xf7bd, + Retweet = 0xf079, + Rev = 0xf5b2, + Ribbon = 0xf4d6, + Ring = 0xf70b, + Road = 0xf018, + Robot = 0xf544, + Rocket = 0xf135, + Rocketchat = 0xf3e8, + Rockrms = 0xf3e9, + Route = 0xf4d7, + RProject = 0xf4f7, + Rss = 0xf09e, + RssSquare = 0xf143, + RubleSign = 0xf158, + Ruler = 0xf545, + RulerCombined = 0xf546, + RulerHorizontal = 0xf547, + RulerVertical = 0xf548, + Running = 0xf70c, + RupeeSign = 0xf156, + SadCry = 0xf5b3, + SadTear = 0xf5b4, + Safari = 0xf267, + Salesforce = 0xf83b, + Sass = 0xf41e, + Satellite = 0xf7bf, + SatelliteDish = 0xf7c0, + Save = 0xf0c7, + Schlix = 0xf3ea, + School = 0xf549, + Screwdriver = 0xf54a, + Scribd = 0xf28a, + Scroll = 0xf70e, + SdCard = 0xf7c2, + Search = 0xf002, + SearchDollar = 0xf688, + Searchengin = 0xf3eb, + SearchLocation = 0xf689, + SearchMinus = 0xf010, + SearchPlus = 0xf00e, + Seedling = 0xf4d8, + Sellcast = 0xf2da, + Sellsy = 0xf213, + Server = 0xf233, + Servicestack = 0xf3ec, + Shapes = 0xf61f, + Share = 0xf064, + ShareAlt = 0xf1e0, + ShareAltSquare = 0xf1e1, + ShareSquare = 0xf14d, + ShekelSign = 0xf20b, + ShieldAlt = 0xf3ed, + Ship = 0xf21a, + ShippingFast = 0xf48b, + Shirtsinbulk = 0xf214, + ShoePrints = 0xf54b, + Shopify = 0xf957, + ShoppingBag = 0xf290, + ShoppingBasket = 0xf291, + ShoppingCart = 0xf07a, + Shopware = 0xf5b5, + Shower = 0xf2cc, + ShuttleVan = 0xf5b6, + Sign = 0xf4d9, + Signal = 0xf012, + Signature = 0xf5b7, + SignInAlt = 0xf2f6, + SignLanguage = 0xf2a7, + SignOutAlt = 0xf2f5, + SimCard = 0xf7c4, + Simplybuilt = 0xf215, + Sistrix = 0xf3ee, + Sitemap = 0xf0e8, + Sith = 0xf512, + Skating = 0xf7c5, + Sketch = 0xf7c6, + Skiing = 0xf7c9, + SkiingNordic = 0xf7ca, + Skull = 0xf54c, + SkullCrossbones = 0xf714, + Skyatlas = 0xf216, + Skype = 0xf17e, + Slack = 0xf198, + SlackHash = 0xf3ef, + Slash = 0xf715, + Sleigh = 0xf7cc, + SlidersH = 0xf1de, + Slideshare = 0xf1e7, + Smile = 0xf118, + SmileBeam = 0xf5b8, + SmileWink = 0xf4da, + Smog = 0xf75f, + Smoking = 0xf48d, + SmokingBan = 0xf54d, + Sms = 0xf7cd, + Snapchat = 0xf2ab, + SnapchatGhost = 0xf2ac, + SnapchatSquare = 0xf2ad, + Snowboarding = 0xf7ce, + Snowflake = 0xf2dc, + Snowman = 0xf7d0, + Snowplow = 0xf7d2, + Socks = 0xf696, + SolarPanel = 0xf5ba, + Sort = 0xf0dc, + SortAlphaDown = 0xf15d, + SortAlphaDownAlt = 0xf881, + SortAlphaUp = 0xf15e, + SortAlphaUpAlt = 0xf882, + SortAmountDown = 0xf160, + SortAmountDownAlt = 0xf884, + SortAmountUp = 0xf161, + SortAmountUpAlt = 0xf885, + SortDown = 0xf0dd, + SortNumericDown = 0xf162, + SortNumericDownAlt = 0xf886, + SortNumericUp = 0xf163, + SortNumericUpAlt = 0xf887, + SortUp = 0xf0de, + Soundcloud = 0xf1be, + Sourcetree = 0xf7d3, + Spa = 0xf5bb, + SpaceShuttle = 0xf197, + Speakap = 0xf3f3, + SpeakerDeck = 0xf83c, + SpellCheck = 0xf891, + Spider = 0xf717, + Spinner = 0xf110, + Splotch = 0xf5bc, + Spotify = 0xf1bc, + SprayCan = 0xf5bd, + Square = 0xf0c8, + SquareFull = 0xf45c, + SquareRootAlt = 0xf698, + Squarespace = 0xf5be, + StackExchange = 0xf18d, + StackOverflow = 0xf16c, + Stackpath = 0xf842, + Stamp = 0xf5bf, + Star = 0xf005, + StarAndCrescent = 0xf699, + StarHalf = 0xf089, + StarHalfAlt = 0xf5c0, + StarOfDavid = 0xf69a, + StarOfLife = 0xf621, + Staylinked = 0xf3f5, + Steam = 0xf1b6, + SteamSquare = 0xf1b7, + SteamSymbol = 0xf3f6, + StepBackward = 0xf048, + StepForward = 0xf051, + Stethoscope = 0xf0f1, + StickerMule = 0xf3f7, + StickyNote = 0xf249, + Stop = 0xf04d, + StopCircle = 0xf28d, + Stopwatch = 0xf2f2, + Store = 0xf54e, + StoreAlt = 0xf54f, + Strava = 0xf428, + Stream = 0xf550, + StreetView = 0xf21d, + Strikethrough = 0xf0cc, + Stripe = 0xf429, + StripeS = 0xf42a, + Stroopwafel = 0xf551, + Studiovinari = 0xf3f8, + Stumbleupon = 0xf1a4, + StumbleuponCircle = 0xf1a3, + Subscript = 0xf12c, + Subway = 0xf239, + Suitcase = 0xf0f2, + SuitcaseRolling = 0xf5c1, + Sun = 0xf185, + Superpowers = 0xf2dd, + Superscript = 0xf12b, + Supple = 0xf3f9, + Surprise = 0xf5c2, + Suse = 0xf7d6, + Swatchbook = 0xf5c3, + Swift = 0xf8e1, + Swimmer = 0xf5c4, + SwimmingPool = 0xf5c5, + Symfony = 0xf83d, + Synagogue = 0xf69b, + Sync = 0xf021, + SyncAlt = 0xf2f1, + Syringe = 0xf48e, + Table = 0xf0ce, + Tablet = 0xf10a, + TabletAlt = 0xf3fa, + TableTennis = 0xf45d, + Tablets = 0xf490, + TachometerAlt = 0xf3fd, + Tag = 0xf02b, + Tags = 0xf02c, + Tape = 0xf4db, + Tasks = 0xf0ae, + Taxi = 0xf1ba, + Teamspeak = 0xf4f9, + Teeth = 0xf62e, + TeethOpen = 0xf62f, + Telegram = 0xf2c6, + TelegramPlane = 0xf3fe, + TemperatureHigh = 0xf769, + TemperatureLow = 0xf76b, + TencentWeibo = 0xf1d5, + Tenge = 0xf7d7, + Terminal = 0xf120, + TextHeight = 0xf034, + TextWidth = 0xf035, + Th = 0xf00a, + TheaterMasks = 0xf630, + Themeco = 0xf5c6, + Themeisle = 0xf2b2, + TheRedYeti = 0xf69d, + Thermometer = 0xf491, + ThermometerEmpty = 0xf2cb, + ThermometerFull = 0xf2c7, + ThermometerHalf = 0xf2c9, + ThermometerQuarter = 0xf2ca, + ThermometerThreeQuarters = 0xf2c8, + ThinkPeaks = 0xf731, + ThLarge = 0xf009, + ThList = 0xf00b, + ThumbsDown = 0xf165, + ThumbsUp = 0xf164, + Thumbtack = 0xf08d, + TicketAlt = 0xf3ff, + Times = 0xf00d, + TimesCircle = 0xf057, + Tint = 0xf043, + TintSlash = 0xf5c7, + Tired = 0xf5c8, + ToggleOff = 0xf204, + ToggleOn = 0xf205, + Toilet = 0xf7d8, + ToiletPaper = 0xf71e, + Toolbox = 0xf552, + Tools = 0xf7d9, + Tooth = 0xf5c9, + Torah = 0xf6a0, + ToriiGate = 0xf6a1, + Tractor = 0xf722, + TradeFederation = 0xf513, + Trademark = 0xf25c, + TrafficLight = 0xf637, + Trailer = 0xf941, + Train = 0xf238, + Tram = 0xf7da, + Transgender = 0xf224, + TransgenderAlt = 0xf225, + Trash = 0xf1f8, + TrashAlt = 0xf2ed, + TrashRestore = 0xf829, + TrashRestoreAlt = 0xf82a, + Tree = 0xf1bb, + Trello = 0xf181, + Tripadvisor = 0xf262, + Trophy = 0xf091, + Truck = 0xf0d1, + TruckLoading = 0xf4de, + TruckMonster = 0xf63b, + TruckMoving = 0xf4df, + TruckPickup = 0xf63c, + Tshirt = 0xf553, + Tty = 0xf1e4, + Tumblr = 0xf173, + TumblrSquare = 0xf174, + Tv = 0xf26c, + Twitch = 0xf1e8, + Twitter = 0xf099, + TwitterSquare = 0xf081, + Typo3 = 0xf42b, + Uber = 0xf402, + Ubuntu = 0xf7df, + Uikit = 0xf403, + Umbraco = 0xf8e8, + Umbrella = 0xf0e9, + UmbrellaBeach = 0xf5ca, + Underline = 0xf0cd, + Undo = 0xf0e2, + UndoAlt = 0xf2ea, + Uniregistry = 0xf404, + Unity = 0xf949, + UniversalAccess = 0xf29a, + University = 0xf19c, + Unlink = 0xf127, + Unlock = 0xf09c, + UnlockAlt = 0xf13e, + Untappd = 0xf405, + Upload = 0xf093, + Ups = 0xf7e0, + Usb = 0xf287, + User = 0xf007, + UserAlt = 0xf406, + UserAltSlash = 0xf4fa, + UserAstronaut = 0xf4fb, + UserCheck = 0xf4fc, + UserCircle = 0xf2bd, + UserClock = 0xf4fd, + UserCog = 0xf4fe, + UserEdit = 0xf4ff, + UserFriends = 0xf500, + UserGraduate = 0xf501, + UserInjured = 0xf728, + UserLock = 0xf502, + UserMd = 0xf0f0, + UserMinus = 0xf503, + UserNinja = 0xf504, + UserNurse = 0xf82f, + UserPlus = 0xf234, + Users = 0xf0c0, + UsersCog = 0xf509, + UserSecret = 0xf21b, + UserShield = 0xf505, + UserSlash = 0xf506, + UserTag = 0xf507, + UserTie = 0xf508, + UserTimes = 0xf235, + Usps = 0xf7e1, + Ussunnah = 0xf407, + Utensils = 0xf2e7, + UtensilSpoon = 0xf2e5, + Vaadin = 0xf408, + VectorSquare = 0xf5cb, + Venus = 0xf221, + VenusDouble = 0xf226, + VenusMars = 0xf228, + Viacoin = 0xf237, + Viadeo = 0xf2a9, + ViadeoSquare = 0xf2aa, + Vial = 0xf492, + Vials = 0xf493, + Viber = 0xf409, + Video = 0xf03d, + VideoSlash = 0xf4e2, + Vihara = 0xf6a7, + Vimeo = 0xf40a, + VimeoSquare = 0xf194, + VimeoV = 0xf27d, + Vine = 0xf1ca, + Vk = 0xf189, + Vnv = 0xf40b, + Voicemail = 0xf897, + VolleyballBall = 0xf45f, + VolumeDown = 0xf027, + VolumeMute = 0xf6a9, + VolumeOff = 0xf026, + VolumeUp = 0xf028, + VoteYea = 0xf772, + VrCardboard = 0xf729, + Vuejs = 0xf41f, + Walking = 0xf554, + Wallet = 0xf555, + Warehouse = 0xf494, + Water = 0xf773, + WaveSquare = 0xf83e, + Waze = 0xf83f, + Weebly = 0xf5cc, + Weibo = 0xf18a, + Weight = 0xf496, + WeightHanging = 0xf5cd, + Weixin = 0xf1d7, + Whatsapp = 0xf232, + WhatsappSquare = 0xf40c, + Wheelchair = 0xf193, + Whmcs = 0xf40d, + Wifi = 0xf1eb, + WikipediaW = 0xf266, + Wind = 0xf72e, + WindowClose = 0xf410, + WindowMaximize = 0xf2d0, + WindowMinimize = 0xf2d1, + WindowRestore = 0xf2d2, + Windows = 0xf17a, + WineBottle = 0xf72f, + WineGlass = 0xf4e3, + WineGlassAlt = 0xf5ce, + Wix = 0xf5cf, + WizardsOfTheCoast = 0xf730, + WolfPackBattalion = 0xf514, + WonSign = 0xf159, + Wordpress = 0xf19a, + WordpressSimple = 0xf411, + Wpbeginner = 0xf297, + Wpexplorer = 0xf2de, + Wpforms = 0xf298, + Wpressr = 0xf3e4, + Wrench = 0xf0ad, + Xbox = 0xf412, + Xing = 0xf168, + XingSquare = 0xf169, + XRay = 0xf497, + Yahoo = 0xf19e, + Yammer = 0xf840, + Yandex = 0xf413, + YandexInternational = 0xf414, + Yarn = 0xf7e3, + YCombinator = 0xf23b, + Yelp = 0xf1e9, + YenSign = 0xf157, + YinYang = 0xf6ad, + Yoast = 0xf2b1, + Youtube = 0xf167, + YoutubeSquare = 0xf431, + Zhihu = 0xf63f, + } + + public static class FontAwesomeExtensions + { + public static char ToIconChar(this FontAwesomeIcon icon) { + return (char) icon; + } + + public static string ToIconString(this FontAwesomeIcon icon) + { + return "" + (char) icon; + } + } +} diff --git a/Dalamud/Interface/InterfaceManager.cs b/Dalamud/Interface/InterfaceManager.cs index 5fde5a051..188159d3f 100644 --- a/Dalamud/Interface/InterfaceManager.cs +++ b/Dalamud/Interface/InterfaceManager.cs @@ -260,6 +260,9 @@ namespace Dalamud.Interface return this.presentHook.Original(swapChain, syncInterval, presentFlags); } + public static ImFontPtr DefaultFont { get; private set; } + public static ImFontPtr IconFont { get; private set; } + private unsafe void SetupFonts() { ImGui.GetIO().Fonts.Clear(); @@ -269,27 +272,36 @@ namespace Dalamud.Interface fontConfig.PixelSnapH = true; var fontPathJp = Path.Combine(this.dalamud.StartInfo.WorkingDirectory, "UIRes", "NotoSansCJKjp-Medium.otf"); - ImGui.GetIO().Fonts.AddFontFromFileTTF(fontPathJp, 17.0f, null, ImGui.GetIO().Fonts.GetGlyphRangesJapanese()); + DefaultFont = ImGui.GetIO().Fonts.AddFontFromFileTTF(fontPathJp, 17.0f, null, ImGui.GetIO().Fonts.GetGlyphRangesJapanese()); var fontPathGame = Path.Combine(this.dalamud.StartInfo.WorkingDirectory, "UIRes", "gamesym.ttf"); - Log.Verbose(fontPathGame); - var rangeHandle = GCHandle.Alloc(new ushort[] + var gameRangeHandle = GCHandle.Alloc(new ushort[] { 0xE020, 0xE0DB, 0 }, GCHandleType.Pinned); + ImGui.GetIO().Fonts.AddFontFromFileTTF(fontPathGame, 17.0f, fontConfig, gameRangeHandle.AddrOfPinnedObject()); - ImGui.GetIO().Fonts.AddFontFromFileTTF(fontPathGame, 17.0f, fontConfig, rangeHandle.AddrOfPinnedObject()); + var fontPathIcon = Path.Combine(this.dalamud.StartInfo.WorkingDirectory, "UIRes", "FontAwesome5FreeSolid.otf"); - OnBuildFonts?.Invoke(); + var iconRangeHandle = GCHandle.Alloc(new ushort[] + { + 0xE000, + 0xF8FF, + 0 + }, GCHandleType.Pinned); + IconFont = ImGui.GetIO().Fonts.AddFontFromFileTTF(fontPathIcon, 17.0f, null, iconRangeHandle.AddrOfPinnedObject()); + + this.OnBuildFonts?.Invoke(); ImGui.GetIO().Fonts.Build(); fontConfig.Destroy(); - rangeHandle.Free(); + gameRangeHandle.Free(); + iconRangeHandle.Free(); } // This is intended to only be called as a handler attached to scene.OnNewRenderFrame diff --git a/Dalamud/Interface/UiBuilder.cs b/Dalamud/Interface/UiBuilder.cs index 9728d1270..fb61890f4 100644 --- a/Dalamud/Interface/UiBuilder.cs +++ b/Dalamud/Interface/UiBuilder.cs @@ -16,6 +16,15 @@ namespace Dalamud.Interface public class UiBuilder : IDisposable { private readonly string namespaceName; + /// + /// The default Dalamud font based on Noto Sans CJK Medium in 17pt - supporting all game languages and icons. + /// + public static ImFontPtr DefaultFont => InterfaceManager.DefaultFont; + /// + /// The default Dalamud icon font based on FontAwesome 5 Free solid in 20pt. + /// + public static ImFontPtr IconFont => InterfaceManager.IconFont; + /// /// The delegate that gets called when Dalamud is ready to draw your windows or overlays. /// When it is called, you can use static ImGui calls.