some minor bug fixes and enhancements
This commit is contained in:
parent
6a5d55bf0b
commit
db49e2a505
|
@ -110,9 +110,10 @@ SCH_COMPONENT::SCH_COMPONENT( LIB_COMPONENT& libComponent, DrawSheetPath* sheet,
|
||||||
|
|
||||||
if( msg.IsEmpty() )
|
if( msg.IsEmpty() )
|
||||||
msg = wxT( "U" );
|
msg = wxT( "U" );
|
||||||
msg += wxT( "?" );
|
m_PrefixString = msg;
|
||||||
|
|
||||||
// update the reference -- just the prefix for now.
|
// update the reference -- just the prefix for now.
|
||||||
|
msg += wxT( "?" );
|
||||||
SetRef( sheet, msg );
|
SetRef( sheet, msg );
|
||||||
|
|
||||||
/* Use the schematic component name instead of the library value field
|
/* Use the schematic component name instead of the library value field
|
||||||
|
|
|
@ -656,6 +656,7 @@ void WinEDA_FindFrame::LocatePartInLibs( wxCommandEvent& event )
|
||||||
|
|
||||||
BOOST_FOREACH( CMP_LIBRARY& lib, CMP_LIBRARY::GetLibraryList() )
|
BOOST_FOREACH( CMP_LIBRARY& lib, CMP_LIBRARY::GetLibraryList() )
|
||||||
{
|
{
|
||||||
|
nameList.Clear();
|
||||||
lib.SearchEntryNames( nameList, Text );
|
lib.SearchEntryNames( nameList, Text );
|
||||||
|
|
||||||
if( nameList.IsEmpty() )
|
if( nameList.IsEmpty() )
|
||||||
|
|
|
@ -200,10 +200,12 @@ SCH_COMPONENT* WinEDA_SchematicFrame::Load_Component( wxDC* DC,
|
||||||
Component = new SCH_COMPONENT( *Entry, GetSheet(), unit, convert,
|
Component = new SCH_COMPONENT( *Entry, GetSheet(), unit, convert,
|
||||||
GetScreen()->m_Curseur, true );
|
GetScreen()->m_Curseur, true );
|
||||||
|
|
||||||
DrawStructsInGhost( DrawPanel, DC, Component, wxPoint( 0, 0 ) );
|
// Set the component value (that can differ from component name in lib, for aliases)
|
||||||
|
Component->GetField( VALUE )->m_Text = Name;
|
||||||
Component->DisplayInfo( this );
|
Component->DisplayInfo( this );
|
||||||
|
|
||||||
|
DrawStructsInGhost( DrawPanel, DC, Component, wxPoint( 0, 0 ) );
|
||||||
|
|
||||||
return Component;
|
return Component;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -558,7 +558,8 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin
|
||||||
{
|
{
|
||||||
color = g_DesignSettings.m_LayerColor[m_Layer];
|
color = g_DesignSettings.m_LayerColor[m_Layer];
|
||||||
|
|
||||||
if( g_DesignSettings.IsLayerVisible( m_Layer ) == false && ( color & HIGHT_LIGHT_FLAG ) != HIGHT_LIGHT_FLAG )
|
if( g_DesignSettings.IsLayerVisible( m_Layer ) == false && ( color & HIGHT_LIGHT_FLAG ) !=
|
||||||
|
HIGHT_LIGHT_FLAG )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( DisplayOpt.ContrastModeDisplay )
|
if( DisplayOpt.ContrastModeDisplay )
|
||||||
|
@ -708,13 +709,13 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin
|
||||||
void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoint& notUsed )
|
void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoint& notUsed )
|
||||||
/*******************************************************************************************/
|
/*******************************************************************************************/
|
||||||
{
|
{
|
||||||
int color;
|
int color;
|
||||||
int rayon;
|
int rayon;
|
||||||
int curr_layer = ( (PCB_SCREEN*) panel->GetScreen() )->m_Active_Layer;
|
int curr_layer = ( (PCB_SCREEN*) panel->GetScreen() )->m_Active_Layer;
|
||||||
|
|
||||||
int fillvia = 0;
|
int fillvia = 0;
|
||||||
WinEDA_BasePcbFrame* frame = (WinEDA_BasePcbFrame*) panel->m_Parent;
|
WinEDA_BasePcbFrame* frame = (WinEDA_BasePcbFrame*) panel->m_Parent;
|
||||||
PCB_SCREEN* screen = frame->GetScreen();
|
PCB_SCREEN* screen = frame->GetScreen();
|
||||||
|
|
||||||
if( frame->m_DisplayViaFill == FILLED )
|
if( frame->m_DisplayViaFill == FILLED )
|
||||||
fillvia = 1;
|
fillvia = 1;
|
||||||
|
@ -723,7 +724,8 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi
|
||||||
|
|
||||||
color = g_DesignSettings.m_ViaColor[m_Shape];
|
color = g_DesignSettings.m_ViaColor[m_Shape];
|
||||||
|
|
||||||
if( g_DesignSettings.IsElementVisible( VIAS_VISIBLE + m_Shape ) == false && ( color & HIGHT_LIGHT_FLAG ) != HIGHT_LIGHT_FLAG )
|
if( g_DesignSettings.IsElementVisible( VIAS_VISIBLE + m_Shape ) == false
|
||||||
|
&& ( color & HIGHT_LIGHT_FLAG ) != HIGHT_LIGHT_FLAG )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( DisplayOpt.ContrastModeDisplay )
|
if( DisplayOpt.ContrastModeDisplay )
|
||||||
|
@ -750,22 +752,30 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi
|
||||||
|
|
||||||
|
|
||||||
rayon = m_Width >> 1;
|
rayon = m_Width >> 1;
|
||||||
if( panel->GetScreen()->Scale( rayon ) <= 4 )
|
// for small via size on screen (rayon < 4 pixels) draw a simplified shape
|
||||||
|
int radius_in_pixels = panel->GetScreen()->Scale( rayon );
|
||||||
|
bool fast_draw = false;
|
||||||
|
|
||||||
|
// Vias are drawn as a filled circle or a double circle. The hole will be drawn later
|
||||||
|
int drill_rayon = GetDrillValue() / 2;
|
||||||
|
int inner_rayon = rayon - panel->GetScreen()->Unscale( 2 );
|
||||||
|
if( radius_in_pixels < 3 )
|
||||||
{
|
{
|
||||||
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon, color );
|
fast_draw = true;
|
||||||
return;
|
fillvia = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( fillvia )
|
if( fillvia )
|
||||||
GRFilledCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon, 0, color, color );
|
GRFilledCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon, 0, color, color );
|
||||||
|
|
||||||
else
|
else
|
||||||
|
{
|
||||||
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon, color );
|
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon, color );
|
||||||
|
if ( fast_draw )
|
||||||
int drill_rayon = GetDrillValue() / 2;
|
return;
|
||||||
int inner_rayon = rayon - panel->GetScreen()->Unscale( 2 );
|
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
|
||||||
|
inner_rayon, color );
|
||||||
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
|
}
|
||||||
inner_rayon, color );
|
|
||||||
|
|
||||||
// Draw the via hole if the display option allows it
|
// Draw the via hole if the display option allows it
|
||||||
if( DisplayOpt.m_DisplayViaMode != VIA_HOLE_NOT_SHOW )
|
if( DisplayOpt.m_DisplayViaMode != VIA_HOLE_NOT_SHOW )
|
||||||
|
@ -773,37 +783,35 @@ void SEGVIA::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoi
|
||||||
if( (DisplayOpt.m_DisplayViaMode == ALL_VIA_HOLE_SHOW) // Display all drill holes requested
|
if( (DisplayOpt.m_DisplayViaMode == ALL_VIA_HOLE_SHOW) // Display all drill holes requested
|
||||||
|| ( (drill_rayon > 0 ) && !IsDrillDefault() ) ) // Or Display non default holes requested
|
|| ( (drill_rayon > 0 ) && !IsDrillDefault() ) ) // Or Display non default holes requested
|
||||||
{
|
{
|
||||||
if( drill_rayon < inner_rayon ) // We can show the via hole
|
if( fillvia )
|
||||||
{
|
{
|
||||||
if( fillvia )
|
bool blackpenstate = false;
|
||||||
|
if( screen->m_IsPrinting )
|
||||||
{
|
{
|
||||||
bool blackpenstate = false;
|
blackpenstate = GetGRForceBlackPenState();
|
||||||
if( screen->m_IsPrinting )
|
GRForceBlackPen( false );
|
||||||
{
|
color = g_DrawBgColor;
|
||||||
blackpenstate = GetGRForceBlackPenState();
|
|
||||||
GRForceBlackPen( false );
|
|
||||||
color = g_DrawBgColor;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
color = BLACK; // or DARKGRAY;
|
|
||||||
|
|
||||||
if( draw_mode != GR_XOR )
|
|
||||||
GRSetDrawMode( DC, GR_COPY );
|
|
||||||
else
|
|
||||||
GRSetDrawMode( DC, GR_XOR );
|
|
||||||
|
|
||||||
if( screen->Scale( drill_rayon ) > 1 ) /* draw hole if its size is enought */
|
|
||||||
GRFilledCircle( &panel->m_ClipBox, DC, m_Start.x,
|
|
||||||
m_Start.y, drill_rayon, 0, color, color );
|
|
||||||
|
|
||||||
if( screen->m_IsPrinting )
|
|
||||||
GRForceBlackPen( blackpenstate );
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
color = BLACK; // or DARKGRAY;
|
||||||
|
|
||||||
|
if( draw_mode != GR_XOR )
|
||||||
|
GRSetDrawMode( DC, GR_COPY );
|
||||||
|
else
|
||||||
|
GRSetDrawMode( DC, GR_XOR );
|
||||||
|
|
||||||
|
if( screen->Scale( drill_rayon ) > 1 ) /* draw hole if its size is enought */
|
||||||
|
GRFilledCircle( &panel->m_ClipBox, DC, m_Start.x,
|
||||||
|
m_Start.y, drill_rayon, 0, color, color );
|
||||||
|
|
||||||
|
if( screen->m_IsPrinting )
|
||||||
|
GRForceBlackPen( blackpenstate );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if( drill_rayon < inner_rayon ) // We can show the via hole
|
||||||
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
|
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
|
||||||
drill_rayon, color );
|
drill_rayon, color );
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -905,13 +913,14 @@ void TRACK::DisplayInfo( WinEDA_DrawFrame* frame )
|
||||||
// Display full track length (in pcbnew)
|
// Display full track length (in pcbnew)
|
||||||
if( frame->m_Ident == PCB_FRAME )
|
if( frame->m_Ident == PCB_FRAME )
|
||||||
{
|
{
|
||||||
int trackLen = 0;
|
int trackLen = 0;
|
||||||
Marque_Une_Piste( board, this, NULL, &trackLen, false );
|
Marque_Une_Piste( board, this, NULL, &trackLen, false );
|
||||||
valeur_param( trackLen, msg );
|
valeur_param( trackLen, msg );
|
||||||
frame->AppendMsgPanel( _( "Track Length" ), msg, DARKCYAN );
|
frame->AppendMsgPanel( _( "Track Length" ), msg, DARKCYAN );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Function DisplayInfoBase
|
* Function DisplayInfoBase
|
||||||
* has knowledge about the frame and how and where to put status information
|
* has knowledge about the frame and how and where to put status information
|
||||||
|
|
Loading…
Reference in New Issue