114 lines
2.4 KiB
C
114 lines
2.4 KiB
C
/************/
|
|
/* colors.h */
|
|
/************/
|
|
|
|
#ifndef _COLORS_H
|
|
#define _COLORS_H
|
|
|
|
/* Number of colors ( 32 bit palette. ) */
|
|
#define NBCOLOR 24
|
|
|
|
#define MASKCOLOR 31 ///< mask for color index into ColorRefs[]
|
|
|
|
/// Flag bit display (seen / not seen) items: (defined in the color values
|
|
//IMB: Not used anymore #define ITEM_NOT_SHOW (1<<18) // 0x40000
|
|
|
|
#define HIGHT_LIGHT_FLAG ( 1<<19 ) // 0x80000
|
|
|
|
|
|
/**
|
|
* 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;
|
|
}
|
|
|
|
|
|
enum EDA_Colors
|
|
{
|
|
UNSPECIFIED_COLOR = -1,
|
|
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
|
|
};
|
|
|
|
|
|
struct StructColors
|
|
{
|
|
unsigned char m_Blue;
|
|
unsigned char m_Green;
|
|
unsigned char m_Red;
|
|
unsigned char m_Numcolor;
|
|
|
|
const wxChar* m_Name;
|
|
int m_LightColor;
|
|
};
|
|
|
|
// list of existing Colors:
|
|
extern StructColors ColorRefs[NBCOLOR];
|
|
|
|
/**
|
|
* 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)
|
|
int alpha = GetAlpha( aColor );
|
|
alpha = alpha ? alpha : wxALPHA_OPAQUE;
|
|
#endif
|
|
int ndx = aColor & MASKCOLOR;
|
|
|
|
return wxColour( ColorRefs[ndx].m_Red,
|
|
ColorRefs[ndx].m_Green,
|
|
ColorRefs[ndx].m_Blue
|
|
#if wxCHECK_VERSION(2,8,5)
|
|
,(unsigned char) alpha
|
|
#endif
|
|
);
|
|
}
|
|
|
|
#endif /* ifndef _COLORS_H */
|