Global labels problems fixed (see changelog)
This commit is contained in:
parent
9086e68d47
commit
acf03b7d55
|
@ -5,6 +5,13 @@ Started 2007-June-11
|
||||||
Please add newer entries at the top, list the date and your name with
|
Please add newer entries at the top, list the date and your name with
|
||||||
email address.
|
email address.
|
||||||
|
|
||||||
|
2008-Feb-20 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
|
||||||
|
================================================================================
|
||||||
|
+eeschema
|
||||||
|
Fixed bug in getpart.cpp:
|
||||||
|
eeschema crashed when aborting a new component place command
|
||||||
|
Global Symbols now have their shapes
|
||||||
|
Bad global label shape fixed when reading a schematic file
|
||||||
|
|
||||||
|
|
||||||
2008-Feb-20 UPDATE Dick Hollenbeck <dick@softplc.com>
|
2008-Feb-20 UPDATE Dick Hollenbeck <dick@softplc.com>
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char *lang_chinese_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 16 16 1",
|
||||||
|
". c #E42814",
|
||||||
|
"X c #DC1A1C",
|
||||||
|
"& c #FCFE04",
|
||||||
|
"; c #EC6A14",
|
||||||
|
"% c #FCF20C",
|
||||||
|
"# c #EC5E14",
|
||||||
|
"$ c #F4B20C",
|
||||||
|
"+ c #DB031C",
|
||||||
|
"@ c #F4A60C",
|
||||||
|
"o c #DC0D1C",
|
||||||
|
"O c #E43E14",
|
||||||
|
"* c #F49A0C",
|
||||||
|
"- c #E45214",
|
||||||
|
" c #DC1519",
|
||||||
|
"= c #EC7A0C",
|
||||||
|
": c #E44614",
|
||||||
|
/* pixels */
|
||||||
|
" .. . X",
|
||||||
|
"X oO+ o@#+ ",
|
||||||
|
" ++$ ++o+@o . X",
|
||||||
|
"X.%&&*o o= ",
|
||||||
|
" +.&&+ + + . X",
|
||||||
|
"Xo-+O oo& ",
|
||||||
|
" o o#.++. X",
|
||||||
|
" X ;: . ",
|
||||||
|
" . . oo X",
|
||||||
|
"X . . ",
|
||||||
|
" . . . X",
|
||||||
|
"X ",
|
||||||
|
" . . . . . X",
|
||||||
|
"XX X X",
|
||||||
|
"X X X X X X",
|
||||||
|
"XXXXXXXXXXXXXXXX"
|
||||||
|
};
|
|
@ -47,6 +47,7 @@
|
||||||
#include "Lang_Ko.xpm"
|
#include "Lang_Ko.xpm"
|
||||||
#include "Lang_Ru.xpm"
|
#include "Lang_Ru.xpm"
|
||||||
#include "Lang_Catalan.xpm"
|
#include "Lang_Catalan.xpm"
|
||||||
|
#include "Lang_chinese.xpm"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -572,7 +573,7 @@ wxMenu* WinEDA_App::SetLanguageList( wxMenu* MasterMenu )
|
||||||
|
|
||||||
item = new wxMenuItem( m_Language_Menu, ID_LANGUAGE_CHINESE_SIMPLIFIED,
|
item = new wxMenuItem( m_Language_Menu, ID_LANGUAGE_CHINESE_SIMPLIFIED,
|
||||||
_( "Chinese simplified" ), wxEmptyString, wxITEM_CHECK );
|
_( "Chinese simplified" ), wxEmptyString, wxITEM_CHECK );
|
||||||
//SETBITMAPS( lang_chinese_simplified_xpm );
|
SETBITMAPS( lang_chinese_xpm );
|
||||||
m_Language_Menu->Append( item );
|
m_Language_Menu->Append( item );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,71 +16,6 @@
|
||||||
#define NB_MAX_SHEET 500
|
#define NB_MAX_SHEET 500
|
||||||
|
|
||||||
|
|
||||||
/* Type des labels sur sheet (Labels sur hierarchie) et forme des Global-Labels*/
|
|
||||||
typedef enum {
|
|
||||||
NET_INPUT,
|
|
||||||
NET_OUTPUT,
|
|
||||||
NET_BIDI,
|
|
||||||
NET_TRISTATE,
|
|
||||||
NET_UNSPECIFIED,
|
|
||||||
NET_TMAX /* Derniere valeur: fin de tableau */
|
|
||||||
} TypeSheetLabel;
|
|
||||||
|
|
||||||
/* Messages correspondants aux types ou forme des labels */
|
|
||||||
#ifdef MAIN
|
|
||||||
const char* SheetLabelType[] =
|
|
||||||
{
|
|
||||||
"Input",
|
|
||||||
"Output",
|
|
||||||
"BiDi",
|
|
||||||
"3State",
|
|
||||||
"UnSpc",
|
|
||||||
"?????"
|
|
||||||
};
|
|
||||||
#else
|
|
||||||
extern const char* SheetLabelType[];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Description du graphisme des icones associes aux types des Global_Labels */
|
|
||||||
#ifdef MAIN
|
|
||||||
int TemplateIN_HN[] = { 6, 0, 0, -1, -1, -2, -1, -2, 1, -1, 1, 0, 0 };
|
|
||||||
int TemplateIN_HI[] = { 6, 0, 0, 1, 1, 2, 1, 2, -1, 1, -1, 0, 0 };
|
|
||||||
int TemplateIN_BOTTOM[] = { 6, 0, 0, 1, -1, 1, -2, -1, -2, -1, -1, 0, 0 };
|
|
||||||
int TemplateIN_UP[] = { 6, 0, 0, 1, 1, 1, 2, -1, 2, -1, 1, 0, 0 };
|
|
||||||
|
|
||||||
int TemplateOUT_HN[] = { 6, -2, 0, -1, 1, 0, 1, 0, -1, -1, -1, -2, 0 };
|
|
||||||
int TemplateOUT_HI[] = { 6, 2, 0, 1, -1, 0, -1, 0, 1, 1, 1, 2, 0 };
|
|
||||||
int TemplateOUT_BOTTOM[] = { 6, 0, -2, 1, -1, 1, 0, -1, 0, -1, -1, 0, -2 };
|
|
||||||
int TemplateOUT_UP[] = { 6, 0, 2, 1, 1, 1, 0, -1, 0, -1, 1, 0, 2 };
|
|
||||||
|
|
||||||
int TemplateUNSPC_HN[] = { 5, 0, -1, -2, -1, -2, 1, 0, 1, 0, -1 };
|
|
||||||
int TemplateUNSPC_HI[] = { 5, 0, -1, 2, -1, 2, 1, 0, 1, 0, -1 };
|
|
||||||
int TemplateUNSPC_BOTTOM[] = { 5, 1, 0, 1, -2, -1, -2, -1, 0, 1, 0 };
|
|
||||||
int TemplateUNSPC_UP[] = { 5, 1, 0, 1, 2, -1, 2, -1, 0, 1, 0 };
|
|
||||||
|
|
||||||
int TemplateBIDI_HN[] = { 5, 0, 0, -1, -1, -2, 0, -1, 1, 0, 0 };
|
|
||||||
int TemplateBIDI_HI[] = { 5, 0, 0, 1, -1, 2, 0, 1, 1, 0, 0 };
|
|
||||||
int TemplateBIDI_BOTTOM[] = { 5, 0, 0, -1, -1, 0, -2, 1, -1, 0, 0 };
|
|
||||||
int TemplateBIDI_UP[] = { 5, 0, 0, -1, 1, 0, 2, 1, 1, 0, 0 };
|
|
||||||
|
|
||||||
int Template3STATE_HN[] = { 5, 0, 0, -1, -1, -2, 0, -1, 1, 0, 0 };
|
|
||||||
int Template3STATE_HI[] = { 5, 0, 0, 1, -1, 2, 0, 1, 1, 0, 0 };
|
|
||||||
int Template3STATE_BOTTOM[] = { 5, 0, 0, -1, -1, 0, -2, 1, -1, 0, 0 };
|
|
||||||
int Template3STATE_UP[] = { 5, 0, 0, -1, 1, 0, 2, 1, 1, 0, 0 };
|
|
||||||
|
|
||||||
int* TemplateShape[5][4] =
|
|
||||||
{
|
|
||||||
{ TemplateIN_HN, TemplateIN_UP, TemplateIN_HI, TemplateIN_BOTTOM },
|
|
||||||
{ TemplateOUT_HN, TemplateOUT_UP, TemplateOUT_HI, TemplateOUT_BOTTOM },
|
|
||||||
{ TemplateBIDI_HN, TemplateBIDI_UP, TemplateBIDI_HI, TemplateBIDI_BOTTOM },
|
|
||||||
{ Template3STATE_HN, Template3STATE_UP, Template3STATE_HI, Template3STATE_BOTTOM },
|
|
||||||
{ TemplateUNSPC_HN, TemplateUNSPC_UP, TemplateUNSPC_HI, TemplateUNSPC_BOTTOM }
|
|
||||||
};
|
|
||||||
#else
|
|
||||||
extern int* TemplateShape[5][4];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Forward declarations */
|
/* Forward declarations */
|
||||||
class DrawSheetStruct;
|
class DrawSheetStruct;
|
||||||
extern DrawSheetStruct* g_RootSheet;
|
extern DrawSheetStruct* g_RootSheet;
|
||||||
|
|
|
@ -6,9 +6,11 @@
|
||||||
#include "gr_basic.h"
|
#include "gr_basic.h"
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
#include "trigo.h"
|
||||||
#include "program.h"
|
#include "program.h"
|
||||||
#include "libcmp.h"
|
#include "libcmp.h"
|
||||||
#include "general.h"
|
#include "general.h"
|
||||||
|
|
||||||
#include "id.h"
|
#include "id.h"
|
||||||
|
|
||||||
#include "protos.h"
|
#include "protos.h"
|
||||||
|
@ -48,12 +50,12 @@ DrawTextStruct* DrawTextStruct::GenCopy()
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
|
||||||
newitem = new DrawGlobalLabelStruct(m_Pos, m_Text );
|
newitem = new DrawGlobalLabelStruct( m_Pos, m_Text );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
case DRAW_HIER_LABEL_STRUCT_TYPE:
|
||||||
newitem = new DrawHierLabelStruct(m_Pos, m_Text );
|
newitem = new DrawHierLabelStruct( m_Pos, m_Text );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_LABEL_STRUCT_TYPE:
|
case DRAW_LABEL_STRUCT_TYPE:
|
||||||
newitem = new DrawLabelStruct( m_Pos, m_Text );
|
newitem = new DrawLabelStruct( m_Pos, m_Text );
|
||||||
|
@ -120,30 +122,33 @@ DrawLabelStruct::DrawLabelStruct( const wxPoint& pos, const wxString& text ) :
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
{
|
{
|
||||||
m_Layer = LAYER_LOCLABEL;
|
m_Layer = LAYER_LOCLABEL;
|
||||||
|
m_Shape = NET_INPUT;
|
||||||
m_IsDangling = TRUE;
|
m_IsDangling = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************************/
|
/***********************************************************************************/
|
||||||
DrawGlobalLabelStruct::DrawGlobalLabelStruct(const wxPoint& pos, const wxString& text) :
|
DrawGlobalLabelStruct::DrawGlobalLabelStruct( const wxPoint& pos, const wxString& text ) :
|
||||||
DrawTextStruct( pos, text, DRAW_GLOBAL_LABEL_STRUCT_TYPE )
|
DrawTextStruct( pos, text, DRAW_GLOBAL_LABEL_STRUCT_TYPE )
|
||||||
/***********************************************************************************/
|
/***********************************************************************************/
|
||||||
{
|
{
|
||||||
m_Layer = LAYER_GLOBLABEL;
|
m_Layer = LAYER_GLOBLABEL;
|
||||||
m_Shape = NET_BIDI;
|
m_Shape = NET_BIDI;
|
||||||
m_IsDangling = TRUE;
|
m_IsDangling = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************************/
|
/***********************************************************************************/
|
||||||
DrawHierLabelStruct::DrawHierLabelStruct(const wxPoint& pos, const wxString& text) :
|
DrawHierLabelStruct::DrawHierLabelStruct( const wxPoint& pos, const wxString& text ) :
|
||||||
DrawTextStruct( pos, text, DRAW_HIER_LABEL_STRUCT_TYPE )
|
DrawTextStruct( pos, text, DRAW_HIER_LABEL_STRUCT_TYPE )
|
||||||
/***********************************************************************************/
|
/***********************************************************************************/
|
||||||
{
|
{
|
||||||
m_Layer = LAYER_HIERLABEL;
|
m_Layer = LAYER_HIERLABEL;
|
||||||
m_Shape = NET_INPUT;
|
m_Shape = NET_INPUT;
|
||||||
m_IsDangling = TRUE;
|
m_IsDangling = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************************/
|
/*******************************************************************************************/
|
||||||
void DrawTextStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset,
|
void DrawTextStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset,
|
||||||
int DrawMode, int Color )
|
int DrawMode, int Color )
|
||||||
|
@ -215,141 +220,249 @@ void DrawLabelStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& of
|
||||||
|
|
||||||
/*******************************************************************************************/
|
/*******************************************************************************************/
|
||||||
void DrawHierLabelStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset,
|
void DrawHierLabelStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset,
|
||||||
int DrawMode, int Color )
|
int DrawMode, int Color )
|
||||||
/******************************************************************************************/
|
/******************************************************************************************/
|
||||||
|
|
||||||
/* Texts type Global Label have 4 directions, and the Text origin is the graphic icon
|
/* Texts type Global Label have 4 directions, and the Text origin is the graphic icon
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int* Template;
|
int Poly[40];
|
||||||
int Poly[20];
|
int ii, color;
|
||||||
int ii, jj, imax, color, HalfSize;
|
wxPoint AnchorPos = m_Pos + offset;;
|
||||||
wxSize Size = m_Size;
|
|
||||||
int width = MAX( m_Width, g_DrawMinimunLineWidth );
|
|
||||||
|
|
||||||
if( Color >= 0 )
|
int width = MAX( m_Width, g_DrawMinimunLineWidth );
|
||||||
color = Color;
|
|
||||||
else
|
|
||||||
color = ReturnLayerColor( m_Layer );
|
|
||||||
|
|
||||||
GRSetDrawMode( DC, DrawMode );
|
if( Color >= 0 )
|
||||||
|
color = Color;
|
||||||
|
else
|
||||||
|
color = ReturnLayerColor( m_Layer );
|
||||||
|
|
||||||
HalfSize = Size.x / 2; ii = Size.x + TXTMARGE;
|
GRSetDrawMode( DC, DrawMode );
|
||||||
|
|
||||||
switch( m_Orient )
|
ii = m_Size.x + TXTMARGE;
|
||||||
{
|
|
||||||
case 0: /* Orientation horiz normale */
|
|
||||||
DrawGraphicText( panel, DC,
|
|
||||||
wxPoint( m_Pos.x - ii + offset.x, m_Pos.y + offset.y ), color,
|
|
||||||
m_Text, TEXT_ORIENT_HORIZ, Size,
|
|
||||||
GR_TEXT_HJUSTIFY_RIGHT, GR_TEXT_VJUSTIFY_CENTER, width );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 1: /* Orientation vert UP */
|
switch( m_Orient )
|
||||||
DrawGraphicText( panel, DC,
|
|
||||||
wxPoint( m_Pos.x + offset.x, m_Pos.y + ii + offset.y ), color,
|
|
||||||
m_Text, TEXT_ORIENT_VERT, Size,
|
|
||||||
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_TOP, width );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 2: /* Orientation horiz inverse */
|
|
||||||
DrawGraphicText( panel, DC,
|
|
||||||
wxPoint( m_Pos.x + ii + offset.x, m_Pos.y + offset.y ), color,
|
|
||||||
m_Text, TEXT_ORIENT_HORIZ, Size,
|
|
||||||
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 3: /* Orientation vert BOTTOM */
|
|
||||||
DrawGraphicText( panel, DC,
|
|
||||||
wxPoint( m_Pos.x + offset.x, m_Pos.y - ii + offset.y ), color,
|
|
||||||
m_Text, TEXT_ORIENT_VERT, Size,
|
|
||||||
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_BOTTOM, width );
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
Template = TemplateShape[m_Shape][m_Orient];
|
|
||||||
|
|
||||||
imax = *Template; Template++;
|
|
||||||
for( ii = 0, jj = 0; ii < imax; ii++ )
|
|
||||||
{
|
{
|
||||||
Poly[jj] = ( HalfSize * (*Template) ) + m_Pos.x + offset.x;
|
case 0: /* Orientation horiz normale */
|
||||||
jj++; Template++;
|
DrawGraphicText( panel, DC,
|
||||||
Poly[jj] = ( HalfSize * (*Template) ) + m_Pos.y + offset.y;
|
wxPoint( AnchorPos.x - ii, AnchorPos.y ), color,
|
||||||
jj++; Template++;
|
m_Text, TEXT_ORIENT_HORIZ, m_Size,
|
||||||
|
GR_TEXT_HJUSTIFY_RIGHT, GR_TEXT_VJUSTIFY_CENTER, width );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1: /* Orientation vert UP */
|
||||||
|
DrawGraphicText( panel, DC,
|
||||||
|
wxPoint( AnchorPos.x, AnchorPos.y + ii ), color,
|
||||||
|
m_Text, TEXT_ORIENT_VERT, m_Size,
|
||||||
|
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_TOP, width );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2: /* Orientation horiz inverse */
|
||||||
|
DrawGraphicText( panel, DC,
|
||||||
|
wxPoint( AnchorPos.x + ii, AnchorPos.y ), color,
|
||||||
|
m_Text, TEXT_ORIENT_HORIZ, m_Size,
|
||||||
|
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3: /* Orientation vert BOTTOM */
|
||||||
|
DrawGraphicText( panel, DC,
|
||||||
|
wxPoint( AnchorPos.x, AnchorPos.y - ii ), color,
|
||||||
|
m_Text, TEXT_ORIENT_VERT, m_Size,
|
||||||
|
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_BOTTOM, width );
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
GRPoly( &panel->m_ClipBox, DC, imax, Poly, 0, width, color, color );
|
CreateGraphicShape( Poly, AnchorPos );
|
||||||
|
GRPoly( &panel->m_ClipBox, DC, Poly[0], Poly + 1, 0, width, color, color );
|
||||||
|
|
||||||
if( m_IsDangling )
|
if( m_IsDangling )
|
||||||
DrawDanglingSymbol( panel, DC, m_Pos + offset, color );
|
DrawDanglingSymbol( panel, DC, m_Pos + offset, color );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** function CreateGraphicShape
|
||||||
|
* Calculates the graphic shape (a polygon) associated to the text
|
||||||
|
* @param corner_list = coordinates list fill with polygon corners ooordinates (size > 20)
|
||||||
|
* @param Pos = Postion of the shape
|
||||||
|
* format list is
|
||||||
|
* corner_count, x0, y0, ... xn, yn
|
||||||
|
*/
|
||||||
|
void DrawHierLabelStruct::CreateGraphicShape( int* corner_list, const wxPoint& Pos )
|
||||||
|
{
|
||||||
|
int* Template = TemplateShape[m_Shape][m_Orient];
|
||||||
|
int HalfSize = m_Size.x / 2;
|
||||||
|
|
||||||
|
int imax = *Template; Template++;
|
||||||
|
|
||||||
|
*corner_list = imax; corner_list++;
|
||||||
|
for( int ii = 0; ii < imax; ii++ )
|
||||||
|
{
|
||||||
|
*corner_list = ( HalfSize * (*Template) ) + Pos.x;
|
||||||
|
corner_list++; Template++;
|
||||||
|
*corner_list = ( HalfSize * (*Template) ) + Pos.y;
|
||||||
|
corner_list++; Template++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************************/
|
/*******************************************************************************************/
|
||||||
void DrawGlobalLabelStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset,
|
void DrawGlobalLabelStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& draw_offset,
|
||||||
int DrawMode, int Color )
|
int DrawMode, int Color )
|
||||||
/******************************************************************************************/
|
/******************************************************************************************/
|
||||||
|
|
||||||
/* Texts type Global Label have 4 directions, and the Text origin is the graphic icon
|
/* Texts type Global Label have 4 directions, and the Text origin is the graphic icon
|
||||||
*/
|
*/
|
||||||
//should reimplement this with a custom global shape??
|
|
||||||
//it is the same as Hierarchal sheet.
|
|
||||||
{
|
{
|
||||||
int* Template;
|
int Poly[20];
|
||||||
int Poly[20];
|
int offset, color, HalfSize;
|
||||||
int ii, jj, imax, color, HalfSize;
|
wxPoint AnchorPos = m_Pos + draw_offset;;
|
||||||
wxSize Size = m_Size;
|
|
||||||
int width = MAX( m_Width, g_DrawMinimunLineWidth );
|
|
||||||
|
|
||||||
if( Color >= 0 )
|
int width = MAX( m_Width, g_DrawMinimunLineWidth );
|
||||||
color = Color;
|
|
||||||
else
|
|
||||||
color = ReturnLayerColor( m_Layer );
|
|
||||||
|
|
||||||
GRSetDrawMode( DC, DrawMode );
|
if( Color >= 0 )
|
||||||
|
color = Color;
|
||||||
|
else
|
||||||
|
color = ReturnLayerColor( m_Layer );
|
||||||
|
|
||||||
HalfSize = Size.x / 2; ii = Size.x + TXTMARGE;
|
GRSetDrawMode( DC, DrawMode );
|
||||||
|
|
||||||
switch( m_Orient )
|
HalfSize = m_Size.x / 2;
|
||||||
{
|
offset = width;
|
||||||
case 0: /* Orientation horiz normale */
|
|
||||||
DrawGraphicText( panel, DC,
|
|
||||||
wxPoint( m_Pos.x - ii + offset.x, m_Pos.y + offset.y ), color,
|
|
||||||
m_Text, TEXT_ORIENT_HORIZ, Size,
|
|
||||||
GR_TEXT_HJUSTIFY_RIGHT, GR_TEXT_VJUSTIFY_CENTER, width );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 1: /* Orientation vert UP */
|
switch( m_Shape )
|
||||||
DrawGraphicText( panel, DC,
|
{
|
||||||
wxPoint( m_Pos.x + offset.x, m_Pos.y + ii + offset.y ), color,
|
case NET_INPUT:
|
||||||
m_Text, TEXT_ORIENT_VERT, Size,
|
case NET_BIDI:
|
||||||
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_TOP, width );
|
case NET_TRISTATE:
|
||||||
break;
|
offset += HalfSize;
|
||||||
|
break;
|
||||||
|
|
||||||
case 2: /* Orientation horiz inverse */
|
case NET_OUTPUT:
|
||||||
DrawGraphicText( panel, DC,
|
offset += TXTMARGE;
|
||||||
wxPoint( m_Pos.x + ii + offset.x, m_Pos.y + offset.y ), color,
|
break;
|
||||||
m_Text, TEXT_ORIENT_HORIZ, Size,
|
|
||||||
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 3: /* Orientation vert BOTTOM */
|
default:
|
||||||
DrawGraphicText( panel, DC,
|
break;
|
||||||
wxPoint( m_Pos.x + offset.x, m_Pos.y - ii + offset.y ), color,
|
}
|
||||||
m_Text, TEXT_ORIENT_VERT, Size,
|
|
||||||
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_BOTTOM, width );
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
Template = TemplateShape[m_Shape][m_Orient];
|
switch( m_Orient )
|
||||||
|
{
|
||||||
|
case 0: /* Orientation horiz normale */
|
||||||
|
DrawGraphicText( panel, DC,
|
||||||
|
wxPoint( AnchorPos.x - offset, AnchorPos.y ), color,
|
||||||
|
m_Text, TEXT_ORIENT_HORIZ, m_Size,
|
||||||
|
GR_TEXT_HJUSTIFY_RIGHT, GR_TEXT_VJUSTIFY_CENTER, width );
|
||||||
|
break;
|
||||||
|
|
||||||
imax = *Template; Template++;
|
case 1: /* Orientation vert UP */
|
||||||
for( ii = 0, jj = 0; ii < imax; ii++ )
|
DrawGraphicText( panel, DC,
|
||||||
{
|
wxPoint( AnchorPos.x, AnchorPos.y + offset ), color,
|
||||||
Poly[jj] = ( HalfSize * (*Template) ) + m_Pos.x + offset.x;
|
m_Text, TEXT_ORIENT_VERT, m_Size,
|
||||||
jj++; Template++;
|
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_TOP, width );
|
||||||
Poly[jj] = ( HalfSize * (*Template) ) + m_Pos.y + offset.y;
|
break;
|
||||||
jj++; Template++;
|
|
||||||
}
|
|
||||||
|
|
||||||
GRPoly( &panel->m_ClipBox, DC, imax, Poly, 0, width, color, color );
|
case 2: /* Orientation horiz inverse */
|
||||||
|
DrawGraphicText( panel, DC,
|
||||||
|
wxPoint( AnchorPos.x + offset, AnchorPos.y ), color,
|
||||||
|
m_Text, TEXT_ORIENT_HORIZ, m_Size,
|
||||||
|
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width );
|
||||||
|
break;
|
||||||
|
|
||||||
if( m_IsDangling )
|
case 3: /* Orientation vert BOTTOM */
|
||||||
DrawDanglingSymbol( panel, DC, m_Pos + offset, color );
|
DrawGraphicText( panel, DC,
|
||||||
|
wxPoint( AnchorPos.x, AnchorPos.y - offset ), color,
|
||||||
|
m_Text, TEXT_ORIENT_VERT, m_Size,
|
||||||
|
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_BOTTOM, width );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
CreateGraphicShape( Poly, AnchorPos );
|
||||||
|
GRPoly( &panel->m_ClipBox, DC, Poly[0], Poly + 1, 0, width, color, color );
|
||||||
|
|
||||||
|
if( m_IsDangling )
|
||||||
|
DrawDanglingSymbol( panel, DC, AnchorPos, color );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** function CreateGraphicShape
|
||||||
|
* Calculates the graphic shape (a polygon) associated to the text
|
||||||
|
* @param corner_list = oordinates list fill with polygon corners ooordinates (size >= 14)
|
||||||
|
* @param Pos = Postion of the shape
|
||||||
|
* format list is
|
||||||
|
* <corner_count>, x0, y0, ... xn, yn
|
||||||
|
*/
|
||||||
|
void DrawGlobalLabelStruct::CreateGraphicShape( int* corner_list, const wxPoint& Pos )
|
||||||
|
{
|
||||||
|
int HalfSize = m_Size.x / 2;
|
||||||
|
int width = MAX( m_Width, g_DrawMinimunLineWidth );
|
||||||
|
|
||||||
|
*corner_list = 7; corner_list++; // 7 corners in list
|
||||||
|
|
||||||
|
int symb_len = Len_Size() + (TXTMARGE * 2); // Real text len + text margin
|
||||||
|
// Create outline shape : 6 points
|
||||||
|
int x = symb_len + width + 3;
|
||||||
|
int y = HalfSize + width + 3;
|
||||||
|
corner_list[0] = 0; corner_list[1] = 0; // Starting point (anchor)
|
||||||
|
corner_list[2] = 0; corner_list[3] = -y; // Up
|
||||||
|
corner_list[4] = -x; corner_list[5] = -y; // left Up
|
||||||
|
corner_list[6] = -x; corner_list[7] = 0; // left
|
||||||
|
corner_list[8] = -x; corner_list[9] = y; // left down
|
||||||
|
corner_list[10] = 0; corner_list[11] = y; // down
|
||||||
|
|
||||||
|
int x_offset = 0;
|
||||||
|
|
||||||
|
switch( m_Shape )
|
||||||
|
{
|
||||||
|
case NET_INPUT:
|
||||||
|
x_offset = -HalfSize;
|
||||||
|
corner_list[0] += HalfSize;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NET_OUTPUT:
|
||||||
|
corner_list[6] -= HalfSize;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NET_BIDI:
|
||||||
|
case NET_TRISTATE:
|
||||||
|
x_offset = -HalfSize;
|
||||||
|
corner_list[0] += HalfSize;
|
||||||
|
corner_list[6] -= HalfSize;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NET_UNSPECIFIED:
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
int angle = 0;
|
||||||
|
|
||||||
|
switch( m_Orient )
|
||||||
|
{
|
||||||
|
case 0: /* Orientation horiz normale */
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1: /* Orientation vert UP */
|
||||||
|
angle = 900;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2: /* Orientation horiz inverse */
|
||||||
|
angle = 1800;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3: /* Orientation vert BOTTOM */
|
||||||
|
angle = -900;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Rotate outlines and move in real position
|
||||||
|
for( int ii = 0; ii < 12; ii += 2 )
|
||||||
|
{
|
||||||
|
corner_list[ii] += x_offset;
|
||||||
|
if( angle )
|
||||||
|
RotatePoint( &corner_list[ii], &corner_list[ii + 1], angle );
|
||||||
|
corner_list[ii] += Pos.x;
|
||||||
|
corner_list[ii + 1] += Pos.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
corner_list[12] = corner_list[0]; corner_list[13] = corner_list[1]; // closing
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,175 @@
|
||||||
|
/********************************************/
|
||||||
|
/* Definitions for the EESchema program: */
|
||||||
|
/********************************************/
|
||||||
|
|
||||||
|
#ifndef CLASS_TEXT_LABEL_H
|
||||||
|
#define CLASS_TEXT_LABEL_H
|
||||||
|
|
||||||
|
#ifndef eda_global
|
||||||
|
#define eda_global extern
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "macros.h"
|
||||||
|
#include "base_struct.h"
|
||||||
|
|
||||||
|
/* Type des labels sur sheet (Labels sur hierarchie) et forme des Global-Labels*/
|
||||||
|
typedef enum {
|
||||||
|
NET_INPUT,
|
||||||
|
NET_OUTPUT,
|
||||||
|
NET_BIDI,
|
||||||
|
NET_TRISTATE,
|
||||||
|
NET_UNSPECIFIED,
|
||||||
|
NET_TMAX /* Derniere valeur: fin de tableau */
|
||||||
|
} TypeSheetLabel;
|
||||||
|
|
||||||
|
/* Messages correspondants aux types ou forme des labels */
|
||||||
|
#ifdef MAIN
|
||||||
|
const char* SheetLabelType[] =
|
||||||
|
{
|
||||||
|
"Input",
|
||||||
|
"Output",
|
||||||
|
"BiDi",
|
||||||
|
"3State",
|
||||||
|
"UnSpc",
|
||||||
|
"?????"
|
||||||
|
};
|
||||||
|
#else
|
||||||
|
extern const char* SheetLabelType[];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Description du graphisme des icones associes aux types des Global_Labels */
|
||||||
|
#ifdef MAIN
|
||||||
|
int TemplateIN_HN[] = { 6, 0, 0, -1, -1, -2, -1, -2, 1, -1, 1, 0, 0 };
|
||||||
|
int TemplateIN_HI[] = { 6, 0, 0, 1, 1, 2, 1, 2, -1, 1, -1, 0, 0 };
|
||||||
|
int TemplateIN_BOTTOM[] = { 6, 0, 0, 1, -1, 1, -2, -1, -2, -1, -1, 0, 0 };
|
||||||
|
int TemplateIN_UP[] = { 6, 0, 0, 1, 1, 1, 2, -1, 2, -1, 1, 0, 0 };
|
||||||
|
|
||||||
|
int TemplateOUT_HN[] = { 6, -2, 0, -1, 1, 0, 1, 0, -1, -1, -1, -2, 0 };
|
||||||
|
int TemplateOUT_HI[] = { 6, 2, 0, 1, -1, 0, -1, 0, 1, 1, 1, 2, 0 };
|
||||||
|
int TemplateOUT_BOTTOM[] = { 6, 0, -2, 1, -1, 1, 0, -1, 0, -1, -1, 0, -2 };
|
||||||
|
int TemplateOUT_UP[] = { 6, 0, 2, 1, 1, 1, 0, -1, 0, -1, 1, 0, 2 };
|
||||||
|
|
||||||
|
int TemplateUNSPC_HN[] = { 5, 0, -1, -2, -1, -2, 1, 0, 1, 0, -1 };
|
||||||
|
int TemplateUNSPC_HI[] = { 5, 0, -1, 2, -1, 2, 1, 0, 1, 0, -1 };
|
||||||
|
int TemplateUNSPC_BOTTOM[] = { 5, 1, 0, 1, -2, -1, -2, -1, 0, 1, 0 };
|
||||||
|
int TemplateUNSPC_UP[] = { 5, 1, 0, 1, 2, -1, 2, -1, 0, 1, 0 };
|
||||||
|
|
||||||
|
int TemplateBIDI_HN[] = { 5, 0, 0, -1, -1, -2, 0, -1, 1, 0, 0 };
|
||||||
|
int TemplateBIDI_HI[] = { 5, 0, 0, 1, -1, 2, 0, 1, 1, 0, 0 };
|
||||||
|
int TemplateBIDI_BOTTOM[] = { 5, 0, 0, -1, -1, 0, -2, 1, -1, 0, 0 };
|
||||||
|
int TemplateBIDI_UP[] = { 5, 0, 0, -1, 1, 0, 2, 1, 1, 0, 0 };
|
||||||
|
|
||||||
|
int Template3STATE_HN[] = { 5, 0, 0, -1, -1, -2, 0, -1, 1, 0, 0 };
|
||||||
|
int Template3STATE_HI[] = { 5, 0, 0, 1, -1, 2, 0, 1, 1, 0, 0 };
|
||||||
|
int Template3STATE_BOTTOM[] = { 5, 0, 0, -1, -1, 0, -2, 1, -1, 0, 0 };
|
||||||
|
int Template3STATE_UP[] = { 5, 0, 0, -1, 1, 0, 2, 1, 1, 0, 0 };
|
||||||
|
|
||||||
|
int* TemplateShape[5][4] =
|
||||||
|
{
|
||||||
|
{ TemplateIN_HN, TemplateIN_UP, TemplateIN_HI, TemplateIN_BOTTOM },
|
||||||
|
{ TemplateOUT_HN, TemplateOUT_UP, TemplateOUT_HI, TemplateOUT_BOTTOM },
|
||||||
|
{ TemplateBIDI_HN, TemplateBIDI_UP, TemplateBIDI_HI, TemplateBIDI_BOTTOM },
|
||||||
|
{ Template3STATE_HN, Template3STATE_UP, Template3STATE_HI, Template3STATE_BOTTOM },
|
||||||
|
{ TemplateUNSPC_HN, TemplateUNSPC_UP, TemplateUNSPC_HI, TemplateUNSPC_BOTTOM }
|
||||||
|
};
|
||||||
|
#else
|
||||||
|
extern int* TemplateShape[5][4];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
class DrawTextStruct : public EDA_BaseStruct
|
||||||
|
, public EDA_TextStruct
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
int m_Layer;
|
||||||
|
int m_Shape;
|
||||||
|
bool m_IsDangling; // TRUE si non connect<63>
|
||||||
|
|
||||||
|
public:
|
||||||
|
DrawTextStruct( const wxPoint& pos = wxPoint( 0, 0 ), const wxString& text = wxEmptyString,
|
||||||
|
KICAD_T aType = DRAW_TEXT_STRUCT_TYPE );
|
||||||
|
~DrawTextStruct() { }
|
||||||
|
|
||||||
|
virtual wxString GetClass() const
|
||||||
|
{
|
||||||
|
return wxT( "DrawText" );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
DrawTextStruct* GenCopy();
|
||||||
|
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode,
|
||||||
|
int Color = -1 );
|
||||||
|
|
||||||
|
void SwapData( DrawTextStruct* copyitem );
|
||||||
|
|
||||||
|
virtual void Place( WinEDA_DrawFrame* frame, wxDC* DC );
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class DrawLabelStruct : public DrawTextStruct
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
DrawLabelStruct( const wxPoint& pos = wxPoint( 0, 0 ), const wxString& text = wxEmptyString );
|
||||||
|
~DrawLabelStruct() { }
|
||||||
|
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode,
|
||||||
|
int Color = -1 );
|
||||||
|
|
||||||
|
virtual wxString GetClass() const
|
||||||
|
{
|
||||||
|
return wxT( "DrawLabel" );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class DrawGlobalLabelStruct : public DrawTextStruct
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
DrawGlobalLabelStruct( const wxPoint& pos = wxPoint( 0, 0 ),
|
||||||
|
const wxString& text = wxEmptyString );
|
||||||
|
~DrawGlobalLabelStruct() { }
|
||||||
|
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode,
|
||||||
|
int Color = -1 );
|
||||||
|
|
||||||
|
virtual wxString GetClass() const
|
||||||
|
{
|
||||||
|
return wxT( "DrawGlobalLabel" );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** function CreateGraphicShape
|
||||||
|
* Calculates the graphic shape (a polygon) associated to the text
|
||||||
|
* @param corner_list = coordinates list fill with polygon corners ooordinates (size > 20)
|
||||||
|
* @param Pos = Postion of the shape
|
||||||
|
* format list is
|
||||||
|
* <corner_count>, x0, y0, ... xn, yn
|
||||||
|
*/
|
||||||
|
void CreateGraphicShape( int* corner_list, const wxPoint & Pos );
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class DrawHierLabelStruct : public DrawTextStruct
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
DrawHierLabelStruct( const wxPoint& pos = wxPoint( 0, 0 ),
|
||||||
|
const wxString& text = wxEmptyString );
|
||||||
|
~DrawHierLabelStruct() { }
|
||||||
|
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode,
|
||||||
|
int Color = -1 );
|
||||||
|
|
||||||
|
virtual wxString GetClass() const
|
||||||
|
{
|
||||||
|
return wxT( "DrawHierLabel" );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** function CreateGraphicShape
|
||||||
|
* Calculates the graphic shape (a polygon) associated to the text
|
||||||
|
* @param corner_list = coordinates list fill with polygon corners ooordinates (size >= 14)
|
||||||
|
* @param Pos = Postion of the shape
|
||||||
|
* format list is
|
||||||
|
* <corner_count>, x0, y0, ... xn, yn
|
||||||
|
*/
|
||||||
|
void CreateGraphicShape( int* corner_list, const wxPoint & Pos );
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* CLASS_TEXT_LABEL_H */
|
|
@ -321,6 +321,7 @@ static void ExitPlaceCmp( WinEDA_DrawPanel* Panel, wxDC* DC )
|
||||||
if( DrawLibItem->m_Flags & IS_NEW ) /* Nouveau Placement en cours, on l'efface */
|
if( DrawLibItem->m_Flags & IS_NEW ) /* Nouveau Placement en cours, on l'efface */
|
||||||
{
|
{
|
||||||
DrawStructsInGhost( Panel, DC, DrawLibItem, 0, 0 );
|
DrawStructsInGhost( Panel, DC, DrawLibItem, 0, 0 );
|
||||||
|
DrawLibItem->m_Flags = 0;
|
||||||
SAFE_DELETE( DrawLibItem );
|
SAFE_DELETE( DrawLibItem );
|
||||||
}
|
}
|
||||||
else if( DrawLibItem ) /* Deplacement ancien composant en cours */
|
else if( DrawLibItem ) /* Deplacement ancien composant en cours */
|
||||||
|
@ -335,9 +336,9 @@ static void ExitPlaceCmp( WinEDA_DrawPanel* Panel, wxDC* DC )
|
||||||
|
|
||||||
memcpy( DrawLibItem->m_Transform, OldTransMat, sizeof(OldTransMat) );
|
memcpy( DrawLibItem->m_Transform, OldTransMat, sizeof(OldTransMat) );
|
||||||
DrawLibItem->Draw( Panel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
DrawLibItem->Draw( Panel, DC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||||
|
DrawLibItem->m_Flags = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawLibItem->m_Flags = 0;
|
|
||||||
Panel->ManageCurseur = NULL;
|
Panel->ManageCurseur = NULL;
|
||||||
Panel->ForceCloseManageCurseur = NULL;
|
Panel->ForceCloseManageCurseur = NULL;
|
||||||
Panel->m_Parent->GetScreen()->SetCurItem( NULL );
|
Panel->m_Parent->GetScreen()->SetCurItem( NULL );
|
||||||
|
|
|
@ -389,6 +389,7 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F
|
||||||
Struct = (EDA_BaseStruct*) TextStruct;
|
Struct = (EDA_BaseStruct*) TextStruct;
|
||||||
TextStruct->m_Size.x = TextStruct->m_Size.y = size;
|
TextStruct->m_Size.x = TextStruct->m_Size.y = size;
|
||||||
TextStruct->m_Orient = orient;
|
TextStruct->m_Orient = orient;
|
||||||
|
TextStruct->m_Shape = NET_INPUT;
|
||||||
if( stricmp( Name2, SheetLabelType[NET_OUTPUT] ) == 0 )
|
if( stricmp( Name2, SheetLabelType[NET_OUTPUT] ) == 0 )
|
||||||
TextStruct->m_Shape = NET_OUTPUT;
|
TextStruct->m_Shape = NET_OUTPUT;
|
||||||
if( stricmp( Name2, SheetLabelType[NET_BIDI] ) == 0 )
|
if( stricmp( Name2, SheetLabelType[NET_BIDI] ) == 0 )
|
||||||
|
@ -399,12 +400,13 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen, const wxString& F
|
||||||
TextStruct->m_Shape = NET_UNSPECIFIED;
|
TextStruct->m_Shape = NET_UNSPECIFIED;
|
||||||
}
|
}
|
||||||
else if( (Name1[0] == 'H') || (Name1[0] == 'G' && version == '1'))
|
else if( (Name1[0] == 'H') || (Name1[0] == 'G' && version == '1'))
|
||||||
{ //in sschematic file version 1, glabels were actually hierarchal labels.
|
{ //in schematic file version 1, glabels were actually hierarchal labels.
|
||||||
DrawHierLabelStruct* TextStruct =
|
DrawHierLabelStruct* TextStruct =
|
||||||
new DrawHierLabelStruct(pos, CONV_FROM_UTF8( text ) );
|
new DrawHierLabelStruct(pos, CONV_FROM_UTF8( text ) );
|
||||||
Struct = (EDA_BaseStruct*) TextStruct;
|
Struct = (EDA_BaseStruct*) TextStruct;
|
||||||
TextStruct->m_Size.x = TextStruct->m_Size.y = size;
|
TextStruct->m_Size.x = TextStruct->m_Size.y = size;
|
||||||
TextStruct->m_Orient = orient;
|
TextStruct->m_Orient = orient;
|
||||||
|
TextStruct->m_Shape = NET_INPUT;
|
||||||
if( stricmp( Name2, SheetLabelType[NET_OUTPUT] ) == 0 )
|
if( stricmp( Name2, SheetLabelType[NET_OUTPUT] ) == 0 )
|
||||||
TextStruct->m_Shape = NET_OUTPUT;
|
TextStruct->m_Shape = NET_OUTPUT;
|
||||||
if( stricmp( Name2, SheetLabelType[NET_BIDI] ) == 0 )
|
if( stricmp( Name2, SheetLabelType[NET_BIDI] ) == 0 )
|
||||||
|
|
1229
eeschema/plot.cpp
1229
eeschema/plot.cpp
File diff suppressed because it is too large
Load Diff
|
@ -14,6 +14,7 @@
|
||||||
|
|
||||||
#include "component_class.h"
|
#include "component_class.h"
|
||||||
#include "class_screen.h"
|
#include "class_screen.h"
|
||||||
|
#include "class_text-label.h"
|
||||||
|
|
||||||
#define DRAWJUNCTION_SIZE 16 /* Rayon du symbole connexion */
|
#define DRAWJUNCTION_SIZE 16 /* Rayon du symbole connexion */
|
||||||
#define DRAWMARKER_SIZE 16 /* Rayon du symbole marqueur */
|
#define DRAWMARKER_SIZE 16 /* Rayon du symbole marqueur */
|
||||||
|
@ -234,77 +235,6 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class DrawTextStruct : public EDA_BaseStruct, public EDA_TextStruct
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
int m_Layer;
|
|
||||||
int m_Shape;
|
|
||||||
bool m_IsDangling; // TRUE si non connect<63>
|
|
||||||
|
|
||||||
public:
|
|
||||||
DrawTextStruct( const wxPoint& pos = wxPoint( 0, 0 ), const wxString& text = wxEmptyString,
|
|
||||||
KICAD_T aType = DRAW_TEXT_STRUCT_TYPE );
|
|
||||||
~DrawTextStruct() { }
|
|
||||||
|
|
||||||
virtual wxString GetClass() const
|
|
||||||
{
|
|
||||||
return wxT( "DrawText" );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
DrawTextStruct* GenCopy();
|
|
||||||
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode,
|
|
||||||
int Color = -1 );
|
|
||||||
|
|
||||||
void SwapData( DrawTextStruct* copyitem );
|
|
||||||
|
|
||||||
virtual void Place( WinEDA_DrawFrame* frame, wxDC* DC );
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class DrawLabelStruct : public DrawTextStruct
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
DrawLabelStruct( const wxPoint& pos = wxPoint( 0, 0 ), const wxString& text = wxEmptyString );
|
|
||||||
~DrawLabelStruct() { }
|
|
||||||
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode,
|
|
||||||
int Color = -1 );
|
|
||||||
|
|
||||||
virtual wxString GetClass() const
|
|
||||||
{
|
|
||||||
return wxT( "DrawLabel" );
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class DrawGlobalLabelStruct : public DrawTextStruct
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
DrawGlobalLabelStruct(const wxPoint& pos = wxPoint( 0, 0 ),
|
|
||||||
const wxString& text = wxEmptyString);
|
|
||||||
~DrawGlobalLabelStruct() { }
|
|
||||||
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode,
|
|
||||||
int Color = -1 );
|
|
||||||
|
|
||||||
virtual wxString GetClass() const
|
|
||||||
{
|
|
||||||
return wxT( "DrawGlobalLabel" );
|
|
||||||
}
|
|
||||||
};
|
|
||||||
class DrawHierLabelStruct : public DrawTextStruct
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
DrawHierLabelStruct(const wxPoint& pos = wxPoint( 0, 0 ),
|
|
||||||
const wxString& text = wxEmptyString);
|
|
||||||
~DrawHierLabelStruct() { }
|
|
||||||
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode,
|
|
||||||
int Color = -1 );
|
|
||||||
|
|
||||||
virtual wxString GetClass() const
|
|
||||||
{
|
|
||||||
return wxT( "DrawHierLabel" );
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#define MAX_LAYERS 44
|
#define MAX_LAYERS 44
|
||||||
class LayerStruct
|
class LayerStruct
|
||||||
|
|
|
@ -269,7 +269,7 @@ bool WinEDA_SchematicFrame::SaveEEFile(SCH_SCREEN *screen, int FileSave)
|
||||||
Failed = TRUE;
|
Failed = TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DRAW_HIER_LABEL_STRUCT_TYPE: /* Its a Global label item. */
|
case DRAW_HIER_LABEL_STRUCT_TYPE: /* Its a Hierarchical label item. */
|
||||||
#undef STRUCT
|
#undef STRUCT
|
||||||
#define STRUCT ((DrawHierLabelStruct *) Phead)
|
#define STRUCT ((DrawHierLabelStruct *) Phead)
|
||||||
shape = STRUCT->m_Shape;
|
shape = STRUCT->m_Shape;
|
||||||
|
|
|
@ -1,89 +0,0 @@
|
||||||
/*
|
|
||||||
* File: printing.h
|
|
||||||
* Purpose: Printing demo for wxWindows class library
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef __GNUG__
|
|
||||||
#pragma interface
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Define a new application
|
|
||||||
class MyApp: public wxApp
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
MyApp() ;
|
|
||||||
bool OnInit();
|
|
||||||
int OnExit();
|
|
||||||
|
|
||||||
wxFont* m_testFont;
|
|
||||||
};
|
|
||||||
|
|
||||||
DECLARE_APP(MyApp)
|
|
||||||
|
|
||||||
class MyCanvas;
|
|
||||||
|
|
||||||
// Define a new canvas and frame
|
|
||||||
class MyFrame: public wxFrame
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
MyCanvas *canvas;
|
|
||||||
MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size);
|
|
||||||
|
|
||||||
void Draw(wxDC& dc);
|
|
||||||
|
|
||||||
void OnSize(wxSizeEvent& event);
|
|
||||||
void OnPrint(wxCommandEvent& event);
|
|
||||||
void OnPrintPreview(wxCommandEvent& event);
|
|
||||||
void OnPrintSetup(wxCommandEvent& event);
|
|
||||||
void OnPageSetup(wxCommandEvent& event);
|
|
||||||
#if defined(__WXMSW__) && wxTEST_POSTSCRIPT_IN_MSW
|
|
||||||
void OnPrintPS(wxCommandEvent& event);
|
|
||||||
void OnPrintPreviewPS(wxCommandEvent& event);
|
|
||||||
void OnPrintSetupPS(wxCommandEvent& event);
|
|
||||||
void OnPageSetupPS(wxCommandEvent& event);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void OnExit(wxCommandEvent& event);
|
|
||||||
void OnPrintAbout(wxCommandEvent& event);
|
|
||||||
DECLARE_EVENT_TABLE()
|
|
||||||
};
|
|
||||||
|
|
||||||
// Define a new canvas which can receive some events
|
|
||||||
class MyCanvas: public wxScrolledWindow
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
MyCanvas(wxFrame *frame, const wxPoint& pos, const wxSize& size, long style = wxRETAINED);
|
|
||||||
~MyCanvas() ;
|
|
||||||
|
|
||||||
virtual void OnDraw(wxDC& dc);
|
|
||||||
void OnEvent(wxMouseEvent& event);
|
|
||||||
|
|
||||||
DECLARE_EVENT_TABLE()
|
|
||||||
};
|
|
||||||
|
|
||||||
class MyPrintout: public wxPrintout
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
MyPrintout(char *title = "My printout"):wxPrintout(title) {}
|
|
||||||
bool OnPrintPage(int page);
|
|
||||||
bool HasPage(int page);
|
|
||||||
bool OnBeginDocument(int startPage, int endPage);
|
|
||||||
void GetPageInfo(int *minPage, int *maxPage, int *selPageFrom, int *selPageTo);
|
|
||||||
|
|
||||||
void DrawPageOne(wxDC *dc);
|
|
||||||
void DrawPageTwo(wxDC *dc);
|
|
||||||
};
|
|
||||||
|
|
||||||
#define WXPRINT_QUIT 100
|
|
||||||
#define WXPRINT_PRINT 101
|
|
||||||
#define WXPRINT_PRINT_SETUP 102
|
|
||||||
#define WXPRINT_PAGE_SETUP 103
|
|
||||||
#define WXPRINT_PREVIEW 104
|
|
||||||
|
|
||||||
#define WXPRINT_PRINT_PS 105
|
|
||||||
#define WXPRINT_PRINT_SETUP_PS 106
|
|
||||||
#define WXPRINT_PAGE_SETUP_PS 107
|
|
||||||
#define WXPRINT_PREVIEW_PS 108
|
|
||||||
|
|
||||||
#define WXPRINT_ABOUT 109
|
|
||||||
|
|
Binary file not shown.
7765
internat/fr/kicad.po
7765
internat/fr/kicad.po
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue