#ifndef PALETTE_HPP_
#define PALETTE_HPP_

#include <Utilities/Extern.hpp>

/**
 * @brief Defines the color palette for the menus.
 */
class Color
{
public:
    static glm::vec4 action;
    static glm::vec4 faded;
    static glm::vec4 warning;
    static glm::vec4 danger;
    static glm::vec4 shadow;
    static glm::vec4 solidShadow;
    static glm::vec4 focused;
    static glm::vec4 disabled;
    static glm::vec4 selection;
    static glm::vec4 secondarySelection;
    static glm::vec4 unavailableItem;
    static glm::vec4 availableItem;
    static glm::vec4 rechargeHighlight;
    static glm::vec4 inputHighlight;
    static glm::vec4 upgradeHighlight;
    static glm::vec4 reactorHighlight;
    static glm::vec4 negativeStat;
    static glm::vec4 positiveStat;
    static glm::vec4 fuelHighlight;
    static glm::vec4 fuelStat;
    static glm::vec4 progressBackground;
    static glm::vec4 progressBar;
    static glm::vec4 toolUsesLeftHigh;
    static glm::vec4 toolUsesLeftMedium;
    static glm::vec4 toolUsesLeftLow;
    static glm::vec4 batteryTipCharged;
    static glm::vec4 batteryTip;
    static glm::vec4 batteryCharge;
    static glm::vec4 batterySubglow;
    static glm::vec4 widgetBackground;
    static glm::vec4 tabBackground;
    static glm::vec4 innerBackground;
    static glm::vec4 textInput;
    static glm::vec4 temperature;
    static glm::vec4 frameBackground;
    static glm::vec4 error;
    static glm::vec4 success;
    static glm::vec4 sectionBackground;
    static glm::vec4 scrollPanelBackground;
    static glm::vec4 tableRowEven;
    static glm::vec4 tableRowOdd;
    static glm::vec4 popupBackground;
    static glm::vec4 hoverColor;
    static glm::vec4 toolPower;
    static glm::vec4 back;
    static glm::vec4 progressTodo;
    static glm::vec4 progressDone;
    static glm::vec4 navLink;
    static glm::vec4 itemEmphasis;
    static glm::vec4 itemCountEmphasis;
    static glm::vec4 menuEmphasis;
    static glm::vec4 actionEmphasis;
    static glm::vec4 reset;
    static glm::vec4 cmdEcho;
    static glm::vec4 help;
    static glm::vec4 mapChunkLoading;
    static glm::vec4 equipmentHighlight;
    static glm::vec4 gadgetBackground;
    static glm::vec4 oilHighlight;
    static glm::vec4 petrolHighlight;
    static glm::vec4 blockSelectionTintEnabled;
    static glm::vec4 blockSelectionTintDisabled;

    static glm::vec4 tint(glm::vec4 color);
    static glm::vec4 shade(glm::vec4 color);
};

#endif