Clean up terminology around active & high contrast layers.
This commit is contained in:
parent
70f329df91
commit
bb753aaadf
|
@ -376,8 +376,8 @@ void EDA_DRAW_PANEL_GAL::SetHighContrastLayer( int aLayer )
|
||||||
|
|
||||||
SetTopLayer( aLayer );
|
SetTopLayer( aLayer );
|
||||||
|
|
||||||
rSettings->ClearActiveLayers();
|
rSettings->ClearHighContrastLayers();
|
||||||
rSettings->SetActiveLayer( aLayer );
|
rSettings->SetLayerIsHighContrast( aLayer );
|
||||||
|
|
||||||
m_view->UpdateAllLayersColor();
|
m_view->UpdateAllLayersColor();
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,7 @@ RENDER_SETTINGS::RENDER_SETTINGS() :
|
||||||
m_printDC( nullptr )
|
m_printDC( nullptr )
|
||||||
{
|
{
|
||||||
// Set the default initial values
|
// Set the default initial values
|
||||||
|
m_activeLayer = F_Cu;
|
||||||
m_highlightFactor = 0.5f;
|
m_highlightFactor = 0.5f;
|
||||||
m_selectFactor = 0.5f;
|
m_selectFactor = 0.5f;
|
||||||
m_highlightEnabled = false;
|
m_highlightEnabled = false;
|
||||||
|
|
|
@ -79,9 +79,9 @@ void GERBVIEW_DRAW_PANEL_GAL::SetHighContrastLayer( int aLayer )
|
||||||
|
|
||||||
SetTopLayer( aLayer );
|
SetTopLayer( aLayer );
|
||||||
|
|
||||||
rSettings->ClearActiveLayers();
|
rSettings->ClearHighContrastLayers();
|
||||||
rSettings->SetActiveLayer( aLayer );
|
rSettings->SetLayerIsHighContrast( aLayer );
|
||||||
rSettings->SetActiveLayer( GERBER_DCODE_LAYER( aLayer ) );
|
rSettings->SetLayerIsHighContrast( GERBER_DCODE_LAYER( aLayer ) );
|
||||||
|
|
||||||
m_view->UpdateAllLayersColor();
|
m_view->UpdateAllLayersColor();
|
||||||
}
|
}
|
||||||
|
|
|
@ -139,7 +139,7 @@ COLOR4D GERBVIEW_RENDER_SETTINGS::GetColor( const VIEW_ITEM* aItem, int aLayer )
|
||||||
return m_layerColorsHi[aLayer];
|
return m_layerColorsHi[aLayer];
|
||||||
|
|
||||||
// Return grayish color for non-highlighted layers in the high contrast mode
|
// Return grayish color for non-highlighted layers in the high contrast mode
|
||||||
if( m_hiContrastEnabled && m_activeLayers.count( aLayer ) == 0)
|
if( m_hiContrastEnabled && m_highContrastLayers.count( aLayer ) == 0)
|
||||||
return m_hiContrastColor[aLayer];
|
return m_hiContrastColor[aLayer];
|
||||||
|
|
||||||
// Catch the case when highlight and high-contraste modes are enabled
|
// Catch the case when highlight and high-contraste modes are enabled
|
||||||
|
|
|
@ -58,33 +58,46 @@ public:
|
||||||
virtual void LoadColors( const COLOR_SETTINGS* aSettings ) { }
|
virtual void LoadColors( const COLOR_SETTINGS* aSettings ) { }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function SetActiveLayer
|
* Function SetLayerIsHighContrast
|
||||||
* Sets the specified layer as active - it means that it can be drawn in a specific mode
|
* Sets the specified layer as high-contrast.
|
||||||
* (eg. highlighted, so it differs from other layers).
|
|
||||||
* @param aLayerId is a layer number that should be displayed in a specific mode.
|
* @param aLayerId is a layer number that should be displayed in a specific mode.
|
||||||
* @param aEnabled is the new layer state ( true = active or false = not active).
|
* @param aEnabled is the new layer state ( true = active or false = not active).
|
||||||
*/
|
*/
|
||||||
inline void SetActiveLayer( int aLayerId, bool aEnabled = true )
|
inline void SetLayerIsHighContrast( int aLayerId, bool aEnabled = true )
|
||||||
{
|
{
|
||||||
if( aEnabled )
|
if( aEnabled )
|
||||||
m_activeLayers.insert( aLayerId );
|
m_highContrastLayers.insert( aLayerId );
|
||||||
else
|
else
|
||||||
m_activeLayers.erase( aLayerId );
|
m_highContrastLayers.erase( aLayerId );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetActiveLayers()
|
* Function GetLayerIsHighContrast
|
||||||
* Returns the set of currently active layers.
|
* Returns information whether the queried layer is marked as high-contrast.
|
||||||
* @return The set of currently active layers.
|
* @return True if the queried layer is marked as active.
|
||||||
*/
|
*/
|
||||||
const std::set<unsigned int> GetActiveLayers() const
|
inline bool GetLayerIsHighContrast( int aLayerId ) const
|
||||||
{
|
{
|
||||||
return m_activeLayers;
|
return ( m_highContrastLayers.count( aLayerId ) > 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
PCB_LAYER_ID GetActiveLayer() const
|
/**
|
||||||
|
* Function GetHighContrastLayers()
|
||||||
|
* Returns the set of currently high-contrast layers.
|
||||||
|
*/
|
||||||
|
const std::set<unsigned int> GetHighContrastLayers() const
|
||||||
{
|
{
|
||||||
for( int layer : m_activeLayers )
|
return m_highContrastLayers;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the board layer which is in high-contrast. There should only be one
|
||||||
|
* board layer which is high-contrast at any given time, although there might be
|
||||||
|
* many high-contrast synthetic (GAL) layers.
|
||||||
|
*/
|
||||||
|
PCB_LAYER_ID GetPrimaryHighContrastLayer() const
|
||||||
|
{
|
||||||
|
for( int layer : m_highContrastLayers )
|
||||||
{
|
{
|
||||||
if( layer >= PCBNEW_LAYER_ID_START && layer < PCB_LAYER_ID_COUNT )
|
if( layer >= PCBNEW_LAYER_ID_START && layer < PCB_LAYER_ID_COUNT )
|
||||||
return (PCB_LAYER_ID) layer;
|
return (PCB_LAYER_ID) layer;
|
||||||
|
@ -93,23 +106,16 @@ public:
|
||||||
return UNDEFINED_LAYER;
|
return UNDEFINED_LAYER;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
PCB_LAYER_ID GetActiveLayer() const { return m_activeLayer; }
|
||||||
* Function ClearActiveLayers
|
void SetActiveLayer( PCB_LAYER_ID aLayer ) { m_activeLayer = aLayer; }
|
||||||
* Clears the list of active layers.
|
|
||||||
*/
|
|
||||||
inline void ClearActiveLayers()
|
|
||||||
{
|
|
||||||
m_activeLayers.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function IsActiveLayer
|
* Function ClearHighContrastLayers
|
||||||
* Returns information whether the queried layer is marked as active.
|
* Clears the list of active layers.
|
||||||
* @return True if the queried layer is marked as active.
|
|
||||||
*/
|
*/
|
||||||
inline bool IsActiveLayer( int aLayerId ) const
|
inline void ClearHighContrastLayers()
|
||||||
{
|
{
|
||||||
return ( m_activeLayers.count( aLayerId ) > 0 );
|
m_highContrastLayers.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -258,16 +264,17 @@ protected:
|
||||||
*/
|
*/
|
||||||
virtual void update();
|
virtual void update();
|
||||||
|
|
||||||
std::set<unsigned int> m_activeLayers; ///< Stores active layers number
|
PCB_LAYER_ID m_activeLayer; // The active layer (as shown by appearance mgr)
|
||||||
|
std::set<unsigned int> m_highContrastLayers; // High-contrast layers (both board layers and
|
||||||
|
// synthetic GAL layers)
|
||||||
|
COLOR4D m_layerColors[LAYER_ID_COUNT]; // Layer colors
|
||||||
|
COLOR4D m_layerColorsHi[LAYER_ID_COUNT]; // Layer colors for highlighted objects
|
||||||
|
COLOR4D m_layerColorsSel[LAYER_ID_COUNT]; // Layer colors for selected objects
|
||||||
|
|
||||||
COLOR4D m_layerColors[LAYER_ID_COUNT]; // Layer colors
|
COLOR4D m_hiContrastColor[LAYER_ID_COUNT]; // High-contrast mode layer colors
|
||||||
COLOR4D m_layerColorsHi[LAYER_ID_COUNT]; // Layer colors for highlighted objects
|
COLOR4D m_layerColorsDark[LAYER_ID_COUNT]; // Darkened layer colors (for high-contrast mode)
|
||||||
COLOR4D m_layerColorsSel[LAYER_ID_COUNT]; // Layer colors for selected objects
|
|
||||||
|
|
||||||
COLOR4D m_hiContrastColor[LAYER_ID_COUNT]; // High-contrast mode layer colors
|
COLOR4D m_backgroundColor; // The background color
|
||||||
COLOR4D m_layerColorsDark[LAYER_ID_COUNT]; // Darkened layer colors (for high-contrast mode)
|
|
||||||
|
|
||||||
COLOR4D m_backgroundColor; // The background color
|
|
||||||
|
|
||||||
/// Parameters for display modes
|
/// Parameters for display modes
|
||||||
bool m_hiContrastEnabled; // High contrast display mode on/off
|
bool m_hiContrastEnabled; // High contrast display mode on/off
|
||||||
|
|
|
@ -261,10 +261,11 @@ void PCB_DRAW_PANEL_GAL::SetHighContrastLayer( PCB_LAYER_ID aLayer )
|
||||||
KIGFX::RENDER_SETTINGS* rSettings = m_view->GetPainter()->GetSettings();
|
KIGFX::RENDER_SETTINGS* rSettings = m_view->GetPainter()->GetSettings();
|
||||||
|
|
||||||
SetTopLayer( aLayer );
|
SetTopLayer( aLayer );
|
||||||
|
|
||||||
rSettings->ClearActiveLayers();
|
|
||||||
rSettings->SetActiveLayer( aLayer );
|
rSettings->SetActiveLayer( aLayer );
|
||||||
|
|
||||||
|
rSettings->ClearHighContrastLayers();
|
||||||
|
rSettings->SetLayerIsHighContrast( aLayer );
|
||||||
|
|
||||||
if( IsCopperLayer( aLayer ) )
|
if( IsCopperLayer( aLayer ) )
|
||||||
{
|
{
|
||||||
// Bring some other layers to the front in case of copper layers and make them colored
|
// Bring some other layers to the front in case of copper layers and make them colored
|
||||||
|
@ -281,20 +282,20 @@ void PCB_DRAW_PANEL_GAL::SetHighContrastLayer( PCB_LAYER_ID aLayer )
|
||||||
};
|
};
|
||||||
|
|
||||||
for( unsigned int i : layers )
|
for( unsigned int i : layers )
|
||||||
rSettings->SetActiveLayer( i );
|
rSettings->SetLayerIsHighContrast( i );
|
||||||
|
|
||||||
// Pads should be shown too
|
// Pads should be shown too
|
||||||
if( aLayer == B_Cu )
|
if( aLayer == B_Cu )
|
||||||
{
|
{
|
||||||
rSettings->SetActiveLayer( LAYER_PAD_BK );
|
rSettings->SetLayerIsHighContrast( LAYER_PAD_BK );
|
||||||
rSettings->SetActiveLayer( LAYER_MOD_BK );
|
rSettings->SetLayerIsHighContrast( LAYER_MOD_BK );
|
||||||
rSettings->SetActiveLayer( LAYER_PAD_BK_NETNAMES );
|
rSettings->SetLayerIsHighContrast( LAYER_PAD_BK_NETNAMES );
|
||||||
}
|
}
|
||||||
else if( aLayer == F_Cu )
|
else if( aLayer == F_Cu )
|
||||||
{
|
{
|
||||||
rSettings->SetActiveLayer( LAYER_PAD_FR );
|
rSettings->SetLayerIsHighContrast( LAYER_PAD_FR );
|
||||||
rSettings->SetActiveLayer( LAYER_MOD_FR );
|
rSettings->SetLayerIsHighContrast( LAYER_MOD_FR );
|
||||||
rSettings->SetActiveLayer( LAYER_PAD_FR_NETNAMES );
|
rSettings->SetLayerIsHighContrast( LAYER_PAD_FR_NETNAMES );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -230,11 +230,11 @@ COLOR4D PCB_RENDER_SETTINGS::GetColor( const VIEW_ITEM* aItem, int aLayer ) cons
|
||||||
aLayer = aLayer - LAYER_ZONE_START;
|
aLayer = aLayer - LAYER_ZONE_START;
|
||||||
|
|
||||||
// Make items invisible in "other layers hidden" contrast mode
|
// Make items invisible in "other layers hidden" contrast mode
|
||||||
if( m_contrastModeDisplay == HIGH_CONTRAST_MODE::HIDDEN && m_activeLayers.count( aLayer ) == 0 )
|
if( m_contrastModeDisplay == HIGH_CONTRAST_MODE::HIDDEN && m_highContrastLayers.count( aLayer ) == 0 )
|
||||||
return COLOR4D::CLEAR;
|
return COLOR4D::CLEAR;
|
||||||
|
|
||||||
// Hide net names in "dimmed" contrast mode
|
// Hide net names in "dimmed" contrast mode
|
||||||
if( m_hiContrastEnabled && IsNetnameLayer( aLayer ) && m_activeLayers.count( aLayer ) == 0 )
|
if( m_hiContrastEnabled && IsNetnameLayer( aLayer ) && m_highContrastLayers.count( aLayer ) == 0 )
|
||||||
return COLOR4D::CLEAR;
|
return COLOR4D::CLEAR;
|
||||||
|
|
||||||
// Normal path: get the layer base color
|
// Normal path: get the layer base color
|
||||||
|
@ -264,7 +264,7 @@ COLOR4D PCB_RENDER_SETTINGS::GetColor( const VIEW_ITEM* aItem, int aLayer ) cons
|
||||||
|
|
||||||
bool dimmedMode = m_contrastModeDisplay == HIGH_CONTRAST_MODE::DIMMED;
|
bool dimmedMode = m_contrastModeDisplay == HIGH_CONTRAST_MODE::DIMMED;
|
||||||
bool highlighted = m_highlightEnabled && m_highlightNetcodes.count( netCode );
|
bool highlighted = m_highlightEnabled && m_highlightNetcodes.count( netCode );
|
||||||
bool activeLayer = m_activeLayers.count( aLayer );
|
bool activeLayer = m_highContrastLayers.count( aLayer );
|
||||||
|
|
||||||
// Apply net color overrides
|
// Apply net color overrides
|
||||||
if( conItem && m_netColorMode == NET_COLOR_MODE::ALL && IsNetCopperLayer( aLayer ) )
|
if( conItem && m_netColorMode == NET_COLOR_MODE::ALL && IsNetCopperLayer( aLayer ) )
|
||||||
|
@ -325,7 +325,7 @@ COLOR4D PCB_RENDER_SETTINGS::GetColor( const VIEW_ITEM* aItem, int aLayer ) cons
|
||||||
const BOARD* pcb = static_cast<const BOARD*>( item->GetParent() );
|
const BOARD* pcb = static_cast<const BOARD*>( item->GetParent() );
|
||||||
bool viaActiveLayer = false;
|
bool viaActiveLayer = false;
|
||||||
|
|
||||||
for( int layer : m_activeLayers )
|
for( int layer : m_highContrastLayers )
|
||||||
{
|
{
|
||||||
auto lay_id = static_cast<PCB_LAYER_ID>( layer );
|
auto lay_id = static_cast<PCB_LAYER_ID>( layer );
|
||||||
viaActiveLayer |= via->IsOnLayer( lay_id ) && pcb->IsLayerVisible( lay_id );
|
viaActiveLayer |= via->IsOnLayer( lay_id ) && pcb->IsLayerVisible( lay_id );
|
||||||
|
|
|
@ -943,7 +943,7 @@ bool PNS_KICAD_IFACE::IsItemVisible( const PNS::ITEM* aItem )
|
||||||
{
|
{
|
||||||
int layers[KIGFX::VIEW::VIEW_MAX_LAYERS];
|
int layers[KIGFX::VIEW::VIEW_MAX_LAYERS];
|
||||||
int layers_count;
|
int layers_count;
|
||||||
auto activeLayers = m_view->GetPainter()->GetSettings()->GetActiveLayers();
|
auto activeLayers = m_view->GetPainter()->GetSettings()->GetHighContrastLayers();
|
||||||
|
|
||||||
isOnVisibleLayer = false;
|
isOnVisibleLayer = false;
|
||||||
item->ViewGetLayers( layers, layers_count );
|
item->ViewGetLayers( layers, layers_count );
|
||||||
|
|
|
@ -262,7 +262,7 @@ std::set<BOARD_ITEM*> GRID_HELPER::queryVisible( const BOX2I& aArea,
|
||||||
|
|
||||||
KIGFX::VIEW* view = m_toolMgr->GetView();
|
KIGFX::VIEW* view = m_toolMgr->GetView();
|
||||||
RENDER_SETTINGS* settings = view->GetPainter()->GetSettings();
|
RENDER_SETTINGS* settings = view->GetPainter()->GetSettings();
|
||||||
const std::set<unsigned int>& activeLayers = settings->GetActiveLayers();
|
const std::set<unsigned int>& activeLayers = settings->GetHighContrastLayers();
|
||||||
bool isHighContrast = settings->GetHighContrast();
|
bool isHighContrast = settings->GetHighContrast();
|
||||||
|
|
||||||
view->Query( aArea, selectedItems );
|
view->Query( aArea, selectedItems );
|
||||||
|
@ -397,7 +397,7 @@ void GRID_HELPER::computeAnchors( BOARD_ITEM* aItem, const VECTOR2I& aRefPos, bo
|
||||||
VECTOR2I origin;
|
VECTOR2I origin;
|
||||||
KIGFX::VIEW* view = m_toolMgr->GetView();
|
KIGFX::VIEW* view = m_toolMgr->GetView();
|
||||||
RENDER_SETTINGS* settings = view->GetPainter()->GetSettings();
|
RENDER_SETTINGS* settings = view->GetPainter()->GetSettings();
|
||||||
const std::set<unsigned int>& activeLayers = settings->GetActiveLayers();
|
const std::set<unsigned int>& activeLayers = settings->GetHighContrastLayers();
|
||||||
bool isHighContrast = settings->GetHighContrast();
|
bool isHighContrast = settings->GetHighContrast();
|
||||||
|
|
||||||
auto handlePadShape =
|
auto handlePadShape =
|
||||||
|
|
|
@ -1795,7 +1795,7 @@ bool SELECTION_TOOL::Selectable( const BOARD_ITEM* aItem, bool checkVisibilityOn
|
||||||
|
|
||||||
if( settings->GetHighContrast() )
|
if( settings->GetHighContrast() )
|
||||||
{
|
{
|
||||||
std::set<unsigned int> activeLayers = settings->GetActiveLayers();
|
std::set<unsigned int> activeLayers = settings->GetHighContrastLayers();
|
||||||
bool onActiveLayer = false;
|
bool onActiveLayer = false;
|
||||||
|
|
||||||
for( unsigned int layer : activeLayers )
|
for( unsigned int layer : activeLayers )
|
||||||
|
|
Loading…
Reference in New Issue