kicad/include/colors.h

114 lines
2.4 KiB
C
Raw Normal View History

2009-11-23 20:18:47 +00:00
/************/
/* colors.h */
/************/
2007-05-06 16:03:28 +00:00
#ifndef _COLORS_H
#define _COLORS_H
2009-11-23 20:18:47 +00:00
/* Number of colors ( 32 bit palette. ) */
2009-06-30 10:43:20 +00:00
#define NBCOLOR 24
2008-04-02 14:16:14 +00:00
2009-11-23 20:18:47 +00:00
#define MASKCOLOR 31 ///< mask for color index into ColorRefs[]
2008-04-02 14:16:14 +00:00
2009-11-23 20:18:47 +00:00
/// Flag bit display (seen / not seen) items: (defined in the color values
//IMB: Not used anymore #define ITEM_NOT_SHOW (1<<18) // 0x40000
2008-04-02 14:16:14 +00:00
2009-11-23 20:18:47 +00:00
#define HIGHT_LIGHT_FLAG ( 1<<19 ) // 0x80000
2008-04-02 14:16:14 +00:00
/**
* Function SetAlpha
* ORs in the alpha blend parameter in to a color index.
*/
static inline void SetAlpha( int* aColor, int aBlend )
{
const int MASKALPHA = 0xFF;
*aColor = (*aColor & ~(MASKALPHA << 24)) | ((aBlend & MASKALPHA) << 24);
}
/**
* Function GetAlpha
* returns the alpha blend parameter from a color index.
*/
static inline int GetAlpha( int aColor )
{
const int MASKALPHA = 0xFF;
return (aColor >> 24) & MASKALPHA;
}
2007-05-06 16:03:28 +00:00
enum EDA_Colors
{
UNSPECIFIED_COLOR = -1,
2008-04-02 14:16:14 +00:00
BLACK = 0,
BLUE,
GREEN,
CYAN,
RED,
MAGENTA,
BROWN,
LIGHTGRAY,
DARKGRAY,
LIGHTBLUE,
LIGHTGREEN,
LIGHTCYAN,
LIGHTRED,
LIGHTMAGENTA,
YELLOW,
WHITE,
DARKDARKGRAY,
DARKBLUE,
DARKGREEN,
DARKCYAN,
DARKRED,
DARKMAGENTA,
DARKBROWN,
LIGHTYELLOW,
LASTCOLOR
2007-05-06 16:03:28 +00:00
};
2008-04-02 14:16:14 +00:00
struct StructColors
2007-05-06 16:03:28 +00:00
{
2008-04-02 14:16:14 +00:00
unsigned char m_Blue;
unsigned char m_Green;
unsigned char m_Red;
unsigned char m_Numcolor;
const wxChar* m_Name;
int m_LightColor;
2007-05-06 16:03:28 +00:00
};
// list of existing Colors:
2007-05-06 16:03:28 +00:00
extern StructColors ColorRefs[NBCOLOR];
2008-04-02 14:16:14 +00:00
/**
* Function MakeColour
* returns a wxWidgets wxColor from a KICAD color index with alpha value.
* Note that alpha support is not available on every wxWidgets platform. On
* such platform the behavior is the same as for wxALPHA_OPAQUE and that
* means the alpha value has no effect and will be ignored. wxGtk 2.8.4 is
* not supporting alpha.
* @return wxColour - given a KICAD color index with alpha value
*/
static inline wxColour MakeColour( int aColor )
{
#if wxCHECK_VERSION(2,8,5)
2008-04-02 14:16:14 +00:00
int alpha = GetAlpha( aColor );
alpha = alpha ? alpha : wxALPHA_OPAQUE;
#endif
2008-04-02 14:16:14 +00:00
int ndx = aColor & MASKCOLOR;
2009-11-23 20:18:47 +00:00
return wxColour( ColorRefs[ndx].m_Red,
ColorRefs[ndx].m_Green,
ColorRefs[ndx].m_Blue
#if wxCHECK_VERSION(2,8,5)
2009-11-23 20:18:47 +00:00
,(unsigned char) alpha
#endif
2009-11-23 20:18:47 +00:00
);
2008-04-02 14:16:14 +00:00
}
2007-05-06 16:03:28 +00:00
#endif /* ifndef _COLORS_H */