mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2025-09-13 17:53:11 +02:00
Increase contrast on grid origin over grid.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13532
This commit is contained in:
parent
e387953490
commit
8c72711662
@ -83,7 +83,7 @@ void ORIGIN_VIEWITEM::ViewDraw( int, VIEW* aView ) const
|
||||
VECTOR2D scaledSize = aView->ToWorld( VECTOR2D( m_size, m_size ), false );
|
||||
|
||||
// Draw a circle around the marker's center point if the style demands it
|
||||
if( ( m_style == CIRCLE_CROSS ) || ( m_style == CIRCLE_DOT ) || ( m_style == CIRCLE_X ) )
|
||||
if( m_style == CIRCLE_CROSS || m_style == CIRCLE_X )
|
||||
gal->DrawCircle( m_position, fabs( scaledSize.x ) );
|
||||
|
||||
switch( m_style )
|
||||
@ -99,49 +99,10 @@ void ORIGIN_VIEWITEM::ViewDraw( int, VIEW* aView ) const
|
||||
m_position + VECTOR2D( 0, scaledSize.y ) );
|
||||
break;
|
||||
|
||||
case DASH_LINE:
|
||||
{
|
||||
gal->DrawCircle( m_position, scaledSize.x / 4 );
|
||||
|
||||
VECTOR2D start( m_position );
|
||||
VECTOR2D end( m_end );
|
||||
BOX2I clip( VECTOR2I( start ), VECTOR2I( end.x - start.x, end.y - start.y ) );
|
||||
clip.Normalize();
|
||||
|
||||
double theta = atan2( end.y - start.y, end.x - start.x );
|
||||
std::array<double,2> strokes = { scaledSize.x, scaledSize.x / 2 };
|
||||
|
||||
for( size_t i = 0; i < 10000; ++i )
|
||||
{
|
||||
VECTOR2D next( start.x + strokes[ i % 2 ] * cos( theta ),
|
||||
start.y + strokes[ i % 2 ] * sin( theta ) );
|
||||
|
||||
// Drawing each segment can be done rounded to ints.
|
||||
VECTOR2I segStart( KiROUND( start.x ), KiROUND( start.y ) );
|
||||
VECTOR2I segEnd( KiROUND( next.x ), KiROUND( next.y ) );
|
||||
|
||||
if( ClipLine( &clip, segStart.x, segStart.y, segEnd.x, segEnd.y ) )
|
||||
break;
|
||||
else if( i % 2 == 0 )
|
||||
gal->DrawLine( segStart, segEnd );
|
||||
|
||||
start = next;
|
||||
}
|
||||
|
||||
gal->DrawCircle( m_end, scaledSize.x / 4 );
|
||||
break;
|
||||
}
|
||||
|
||||
case X:
|
||||
case CIRCLE_X:
|
||||
gal->DrawLine( m_position - scaledSize, m_position + scaledSize );
|
||||
scaledSize.y = -scaledSize.y;
|
||||
gal->DrawLine( m_position - scaledSize, m_position + scaledSize );
|
||||
break;
|
||||
|
||||
case DOT:
|
||||
case CIRCLE_DOT:
|
||||
gal->DrawCircle( m_position, scaledSize.x / 4 );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -24,8 +24,7 @@
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifndef __ORIGIN_VIEWITEM_H
|
||||
#define __ORIGIN_VIEWITEM_H
|
||||
#pragma once
|
||||
|
||||
#include <math/box2.h>
|
||||
#include <view/view.h>
|
||||
@ -44,7 +43,7 @@ public:
|
||||
/// Marker symbol styles.
|
||||
enum MARKER_STYLE
|
||||
{
|
||||
NO_GRAPHIC, CROSS, X, DOT, CIRCLE_CROSS, CIRCLE_X, CIRCLE_DOT, DASH_LINE
|
||||
NO_GRAPHIC, CROSS, CIRCLE_CROSS, CIRCLE_X
|
||||
};
|
||||
|
||||
ORIGIN_VIEWITEM( const COLOR4D& aColor = COLOR4D( 1.0, 1.0, 1.0, 1.0 ),
|
||||
@ -103,16 +102,6 @@ public:
|
||||
return VECTOR2I( m_position.x, m_position.y );
|
||||
}
|
||||
|
||||
inline void SetEndPosition( const VECTOR2D& aPosition )
|
||||
{
|
||||
m_end = aPosition;
|
||||
}
|
||||
|
||||
inline const VECTOR2I GetEndPosition() const
|
||||
{
|
||||
return VECTOR2I( m_end.x, m_end.y );
|
||||
}
|
||||
|
||||
inline void SetSize( int aSize )
|
||||
{
|
||||
m_size = aSize;
|
||||
@ -128,41 +117,17 @@ public:
|
||||
m_color = aColor;
|
||||
}
|
||||
|
||||
inline const KIGFX::COLOR4D& GetColor() const
|
||||
{
|
||||
return m_color;
|
||||
}
|
||||
|
||||
inline void SetStyle( MARKER_STYLE aStyle )
|
||||
{
|
||||
m_style = aStyle;
|
||||
}
|
||||
|
||||
inline MARKER_STYLE GetStyle() const
|
||||
{
|
||||
return m_style;
|
||||
}
|
||||
|
||||
protected:
|
||||
/// Marker coordinates.
|
||||
VECTOR2D m_position;
|
||||
|
||||
/// Marker end position for markers that stretch between points.
|
||||
VECTOR2D m_end;
|
||||
|
||||
/// Marker size (in pixels).
|
||||
int m_size;
|
||||
|
||||
/// Marker color.
|
||||
int m_size; /// (in pixels)
|
||||
COLOR4D m_color;
|
||||
|
||||
/// Marker symbol.
|
||||
MARKER_STYLE m_style;
|
||||
|
||||
/// If set, the marker will be drawn even if its position is 0,0.
|
||||
bool m_drawAtZero;
|
||||
bool m_drawAtZero; /// If set, the marker will be drawn even if its position is 0,0.
|
||||
};
|
||||
|
||||
} // namespace KIGFX
|
||||
|
||||
#endif
|
||||
|
@ -106,7 +106,17 @@ void PCB_CONTROL::Reset( RESET_REASON aReason )
|
||||
if( aReason == MODEL_RELOAD || aReason == GAL_SWITCH || aReason == REDRAW )
|
||||
{
|
||||
m_gridOrigin->SetPosition( board()->GetDesignSettings().GetGridOrigin() );
|
||||
m_gridOrigin->SetColor( m_frame->GetGridColor() );
|
||||
|
||||
double backgroundBrightness = m_frame->GetCanvas()->GetGAL()->GetClearColor().GetBrightness();
|
||||
COLOR4D color = m_frame->GetGridColor();
|
||||
|
||||
if( backgroundBrightness > 0.5 )
|
||||
color.Darken( 0.25 );
|
||||
else
|
||||
color.Brighten( 0.25 );
|
||||
|
||||
m_gridOrigin->SetColor( color );
|
||||
|
||||
getView()->Remove( m_gridOrigin.get() );
|
||||
getView()->Add( m_gridOrigin.get() );
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user