// This file is part of Noggit3, licensed under GNU General Public License (version 3).

#pragma once

#include <QWidget>
#include <QtGui/QIcon>
#include <QtGui/QIconEngine>


namespace Noggit
{
  namespace Ui
  {
    struct FontAwesome
    {
      enum Icons
      {
        ad                               = 0xf641,
        addressbook                      = 0xf2b9,
        addresscard                      = 0xf2bb,
        adjust                           = 0xf042,
        airfreshener                     = 0xf5d0,
        aligncenter                      = 0xf037,
        alignjustify                     = 0xf039,
        alignleft                        = 0xf036,
        alignright                       = 0xf038,
        allergies                        = 0xf461,
        ambulance                        = 0xf0f9,
        americansignlanguageinterpreting = 0xf2a3,
        anchor                           = 0xf13d,
        angledoubledown                  = 0xf103,
        angledoubleleft                  = 0xf100,
        angledoubleright                 = 0xf101,
        angledoubleup                    = 0xf102,
        angledown                        = 0xf107,
        angleleft                        = 0xf104,
        angleright                       = 0xf105,
        angleup                          = 0xf106,
        angry                            = 0xf556,
        ankh                             = 0xf644,
        applealt                         = 0xf5d1,
        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,
        arrowup                          = 0xf062,
        arrowsalt                        = 0xf0b2,
        arrowsalth                       = 0xf337,
        arrowsaltv                       = 0xf338,
        assistivelisteningsystems        = 0xf2a2,
        asterisk                         = 0xf069,
        at                               = 0xf1fa,
        atlas                            = 0xf558,
        atom                             = 0xf5d2,
        audiodescription                 = 0xf29e,
        award                            = 0xf559,
        baby                             = 0xf77c,
        babycarriage                     = 0xf77d,
        backspace                        = 0xf55a,
        backward                         = 0xf04a,
        bacon                            = 0xf7e5,
        balancescale                     = 0xf24e,
        balancescaleleft                 = 0xf515,
        balancescaleright                = 0xf516,
        ban                              = 0xf05e,
        bandaid                          = 0xf462,
        barcode                          = 0xf02a,
        bars                             = 0xf0c9,
        baseballball                     = 0xf433,
        basketballball                   = 0xf434,
        bath                             = 0xf2cd,
        batteryempty                     = 0xf244,
        batteryfull                      = 0xf240,
        batteryhalf                      = 0xf242,
        batteryquarter                   = 0xf243,
        batterythreequarters             = 0xf241,
        bed                              = 0xf236,
        beer                             = 0xf0fc,
        bell                             = 0xf0f3,
        bellslash                        = 0xf1f6,
        beziercurve                      = 0xf55b,
        bible                            = 0xf647,
        bicycle                          = 0xf206,
        biking                           = 0xf84a,
        binoculars                       = 0xf1e5,
        biohazard                        = 0xf780,
        birthdaycake                     = 0xf1fd,
        blender                          = 0xf517,
        blenderphone                     = 0xf6b6,
        blind                            = 0xf29d,
        blog                             = 0xf781,
        bold                             = 0xf032,
        bolt                             = 0xf0e7,
        bomb                             = 0xf1e2,
        bone                             = 0xf5d7,
        bong                             = 0xf55c,
        book                             = 0xf02d,
        bookdead                         = 0xf6b7,
        bookmedical                      = 0xf7e6,
        bookopen                         = 0xf518,
        bookreader                       = 0xf5da,
        bookmark                         = 0xf02e,
        borderall                        = 0xf84c,
        bordernone                       = 0xf850,
        borderstyle                      = 0xf853,
        bowlingball                      = 0xf436,
        box                              = 0xf466,
        boxopen                          = 0xf49e,
        boxes                            = 0xf468,
        braille                          = 0xf2a1,
        brain                            = 0xf5dc,
        breadslice                       = 0xf7ec,
        briefcase                        = 0xf0b1,
        briefcasemedical                 = 0xf469,
        broadcasttower                   = 0xf519,
        broom                            = 0xf51a,
        brush                            = 0xf55d,
        bug                              = 0xf188,
        building                         = 0xf1ad,
        bullhorn                         = 0xf0a1,
        bullseye                         = 0xf140,
        burn                             = 0xf46a,
        bus                              = 0xf207,
        busalt                           = 0xf55e,
        businesstime                     = 0xf64a,
        calculator                       = 0xf1ec,
        calendar                         = 0xf133,
        calendaralt                      = 0xf073,
        calendarcheck                    = 0xf274,
        calendarday                      = 0xf783,
        calendarminus                    = 0xf272,
        calendarplus                     = 0xf271,
        calendartimes                    = 0xf273,
        calendarweek                     = 0xf784,
        camera                           = 0xf030,
        cameraretro                      = 0xf083,
        campground                       = 0xf6bb,
        candycane                        = 0xf786,
        cannabis                         = 0xf55f,
        capsules                         = 0xf46b,
        car                              = 0xf1b9,
        caralt                           = 0xf5de,
        carbattery                       = 0xf5df,
        carcrash                         = 0xf5e1,
        carside                          = 0xf5e4,
        caretdown                        = 0xf0d7,
        caretleft                        = 0xf0d9,
        caretright                       = 0xf0da,
        caretsquaredown                  = 0xf150,
        caretsquareleft                  = 0xf191,
        caretsquareright                 = 0xf152,
        caretsquareup                    = 0xf151,
        caretup                          = 0xf0d8,
        carrot                           = 0xf787,
        cartarrowdown                    = 0xf218,
        cartplus                         = 0xf217,
        cashregister                     = 0xf788,
        cat                              = 0xf6be,
        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,
        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,
        cloudshowersheavy                = 0xf740,
        cloudsun                         = 0xf6c4,
        cloudsunrain                     = 0xf743,
        clouduploadalt                   = 0xf382,
        cocktail                         = 0xf561,
        code                             = 0xf121,
        codebranch                       = 0xf126,
        coffee                           = 0xf0f4,
        cog                              = 0xf013,
        cogs                             = 0xf085,
        coins                            = 0xf51e,
        columns                          = 0xf0db,
        comment                          = 0xf075,
        commentalt                       = 0xf27a,
        commentdollar                    = 0xf651,
        commentdots                      = 0xf4ad,
        commentmedical                   = 0xf7f5,
        commentslash                     = 0xf4b3,
        comments                         = 0xf086,
        commentsdollar                   = 0xf653,
        compactdisc                      = 0xf51f,
        compass                          = 0xf14e,
        compress                         = 0xf066,
        compressarrowsalt                = 0xf78c,
        conciergebell                    = 0xf562,
        cookie                           = 0xf563,
        cookiebite                       = 0xf564,
        copy                             = 0xf0c5,
        copyright                        = 0xf1f9,
        couch                            = 0xf4b8,
        creditcard                       = 0xf09d,
        crop                             = 0xf125,
        cropalt                          = 0xf565,
        cross                            = 0xf654,
        crosshairs                       = 0xf05b,
        crow                             = 0xf520,
        crown                            = 0xf521,
        crutch                           = 0xf7f7,
        cube                             = 0xf1b2,
        cubes                            = 0xf1b3,
        cut                              = 0xf0c4,
        database                         = 0xf1c0,
        deaf                             = 0xf2a4,
        democrat                         = 0xf747,
        desktop                          = 0xf108,
        dharmachakra                     = 0xf655,
        diagnoses                        = 0xf470,
        dice                             = 0xf522,
        diced20                          = 0xf6cf,
        diced6                           = 0xf6d1,
        dicefive                         = 0xf523,
        dicefour                         = 0xf524,
        diceone                          = 0xf525,
        dicesix                          = 0xf526,
        dicethree                        = 0xf527,
        dicetwo                          = 0xf528,
        digitaltachograph                = 0xf566,
        directions                       = 0xf5eb,
        divide                           = 0xf529,
        dizzy                            = 0xf567,
        dna                              = 0xf471,
        dog                              = 0xf6d3,
        dollarsign                       = 0xf155,
        dolly                            = 0xf472,
        dollyflatbed                     = 0xf474,
        donate                           = 0xf4b9,
        doorclosed                       = 0xf52a,
        dooropen                         = 0xf52b,
        dotcircle                        = 0xf192,
        dove                             = 0xf4ba,
        download                         = 0xf019,
        draftingcompass                  = 0xf568,
        dragon                           = 0xf6d5,
        drawpolygon                      = 0xf5ee,
        drum                             = 0xf569,
        drumsteelpan                     = 0xf56a,
        drumstickbite                    = 0xf6d7,
        dumbbell                         = 0xf44b,
        dumpster                         = 0xf793,
        dumpsterfire                     = 0xf794,
        dungeon                          = 0xf6d9,
        edit                             = 0xf044,
        egg                              = 0xf7fb,
        eject                            = 0xf052,
        ellipsish                        = 0xf141,
        ellipsisv                        = 0xf142,
        envelope                         = 0xf0e0,
        envelopeopen                     = 0xf2b6,
        envelopeopentext                 = 0xf658,
        envelopesquare                   = 0xf199,
        equals                           = 0xf52c,
        eraser                           = 0xf12d,
        ethernet                         = 0xf796,
        eurosign                         = 0xf153,
        exchangealt                      = 0xf362,
        exclamation                      = 0xf12a,
        exclamationcircle                = 0xf06a,
        exclamationtriangle              = 0xf071,
        expand                           = 0xf065,
        expandarrowsalt                  = 0xf31e,
        externallinkalt                  = 0xf35d,
        externallinksquarealt            = 0xf360,
        eye                              = 0xf06e,
        eyedropper                       = 0xf1fb,
        eyeslash                         = 0xf070,
        fan                              = 0xf863,
        fastbackward                     = 0xf049,
        fastforward                      = 0xf050,
        fax                              = 0xf1ac,
        feather                          = 0xf52d,
        featheralt                       = 0xf56b,
        female                           = 0xf182,
        fighterjet                       = 0xf0fb,
        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,
        firstaid                         = 0xf479,
        fish                             = 0xf578,
        fistraised                       = 0xf6de,
        flag                             = 0xf024,
        flagcheckered                    = 0xf11e,
        flagusa                          = 0xf74d,
        flask                            = 0xf0c3,
        flushed                          = 0xf579,
        folder                           = 0xf07b,
        folderminus                      = 0xf65d,
        folderopen                       = 0xf07c,
        folderplus                       = 0xf65e,
        font                             = 0xf031,
        footballball                     = 0xf44e,
        forward                          = 0xf04e,
        frog                             = 0xf52e,
        frown                            = 0xf119,
        frownopen                        = 0xf57a,
        funneldollar                     = 0xf662,
        futbol                           = 0xf1e3,
        gamepad                          = 0xf11b,
        gaspump                          = 0xf52f,
        gavel                            = 0xf0e3,
        gem                              = 0xf3a5,
        genderless                       = 0xf22d,
        ghost                            = 0xf6e2,
        gift                             = 0xf06b,
        gifts                            = 0xf79c,
        glasscheers                      = 0xf79f,
        glassmartini                     = 0xf000,
        glassmartinialt                  = 0xf57b,
        glasswhiskey                     = 0xf7a0,
        glasses                          = 0xf530,
        globe                            = 0xf0ac,
        globeafrica                      = 0xf57c,
        globeamericas                    = 0xf57d,
        globeasia                        = 0xf57e,
        globeeurope                      = 0xf7a2,
        golfball                         = 0xf450,
        gopuram                          = 0xf664,
        graduationcap                    = 0xf19d,
        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,
        griphorizontal                   = 0xf58d,
        griplines                        = 0xf7a4,
        griplinesvertical                = 0xf7a5,
        gripvertical                     = 0xf58e,
        guitar                           = 0xf7a6,
        hsquare                          = 0xf0fd,
        hamburger                        = 0xf805,
        hammer                           = 0xf6e3,
        hamsa                            = 0xf665,
        handholding                      = 0xf4bd,
        handholdingheart                 = 0xf4be,
        handholdingusd                   = 0xf4c0,
        handlizard                       = 0xf258,
        handmiddlefinger                 = 0xf806,
        handpaper                        = 0xf256,
        handpeace                        = 0xf25b,
        handpointdown                    = 0xf0a7,
        handpointleft                    = 0xf0a5,
        handpointright                   = 0xf0a4,
        handpointup                      = 0xf0a6,
        handpointer                      = 0xf25a,
        handrock                         = 0xf255,
        handscissors                     = 0xf257,
        handspock                        = 0xf259,
        hands                            = 0xf4c2,
        handshelping                     = 0xf4c4,
        handshake                        = 0xf2b5,
        hanukiah                         = 0xf6e6,
        hardhat                          = 0xf807,
        hashtag                          = 0xf292,
        hatwizard                        = 0xf6e8,
        haykal                           = 0xf666,
        hdd                              = 0xf0a0,
        heading                          = 0xf1dc,
        headphones                       = 0xf025,
        headphonesalt                    = 0xf58f,
        headset                          = 0xf590,
        heart                            = 0xf004,
        heartbroken                      = 0xf7a9,
        heartbeat                        = 0xf21e,
        helicopter                       = 0xf533,
        highlighter                      = 0xf591,
        hiking                           = 0xf6ec,
        hippo                            = 0xf6ed,
        history                          = 0xf1da,
        hockeypuck                       = 0xf453,
        hollyberry                       = 0xf7aa,
        home                             = 0xf015,
        horse                            = 0xf6f0,
        horsehead                        = 0xf7ab,
        hospital                         = 0xf0f8,
        hospitalalt                      = 0xf47d,
        hospitalsymbol                   = 0xf47e,
        hottub                           = 0xf593,
        hotdog                           = 0xf80f,
        hotel                            = 0xf594,
        hourglass                        = 0xf254,
        hourglassend                     = 0xf253,
        hourglasshalf                    = 0xf252,
        hourglassstart                   = 0xf251,
        housedamage                      = 0xf6f1,
        hryvnia                          = 0xf6f2,
        icursor                          = 0xf246,
        icicles                          = 0xf7ad,
        icecream                         = 0xf810,
        icons_                           = 0xf86d,
        idbadge                          = 0xf2c1,
          idcard                         = 0xf2c2,
          idcardalt                      = 0xf47f,
          igloo                          = 0xf7ae,
          image                          = 0xf03e,
          images                         = 0xf302,
          inbox                          = 0xf01c,
          indent                         = 0xf03c,
          industry                       = 0xf275,
          infinity                       = 0xf534,
          info                           = 0xf129,
          infocircle                     = 0xf05a,
          italic                         = 0xf033,
          jedi                           = 0xf669,
          joint                          = 0xf595,
          journalwhills                  = 0xf66a,
          kaaba                          = 0xf66b,
          key                            = 0xf084,
          keyboard                       = 0xf11c,
          khanda                         = 0xf66d,
          kiss                           = 0xf596,
          kissbeam                       = 0xf597,
          kisswinkheart                  = 0xf598,
          kiwibird                       = 0xf535,
          landmark                       = 0xf66f,
          language                       = 0xf1ab,
          laptop                         = 0xf109,
          laptopcode                     = 0xf5fc,
          laptopmedical                  = 0xf812,
          laugh                          = 0xf599,
          laughbeam                      = 0xf59a,
          laughsquint                    = 0xf59b,
          laughwink                      = 0xf59c,
          layergroup                     = 0xf5fd,
          leaf                           = 0xf06c,
          lemon                          = 0xf094,
          lessthan                       = 0xf536,
          lessthanequal                  = 0xf537,
          leveldownalt                   = 0xf3be,
          levelupalt                     = 0xf3bf,
          lifering                       = 0xf1cd,
          lightbulb                      = 0xf0eb,
          link                           = 0xf0c1,
          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,
          magic                          = 0xf0d0,
          magnet                         = 0xf076,
          mailbulk                       = 0xf674,
          male                           = 0xf183,
          map                            = 0xf279,
          mapmarked                      = 0xf59f,
          mapmarkedalt                   = 0xf5a0,
          mapmarker                      = 0xf041,
          mapmarkeralt                   = 0xf3c5,
          mappin                         = 0xf276,
          mapsigns                       = 0xf277,
          marker                         = 0xf5a1,
          mars                           = 0xf222,
          marsdouble                     = 0xf227,
          marsstroke                     = 0xf229,
          marsstrokeh                    = 0xf22b,
          marsstrokev                    = 0xf22a,
          mask                           = 0xf6fa,
          medal                          = 0xf5a2,
          medkit                         = 0xf0fa,
          meh                            = 0xf11a,
          mehblank                       = 0xf5a4,
          mehrollingeyes                 = 0xf5a5,
          memory                         = 0xf538,
          menorah                        = 0xf676,
          mercury                        = 0xf223,
          meteor                         = 0xf753,
          microchip                      = 0xf2db,
          microphone                     = 0xf130,
          microphonealt                  = 0xf3c9,
          microphonealtslash             = 0xf539,
          microphoneslash                = 0xf131,
          microscope                     = 0xf610,
          minus                          = 0xf068,
          minuscircle                    = 0xf056,
          minussquare                    = 0xf146,
          mitten                         = 0xf7b5,
          mobile                         = 0xf10b,
          mobilealt                      = 0xf3cd,
          moneybill                      = 0xf0d6,
          moneybillalt                   = 0xf3d1,
          moneybillwave                  = 0xf53a,
          moneybillwavealt               = 0xf53b,
          moneycheck                     = 0xf53c,
          moneycheckalt                  = 0xf53d,
          monument                       = 0xf5a6,
          moon                           = 0xf186,
          mortarpestle                   = 0xf5a7,
          mosque                         = 0xf678,
          motorcycle                     = 0xf21c,
          mountain                       = 0xf6fc,
          mousepointer                   = 0xf245,
          mughot                         = 0xf7b6,
          music                          = 0xf001,
          networkwired                   = 0xf6ff,
          neuter                         = 0xf22c,
          newspaper                      = 0xf1ea,
          notequal                       = 0xf53e,
          notesmedical                   = 0xf481,
          objectgroup                    = 0xf247,
          objectungroup                  = 0xf248,
          oilcan                         = 0xf613,
          om                             = 0xf679,
          otter                          = 0xf700,
          outdent                        = 0xf03b,
          pager                          = 0xf815,
          paintbrush                     = 0xf1fc,
          paintroller                    = 0xf5aa,
          palette                        = 0xf53f,
          pallet                         = 0xf482,
          paperplane                     = 0xf1d8,
          paperclip                      = 0xf0c6,
          parachutebox                   = 0xf4cd,
          paragraph                      = 0xf1dd,
          parking                        = 0xf540,
          passport                       = 0xf5ab,
          pastafarianism                 = 0xf67b,
          paste                          = 0xf0ea,
          pause                          = 0xf04c,
          pausecircle                    = 0xf28b,
          paw                            = 0xf1b0,
          peace                          = 0xf67c,
          pen                            = 0xf304,
          penalt                         = 0xf305,
          penfancy                       = 0xf5ac,
          pennib                         = 0xf5ad,
          pensquare                      = 0xf14b,
          pencilalt                      = 0xf303,
          pencilruler                    = 0xf5ae,
          peoplecarry                    = 0xf4ce,
          pepperhot                      = 0xf816,
          percent                        = 0xf295,
          percentage                     = 0xf541,
          personbooth                    = 0xf756,
          phone                          = 0xf095,
          phonealt                       = 0xf879,
          phoneslash                     = 0xf3dd,
          phonesquare                    = 0xf098,
          phonesquarealt                 = 0xf87b,
          phonevolume                    = 0xf2a0,
          photovideo                     = 0xf87c,
          piggybank                      = 0xf4d3,
          pills                          = 0xf484,
          pizzaslice                     = 0xf818,
          placeofworship                 = 0xf67f,
          plane                          = 0xf072,
          planearrival                   = 0xf5af,
          planedeparture                 = 0xf5b0,
          play                           = 0xf04b,
          playcircle                     = 0xf144,
          plug                           = 0xf1e6,
          plus                           = 0xf067,
          pluscircle                     = 0xf055,
          plussquare                     = 0xf0fe,
          podcast                        = 0xf2ce,
          poll                           = 0xf681,
          pollh                          = 0xf682,
          poo                            = 0xf2fe,
          poostorm                       = 0xf75a,
          poop                           = 0xf619,
          portrait                       = 0xf3e0,
          poundsign                      = 0xf154,
          poweroff                       = 0xf011,
          pray                           = 0xf683,
          prayinghands                   = 0xf684,
          prescription                   = 0xf5b1,
          prescriptionbottle             = 0xf485,
          prescriptionbottlealt          = 0xf486,
          print                          = 0xf02f,
          procedures                     = 0xf487,
          projectdiagram                 = 0xf542,
          puzzlepiece                    = 0xf12e,
          qrcode                         = 0xf029,
          question                       = 0xf128,
          questioncircle                 = 0xf059,
          quidditch                      = 0xf458,
          quoteleft                      = 0xf10d,
          quoteright                     = 0xf10e,
          quran                          = 0xf687,
          radiation                      = 0xf7b9,
          radiationalt                   = 0xf7ba,
          rainbow                        = 0xf75b,
          random                         = 0xf074,
          receipt                        = 0xf543,
          recycle                        = 0xf1b8,
          redo                           = 0xf01e,
          redoalt                        = 0xf2f9,
          registered                     = 0xf25d,
          removeformat                   = 0xf87d,
          reply                          = 0xf3e5,
          replyall                       = 0xf122,
          republican                     = 0xf75e,
          restroom                       = 0xf7bd,
          retweet                        = 0xf079,
          ribbon                         = 0xf4d6,
          ring                           = 0xf70b,
          road                           = 0xf018,
          robot                          = 0xf544,
          rocket                         = 0xf135,
          route                          = 0xf4d7,
          rss                            = 0xf09e,
          rsssquare                      = 0xf143,
          rublesign                      = 0xf158,
          ruler                          = 0xf545,
          rulercombined                  = 0xf546,
          rulerhorizontal                = 0xf547,
          rulervertical                  = 0xf548,
          running                        = 0xf70c,
          rupeesign                      = 0xf156,
          sadcry                         = 0xf5b3,
          sadtear                        = 0xf5b4,
          satellite                      = 0xf7bf,
          satellitedish                  = 0xf7c0,
          save                           = 0xf0c7,
          school                         = 0xf549,
          screwdriver                    = 0xf54a,
          scroll                         = 0xf70e,
          sdcard                         = 0xf7c2,
          search                         = 0xf002,
          searchdollar                   = 0xf688,
          searchlocation                 = 0xf689,
          searchminus                    = 0xf010,
          searchplus                     = 0xf00e,
          seedling                       = 0xf4d8,
          server                         = 0xf233,
          shapes                         = 0xf61f,
          share                          = 0xf064,
          sharealt                       = 0xf1e0,
          sharealtsquare                 = 0xf1e1,
          sharesquare                    = 0xf14d,
          shekelsign                     = 0xf20b,
          shieldalt                      = 0xf3ed,
          ship                           = 0xf21a,
          shippingfast                   = 0xf48b,
          shoeprints                     = 0xf54b,
          shoppingbag                    = 0xf290,
          shoppingbasket                 = 0xf291,
          shoppingcart                   = 0xf07a,
          shower                         = 0xf2cc,
          shuttlevan                     = 0xf5b6,
          sign                           = 0xf4d9,
          signinalt                      = 0xf2f6,
          signlanguage                   = 0xf2a7,
          signoutalt                     = 0xf2f5,
          signal                         = 0xf012,
          signature                      = 0xf5b7,
          simcard                        = 0xf7c4,
          sitemap                        = 0xf0e8,
          skating                        = 0xf7c5,
          skiing                         = 0xf7c9,
          skiingnordic                   = 0xf7ca,
          skull                          = 0xf54c,
          skullcrossbones                = 0xf714,
          slash                          = 0xf715,
          sleigh                         = 0xf7cc,
          slidersh                       = 0xf1de,
          smile                          = 0xf118,
          smilebeam                      = 0xf5b8,
          smilewink                      = 0xf4da,
          smog                           = 0xf75f,
          smoking                        = 0xf48d,
          smokingban                     = 0xf54d,
          sms                            = 0xf7cd,
          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,
          spa                            = 0xf5bb,
          spaceshuttle                   = 0xf197,
          spellcheck                     = 0xf891,
          spider                         = 0xf717,
          spinner                        = 0xf110,
          splotch                        = 0xf5bc,
          spraycan                       = 0xf5bd,
          square                         = 0xf0c8,
          squarefull                     = 0xf45c,
          squarerootalt                  = 0xf698,
          stamp                          = 0xf5bf,
          star                           = 0xf005,
          starandcrescent                = 0xf699,
          starhalf                       = 0xf089,
          starhalfalt                    = 0xf5c0,
          starofdavid                    = 0xf69a,
          staroflife                     = 0xf621,
          stepbackward                   = 0xf048,
          stepforward                    = 0xf051,
          stethoscope                    = 0xf0f1,
          stickynote                     = 0xf249,
          stop                           = 0xf04d,
          stopcircle                     = 0xf28d,
          stopwatch                      = 0xf2f2,
          store                          = 0xf54e,
          storealt                       = 0xf54f,
          stream                         = 0xf550,
          streetview                     = 0xf21d,
          strikethrough                  = 0xf0cc,
          stroopwafel                    = 0xf551,
          subscript                      = 0xf12c,
          subway                         = 0xf239,
          suitcase                       = 0xf0f2,
          suitcaserolling                = 0xf5c1,
          sun                            = 0xf185,
          superscript                    = 0xf12b,
          surprise                       = 0xf5c2,
          swatchbook                     = 0xf5c3,
          swimmer                        = 0xf5c4,
          swimmingpool                   = 0xf5c5,
          synagogue                      = 0xf69b,
          sync                           = 0xf021,
          syncalt                        = 0xf2f1,
          syringe                        = 0xf48e,
          table                          = 0xf0ce,
          tabletennis                    = 0xf45d,
          tablet                         = 0xf10a,
          tabletalt                      = 0xf3fa,
          tablets                        = 0xf490,
          tachometeralt                  = 0xf3fd,
          tag                            = 0xf02b,
          tags                           = 0xf02c,
          tape                           = 0xf4db,
          tasks                          = 0xf0ae,
          taxi                           = 0xf1ba,
          teeth                          = 0xf62e,
          teethopen                      = 0xf62f,
          temperaturehigh                = 0xf769,
          temperaturelow                 = 0xf76b,
          tenge                          = 0xf7d7,
          terminal                       = 0xf120,
          textheight                     = 0xf034,
          textwidth                      = 0xf035,
          th                             = 0xf00a,
          thlarge                        = 0xf009,
          thlist                         = 0xf00b,
          theatermasks                   = 0xf630,
          thermometer                    = 0xf491,
          thermometerempty               = 0xf2cb,
          thermometerfull                = 0xf2c7,
          thermometerhalf                = 0xf2c9,
          thermometerquarter             = 0xf2ca,
          thermometerthreequarters       = 0xf2c8,
          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,
          trademark                      = 0xf25c,
          trafficlight                   = 0xf637,
          train                          = 0xf238,
          tram                           = 0xf7da,
          transgender                    = 0xf224,
          transgenderalt                 = 0xf225,
          trash                          = 0xf1f8,
          trashalt                       = 0xf2ed,
          trashrestore                   = 0xf829,
          trashrestorealt                = 0xf82a,
          tree                           = 0xf1bb,
          trophy                         = 0xf091,
          truck                          = 0xf0d1,
          truckloading                   = 0xf4de,
          truckmonster                   = 0xf63b,
          truckmoving                    = 0xf4df,
          truckpickup                    = 0xf63c,
          tshirt                         = 0xf553,
          tty                            = 0xf1e4,
          tv                             = 0xf26c,
          umbrella                       = 0xf0e9,
          umbrellabeach                  = 0xf5ca,
          underline                      = 0xf0cd,
          undo                           = 0xf0e2,
          undoalt                        = 0xf2ea,
          universalaccess                = 0xf29a,
          university                     = 0xf19c,
          unlink                         = 0xf127,
          unlock                         = 0xf09c,
          unlockalt                      = 0xf13e,
          upload                         = 0xf093,
          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,
          usersecret                     = 0xf21b,
          usershield                     = 0xf505,
          userslash                      = 0xf506,
          usertag                        = 0xf507,
          usertie                        = 0xf508,
          usertimes                      = 0xf235,
          users                          = 0xf0c0,
          userscog                       = 0xf509,
          utensilspoon                   = 0xf2e5,
          utensils                       = 0xf2e7,
          vectorsquare                   = 0xf5cb,
          venus                          = 0xf221,
          venusdouble                    = 0xf226,
          venusmars                      = 0xf228,
          vial                           = 0xf492,
          vials                          = 0xf493,
          video                          = 0xf03d,
          videoslash                     = 0xf4e2,
          vihara                         = 0xf6a7,
          voicemail                      = 0xf897,
          volleyballball                 = 0xf45f,
          volumedown                     = 0xf027,
          volumemute                     = 0xf6a9,
          volumeoff                      = 0xf026,
          volumeup                       = 0xf028,
          voteyea                        = 0xf772,
          vrcardboard                    = 0xf729,
          walking                        = 0xf554,
          wallet                         = 0xf555,
          warehouse                      = 0xf494,
          water                          = 0xf773,
          wavesquare                     = 0xf83e,
          weight                         = 0xf496,
          weighthanging                  = 0xf5cd,
          wheelchair                     = 0xf193,
          wifi                           = 0xf1eb,
          wind                           = 0xf72e,
          windowclose                    = 0xf410,
          windowmaximize                 = 0xf2d0,
          windowminimize                 = 0xf2d1,
          windowrestore                  = 0xf2d2,
          winebottle                     = 0xf72f,
          wineglass                      = 0xf4e3,
          wineglassalt                   = 0xf5ce,
          wonsign                        = 0xf159,
          wrench                         = 0xf0ad,
          xray                           = 0xf497,
          yensign                        = 0xf157,
          yinyang                        = 0xf6ad
      };
    };

    class FontAwesomeButtonStyle : public QWidget
    {
    public:
        FontAwesomeButtonStyle(QWidget* parent = nullptr) : QWidget(parent) { setAccessibleName("FontNoggitButtonStyle");};
    };

    class FontAwesomeIcon : public QIcon
    {
    public:
      FontAwesomeIcon (FontAwesome::Icons const&);
    };

    class FontAwesomeIconEngine : public QIconEngine
    {
    public:
      FontAwesomeIconEngine(const QString& text);

      [[nodiscard]]
      FontAwesomeIconEngine* clone() const override;

      void paint(QPainter* painter, QRect const& rect, QIcon::Mode mode, QIcon::State state) override;

      QPixmap pixmap(QSize const& size, QIcon::Mode mode, QIcon::State state) override;


    private:
      const QString _text;

      static std::map<int, QFont> _fonts;

    };

  }
}
