/*
 *  MCColorPalettes.h
 *
 *  Created by Daniel Cascais on 3/19/11.
 *  Copyright 2011 SAP SE. All rights reserved.
 *
 */

#pragma once

//------------------------------------------------------------------------------
//
// Enums
//
//------------------------------------------------------------------------------

typedef enum
{
    MC_TREND_COLOR_CODING_NEUTRAL,
    MC_TREND_COLOR_CODING_UP_IS_GOOD,
    MC_TREND_COLOR_CODING_DOWN_IS_GOOD
} MCTrendColorCoding;

typedef enum
{
    MC_SKIN_BLACK,
    MC_SKIN_WHITE
} MCSkinType;

//------------------------------------------------------------------------------
//
// Structs
//
//------------------------------------------------------------------------------

//
// Series palette. Colors that affect the series.
//
struct MCSeriesPalette
{
    unsigned int color;                  /// lineColor
    unsigned int fillColor;              /// fillColor
    unsigned int colorAdjunct;           /// labelColor
    unsigned int positiveColor;          /// positiveMinColor
    unsigned int positiveColorAdjunct;   /// positiveMaxColor
    unsigned int negativeColor;          /// negativeMinColor
    unsigned int negativeColorAdjunct;   /// negativeMaxColor
    unsigned int neutralColor;
    unsigned int neutralColorAdjunct;
};
typedef struct MCSeriesPalette MCSeriesPalette;

//
// Chart palette. Colors that affect the chart.
//
struct MCPalette
{
    unsigned int trendColorGood;
    unsigned int trendColorBad;
    unsigned int trendColorNeutral;
    unsigned int seriesPaletteCount;
    MCSeriesPalette* seriesPalettes;
};
typedef struct MCPalette MCPalette;

//------------------------------------------------------------------------------
//
// Default series palettes
//
//------------------------------------------------------------------------------

static const MCSeriesPalette MC_COLOR_PALETTE_COMPARE_BAR[] =
{
    {0x404040, 0x404040, 0x404040, 0x009614, 0x17db2b, 0xFF0F0F, 0xd70202, 0xFF5207, 0x454545}
};

static const MCSeriesPalette MC_COLOR_PALETTE_DATA_BAR[] =
{
    {0x404040, 0x404040, 0x404040, 0xFF5207, 0xFF5207, 0x98020C, 0x98020C, 0xDCDCDC, 0x323232}
};

static const MCSeriesPalette MC_COLOR_PALETTE_NEUTRAL[] =
{
    {0x70728D, 0x70728D, 0x70728D, 0x70728D, 0x49495E, 0x70728D, 0x49495E, 0xDCDCDC, 0x323232},
    {0xD9D6A0, 0xD9D6A0, 0xD9D6A0, 0xD9D6A0, 0x7C7959, 0xD9D6A0, 0x7C7959, 0xDCDCDC, 0x323232},
    {0xFACE00, 0xFACE00, 0xFACE00, 0xFACE00, 0x7A6400, 0xFACE00, 0x7A6400, 0xDCDCDC, 0x323232},
    {0xF15200, 0xF15200, 0xF15200, 0xF15200, 0x632100, 0xF15200, 0x632100, 0xDCDCDC, 0x323232},
    {0x93CC38, 0x93CC38, 0x93CC38, 0x93CC38, 0x236300, 0x93CC38, 0x236300, 0xDCDCDC, 0x323232},
    {0x6FAEC0, 0x6FAEC0, 0x6FAEC0, 0x6FAEC0, 0x136976, 0x6FAEC0, 0x136976, 0xDCDCDC, 0x323232},
    {0x847195, 0x847195, 0x847195, 0x847195, 0x4B3763, 0x847195, 0x4B3763, 0xDCDCDC, 0x323232},
    {0x6A6A6A, 0x6A6A6A, 0x6A6A6A, 0x6A6A6A, 0x353535, 0x6A6A6A, 0x353535, 0xDCDCDC, 0x323232},
    {0x77613C, 0x77613C, 0x77613C, 0x77613C, 0x503C1D, 0x77613C, 0x503C1D, 0xDCDCDC, 0x323232},
    {0xC78526, 0xC78526, 0xC78526, 0xC78526, 0x794A06, 0xC78526, 0x794A06, 0xDCDCDC, 0x323232}
};

static const MCSeriesPalette MC_COLOR_PALETTE_BERRY_BRIGHT[] =
{
    {0x006BE3, 0x006BE3, 0x006BE3, 0x006BE3, 0x003493, 0x006BE3, 0x003493, 0xDCDCDC, 0x323232},
    {0xE000FC, 0xE000FC, 0xE000FC, 0xE000FC, 0x45004C, 0xE000FC, 0x45004C, 0xDCDCDC, 0x323232},
    {0xFFE000, 0xFFE000, 0xFFE000, 0xFFE000, 0xFF0000, 0xFFE000, 0xFF0000, 0xDCDCDC, 0x323232},
    {0xACFD00, 0xACFD00, 0xACFD00, 0xACFD00, 0x2F4D00, 0xACFD00, 0x2F4D00, 0xDCDCDC, 0x323232},
    {0x36B6BB, 0x36B6BB, 0x36B6BB, 0x36B6BB, 0x1E1863, 0x36B6BB, 0x1E1863, 0xDCDCDC, 0x323232},
    {0xFFFA76, 0xFFFA76, 0xFFFA76, 0xFFFA76, 0xD9D100, 0xFFFA76, 0xD9D100, 0xDCDCDC, 0x323232},
    {0xFF3A5F, 0xFF3A5F, 0xFF3A5F, 0xFF3A5F, 0x6A050F, 0xFF3A5F, 0x6A050F, 0xDCDCDC, 0x323232},
    {0x5C22BE, 0x5C22BE, 0x5C22BE, 0x5C22BE, 0x251576, 0x5C22BE, 0x251576, 0xDCDCDC, 0x323232},
    {0x00BF48, 0x00BF48, 0x00BF48, 0x00BF48, 0x005E02, 0x00BF48, 0x005E02, 0xDCDCDC, 0x323232},
    {0xF7A34B, 0xF7A34B, 0xF7A34B, 0xF7A34B, 0x842F01, 0xF7A34B, 0x842F01, 0xDCDCDC, 0x323232}
};

static const MCSeriesPalette MC_COLOR_PALETTE_UNDERSTATED[] =
{
    {0x3159AB, 0x3159AB, 0x4A83D8, 0x3159AB, 0x182330, 0x3159AB, 0x182330, 0xDCDCDC, 0x323232},
    {0x72A04C, 0x72A04C, 0x72A04C, 0x72A04C, 0x2F3E23, 0x72A04C, 0x2F3E23, 0xDCDCDC, 0x323232},
    {0x79548F, 0x79548F, 0x79548F, 0x79548F, 0x2E2036, 0x79548F, 0x2E2036, 0xDCDCDC, 0x323232},
    {0xB70101, 0xB70101, 0xCC0000, 0xB70101, 0x2D0007, 0xB70101, 0x2D0007, 0xDCDCDC, 0x323232},
    {0xBBB636, 0xBBB636, 0xBBB636, 0xBBB636, 0x635B18, 0xBBB636, 0x635B18, 0xDCDCDC, 0x323232},
    {0x68AD90, 0x68AD90, 0x68AD90, 0x68AD90, 0x2F5047, 0x68AD90, 0x2F5047, 0xDCDCDC, 0x323232},
    {0x767676, 0x767676, 0x767676, 0x767676, 0x2A2A2A, 0x767676, 0x2A2A2A, 0xDCDCDC, 0x323232},
    {0x5D4C33, 0x5D4C33, 0x5D4C33, 0x5D4C33, 0x302917, 0x5D4C33, 0x302917, 0xDCDCDC, 0x323232},
    {0xB86C91, 0xB86C91, 0xB86C91, 0xB86C91, 0x4C203B, 0xB86C91, 0x4C203B, 0xDCDCDC, 0x323232},
    {0xBC6E21, 0xBC6E21, 0xBC6E21, 0xBC6E21, 0x613D04, 0xBC6E21, 0x613D04, 0xDCDCDC, 0x323232}
};

static const MCSeriesPalette MC_COLOR_PALETTE_ROAMBI[] =
{
    {0xFF9100, 0xFF9100, 0xFF9100, 0xFF9100, 0xC04100, 0xFF9100, 0xC04100, 0xDCDCDC, 0x323232},
    {0xFF0036, 0xFF0036, 0xFF0036, 0xFF0036, 0x880020, 0xFF0036, 0x880020, 0xDCDCDC, 0x323232},
    {0x00D435, 0x00D435, 0x00D435, 0x00D435, 0x004812, 0x00D435, 0x004812, 0xDCDCDC, 0x323232},
    {0x00B1D4, 0x00B1D4, 0x00B1D4, 0x00B1D4, 0x0068E6, 0x00B1D4, 0x0068E6, 0xDCDCDC, 0x323232},
    {0xDFD80F, 0xDFD80F, 0xDFD80F, 0xDFD80F, 0x857700, 0xDFD80F, 0x857700, 0xDCDCDC, 0x323232},
    {0x8B4AB5, 0x8B4AB5, 0x8B4AB5, 0x8B4AB5, 0x441B6E, 0x8B4AB5, 0x441B6E, 0xDCDCDC, 0x323232},
    {0xDE4574, 0xDE4574, 0xDE4574, 0xDE4574, 0x77184E, 0xDE4574, 0x77184E, 0xDCDCDC, 0x323232},
    {0x6BB80F, 0x6BB80F, 0x6BB80F, 0x6BB80F, 0x33500E, 0x6BB80F, 0x33500E, 0xDCDCDC, 0x323232},
    {0x273DC3, 0x273DC3, 0x273DC3, 0x273DC3, 0x00187F, 0x273DC3, 0x00187F, 0xDCDCDC, 0x323232},
    {0x676767, 0x676767, 0x676767, 0x676767, 0x313131, 0x676767, 0x313131, 0xDCDCDC, 0x323232}
};









//static const MCSeriesPalette MC_COLOR_PALETTE_COMPARE_BAR[] =
//{
//    {0x009700, 0x009714, 0xFF0000, 0xB40000, 0xFFFFFF, 0xFFFFFF, 0xDCDCDC, 0x323232, 0x323232}
//};
//
//static const MCSeriesPalette MC_COLOR_PALETTE_DATA_BAR[] =
//{
//    {0xFF9100, 0xC04100, 0xC04100, 0xFF9100, 0xFFFFFF, 0xFFFFFF, 0xDCDCDC, 0x323232, 0x323232}
//};
//
//static const MCSeriesPalette MC_COLOR_PALETTE_NEUTRAL[] =
//{  /*Solid      Neutral     Positive    Negative    Label       Neutral Grad 1  Neutral Grad 2  Pos Grad 1  Pos Grad 2  Neg Grad 1  Neg Grad 2*/
//    {0x70728D,  0x49495E,   0x49495E,   0x70728D,   0x70728D,   0x70728D,       , 0xDCDCDC, 0x323232,   0x323232},
//	{0xD9D6A0,  0x7C7959,   0x7C7959,   0xD9D6A0,   0xD9D6A0,   0xD9D6A0,       0xDCDCDC,       0x323232,   0x323232},
//	{0xFACE00,  0x7A6400,   0x7A6400,   0xFACE00,   0xFACE00,   0xFACE00,       0xDCDCDC,       0x323232,   0x323232},
//	{0xF15200,  0x632100,   0x632100,   0xF15200,   0xF15200,   0xF15200,       0xDCDCDC,       0x323232,   0x323232},
//	{0x93CC38,  0x236300,   0x236300,   0x93CC38,   0x93CC38,   0x93CC38,       0xDCDCDC,       0x323232,   0x323232},
//	{0x6FAEC0,  0x136976,   0x136976,   0x6FAEC0,   0x6FAEC0,   0x6FAEC0,       0xDCDCDC,       0x323232,   0x323232},
//	{0x847195,  0x4B3763,   0x4B3763,   0x847195,   0x847195,   0x847195,       0xDCDCDC,       0x323232,   0x323232},
//	{0x6A6A6A,  0x353535,   0x353535,   0x6A6A6A,   0x6A6A6A,   0x6A6A6A,       0xDCDCDC,       0x323232,   0x323232},
//	{0x77613C,  0x503C1D,   0x503C1D,   0x77613C,   0x77613C,   0x77613C,       0xDCDCDC,       0x323232,   0x323232},
//	{0xC78526,  0x794A06,   0x794A06,   0xC78526,   0xC78526,   0xC78526,       0xDCDCDC,       0x323232,   0x323232}
//};
//
//static const MCSeriesPalette MC_COLOR_PALETTE_BERRY_BRIGHT[] =
//{
//    {0x006BE3, 0x003493, 0x003493, 0x006BE3, 0x006BE3, 0x006BE3, 0xDCDCDC, 0x323232, 0x323232},
//	{0xE000FC, 0x45004C, 0x45004C, 0xE000FC, 0xE000FC, 0xE000FC, 0xDCDCDC, 0x323232, 0x323232},
//	{0xFFE000, 0xFF0000, 0xFF0000, 0xFFE000, 0xFFE000, 0xFFE000, 0xDCDCDC, 0x323232, 0x323232},
//	{0xACFD00, 0x2F4D00, 0x2F4D00, 0xACFD00, 0xACFD00, 0xACFD00, 0xDCDCDC, 0x323232, 0x323232},
//	{0x36B6BB, 0x1E1863, 0x1E1863, 0x36B6BB, 0x36B6BB, 0x36B6BB, 0xDCDCDC, 0x323232, 0x323232},
//	{0xFFFA76, 0xD9D100, 0xD9D100, 0xFFFA76, 0xFFFA76, 0xFFFA76, 0xDCDCDC, 0x323232, 0x323232},
//	{0xFF3A5F, 0x6A050F, 0x6A050F, 0xFF3A5F, 0xFF3A5F, 0xFF3A5F, 0xDCDCDC, 0x323232, 0x323232},
//	{0x5C22BE, 0x251576, 0x251576, 0x5C22BE, 0x5C22BE, 0x5C22BE, 0xDCDCDC, 0x323232, 0x323232},
//	{0x00BF48, 0x005E02, 0x005E02, 0x00BF48, 0x00BF48, 0x00BF48, 0xDCDCDC, 0x323232, 0x323232},
//	{0xF7A34B, 0x842F01, 0x842F01, 0xF7A34B, 0xF7A34B, 0xF7A34B, 0xDCDCDC, 0x323232, 0x323232}
//};
//
//static const MCSeriesPalette MC_COLOR_PALETTE_UNDERSTATED[] =
//{
//    {0x3159AB, 0x182330, 0x182330, 0x3159AB, 0x3159AB, 0x3159AB, 0xDCDCDC, 0x323232, 0x323232},
//	{0x72A04C, 0x2F3E23, 0x2F3E23, 0x72A04C, 0x72A04C, 0x72A04C, 0xDCDCDC, 0x323232, 0x323232},
//	{0x79548F, 0x2E2036, 0x2E2036, 0x79548F, 0x79548F, 0x79548F, 0xDCDCDC, 0x323232, 0x323232},
//	{0xB70101, 0x2D0007, 0x2D0007, 0xB70101, 0xB70101, 0xB70101, 0xDCDCDC, 0x323232, 0x323232},
//	{0xBBB636, 0x635B18, 0x635B18, 0xBBB636, 0xBBB636, 0xBBB636, 0xDCDCDC, 0x323232, 0x323232},
//	{0x68AD90, 0x2F5047, 0x2F5047, 0x68AD90, 0x68AD90, 0x68AD90, 0xDCDCDC, 0x323232, 0x323232},
//	{0x767676, 0x2A2A2A, 0x2A2A2A, 0x767676, 0x767676, 0x767676, 0xDCDCDC, 0x323232, 0x323232},
//	{0x5D4C33, 0x302917, 0x302917, 0x5D4C33, 0x5D4C33, 0x5D4C33, 0xDCDCDC, 0x323232, 0x323232},
//	{0xB86C91, 0x4C203B, 0x4C203B, 0xB86C91, 0xB86C91, 0xB86C91, 0xDCDCDC, 0x323232, 0x323232},
//	{0xBC6E21, 0x613D04, 0x613D04, 0xBC6E21, 0xBC6E21, 0xBC6E21, 0xDCDCDC, 0x323232, 0x323232}
//};
//
//static const MCSeriesPalette MC_COLOR_PALETTE_ROAMBI[] =
//{
//    {0xFF9100, 0xC04100, 0xC04100, 0xFF9100, 0xFF9100, 0xFF9100, 0xDCDCDC, 0x323232, 0x323232},
//	{0xFF0036, 0x880020, 0x880020, 0xFF0036, 0xFF0036, 0xFF0036, 0xDCDCDC, 0x323232, 0x323232},
//	{0x00D435, 0x004812, 0x004812, 0x00D435, 0x00D435, 0x00D435, 0xDCDCDC, 0x323232, 0x323232},
//	{0x00B1D4, 0x0068E6, 0x0068E6, 0x00B1D4, 0x00B1D4, 0x00B1D4, 0xDCDCDC, 0x323232, 0x323232},
//	{0xDFD80F, 0x857700, 0x857700, 0xDFD80F, 0xDFD80F, 0xDFD80F, 0xDCDCDC, 0x323232, 0x323232},
//	{0x8B4AB5, 0x441B6E, 0x441B6E, 0x8B4AB5, 0x8B4AB5, 0x8B4AB5, 0xDCDCDC, 0x323232, 0x323232},
//	{0xDE4574, 0x77184E, 0x77184E, 0xDE4574, 0xDE4574, 0xDE4574, 0xDCDCDC, 0x323232, 0x323232},
//	{0x6BB80F, 0x33500E, 0x33500E, 0x6BB80F, 0x6BB80F, 0x6BB80F, 0xDCDCDC, 0x323232, 0x323232},
//	{0x273DC3, 0x00187F, 0x00187F, 0x273DC3, 0x273DC3, 0x273DC3, 0xDCDCDC, 0x323232, 0x323232},
//	{0x676767, 0x313131, 0x313131, 0x676767, 0x676767, 0x676767, 0xDCDCDC, 0x323232, 0x323232}
//};

//------------------------------------------------------------------------------
//
// Default chart palettes
//
//------------------------------------------------------------------------------

//static const MCPalette MC_DEFAULT_CHART_PALETTE =
//{
//    0x00FF00, 0xFF0000, 0x0000FF, 10, MC_COLOR_PALETTE_ROAMBI
//};

