167 lines
5.6 KiB
Plaintext
167 lines
5.6 KiB
Plaintext
/************************/
|
|
/* SETCOLOR.CPP */
|
|
/************************/
|
|
|
|
/* Affichage et selection de la palette des couleurs disponibles
|
|
* dans une frame
|
|
*/
|
|
|
|
#include "fctsys.h"
|
|
#include "gr_basic.h"
|
|
|
|
#include "common.h"
|
|
#include "colors.h"
|
|
|
|
|
|
enum colors_id {
|
|
ID_COLOR_BLACK = 2000, // ID_COLOR_ = ID_COLOR_BLACK a ID_COLOR_BLACK + 31
|
|
};
|
|
|
|
|
|
/*******************************************/
|
|
class WinEDA_SelColorFrame : public wxDialog
|
|
/*******************************************/
|
|
|
|
/* Frame d'affichage de la palette des couleurs disponibles
|
|
*/
|
|
{
|
|
private:
|
|
public:
|
|
|
|
// Constructor and destructor
|
|
WinEDA_SelColorFrame( wxWindow * parent, const wxPoint &framepos );
|
|
~WinEDA_SelColorFrame( void ) { };
|
|
|
|
private:
|
|
void SelColor( wxCommandEvent& event );
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
};
|
|
|
|
|
|
/* Construction de la table des evenements pour FrameClassMain */
|
|
BEGIN_EVENT_TABLE( WinEDA_SelColorFrame, wxDialog )
|
|
EVT_BUTTON( ID_COLOR_BLACK, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 1, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 2, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 3, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 4, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 5, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 6, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 7, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 8, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 9, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 10, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 11, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 12, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 13, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 14, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 15, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 16, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 17, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 18, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 19, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 20, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 21, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 22, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 23, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 24, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 25, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 26, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 27, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 28, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 29, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 30, WinEDA_SelColorFrame::SelColor )
|
|
EVT_BUTTON( ID_COLOR_BLACK + 31, WinEDA_SelColorFrame::SelColor )
|
|
END_EVENT_TABLE()
|
|
|
|
/***************************************/
|
|
int DisplayColorFrame( wxWindow* parent )
|
|
/***************************************/
|
|
{
|
|
wxPoint framepos;
|
|
int color;
|
|
|
|
wxGetMousePosition( &framepos.x, &framepos.y );
|
|
|
|
WinEDA_SelColorFrame* frame = new WinEDA_SelColorFrame( parent, framepos );
|
|
|
|
color = frame->ShowModal(); frame->Destroy();
|
|
if( color > NBCOLOR )
|
|
color = -1;
|
|
return color;
|
|
}
|
|
|
|
|
|
/*******************************************************************/
|
|
WinEDA_SelColorFrame::WinEDA_SelColorFrame( wxWindow* parent,
|
|
const wxPoint& framepos ) :
|
|
wxDialog( parent, -1, _( "Colors" ), framepos, wxSize( 375, 240 ),
|
|
DIALOG_STYLE )
|
|
/*******************************************************************/
|
|
{
|
|
#define START_Y 10
|
|
wxBitmapButton* Button;
|
|
int ii, yy, butt_ID, buttcolor;
|
|
wxPoint pos;
|
|
int w = 20, h = 20;
|
|
|
|
SetFont( *g_DialogFont );
|
|
|
|
SetReturnCode( -1 );
|
|
|
|
pos.x = 5; pos.y = START_Y;
|
|
for( ii = 0; ColorRefs[ii].m_Name != NULL; ii++ )
|
|
{
|
|
butt_ID = ID_COLOR_BLACK + ii;
|
|
wxMemoryDC iconDC;
|
|
wxBitmap ButtBitmap( w, h );
|
|
|
|
wxBrush Brush;
|
|
iconDC.SelectObject( ButtBitmap );
|
|
buttcolor = ColorRefs[ii].m_Numcolor;
|
|
iconDC.SetPen( *wxBLACK_PEN );
|
|
Brush.SetColour(
|
|
ColorRefs[buttcolor].m_Red,
|
|
ColorRefs[buttcolor].m_Green,
|
|
ColorRefs[buttcolor].m_Blue
|
|
);
|
|
Brush.SetStyle( wxSOLID );
|
|
|
|
iconDC.SetBrush( Brush );
|
|
iconDC.SetBackground( *wxGREY_BRUSH );
|
|
iconDC.Clear();
|
|
iconDC.DrawRoundedRectangle( 0, 0, w, h, (double) h / 3 );
|
|
|
|
Button = new wxBitmapButton( this, butt_ID,
|
|
ButtBitmap,
|
|
wxPoint (pos.x, pos.y), wxSize (w, h) );
|
|
|
|
new wxStaticText( this, -1,
|
|
ColorRefs[ii].m_Name,
|
|
wxPoint (pos.x + 2 + w, pos.y + 4 ),
|
|
wxSize( -1, -1 ), 0 );
|
|
|
|
yy = h + 5;
|
|
pos.y += yy;
|
|
if( ii == 7 )
|
|
{
|
|
pos.x += w + 80; pos.y = START_Y;
|
|
}
|
|
else if( (ii == 15) || (ii == 23) )
|
|
{
|
|
pos.x += w + 110; pos.y = START_Y;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/*********************************************************/
|
|
void WinEDA_SelColorFrame::SelColor( wxCommandEvent& event )
|
|
/*********************************************************/
|
|
{
|
|
int id = event.GetId();
|
|
|
|
EndModal( id - ID_COLOR_BLACK );
|
|
}
|