Split gerbview diff and xor into two separate view modes.
Fixes https://gitlab.com/kicad/code/kicad/issues/10122
|
@ -303,6 +303,7 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
|
||||||
aBitmapInfoCache[BITMAPS::find_replace].emplace_back( BITMAPS::find_replace, wxT( "find_replace_24.png" ), 24, wxT( "light" ) );
|
aBitmapInfoCache[BITMAPS::find_replace].emplace_back( BITMAPS::find_replace, wxT( "find_replace_24.png" ), 24, wxT( "light" ) );
|
||||||
aBitmapInfoCache[BITMAPS::flag].emplace_back( BITMAPS::flag, wxT( "flag_24.png" ), 24, wxT( "light" ) );
|
aBitmapInfoCache[BITMAPS::flag].emplace_back( BITMAPS::flag, wxT( "flag_24.png" ), 24, wxT( "light" ) );
|
||||||
aBitmapInfoCache[BITMAPS::flip_board].emplace_back( BITMAPS::flip_board, wxT( "flip_board_24.png" ), 24, wxT( "light" ) );
|
aBitmapInfoCache[BITMAPS::flip_board].emplace_back( BITMAPS::flip_board, wxT( "flip_board_24.png" ), 24, wxT( "light" ) );
|
||||||
|
aBitmapInfoCache[BITMAPS::gbr_select_mode1].emplace_back( BITMAPS::gbr_select_mode1, wxT( "gbr_select_mode1_24.png" ), 24, wxT( "light" ) );
|
||||||
aBitmapInfoCache[BITMAPS::gbr_select_mode2].emplace_back( BITMAPS::gbr_select_mode2, wxT( "gbr_select_mode2_24.png" ), 24, wxT( "light" ) );
|
aBitmapInfoCache[BITMAPS::gbr_select_mode2].emplace_back( BITMAPS::gbr_select_mode2, wxT( "gbr_select_mode2_24.png" ), 24, wxT( "light" ) );
|
||||||
aBitmapInfoCache[BITMAPS::gerbview_show_negative_objects].emplace_back( BITMAPS::gerbview_show_negative_objects, wxT( "gerbview_show_negative_objects_24.png" ), 24, wxT( "light" ) );
|
aBitmapInfoCache[BITMAPS::gerbview_show_negative_objects].emplace_back( BITMAPS::gerbview_show_negative_objects, wxT( "gerbview_show_negative_objects_24.png" ), 24, wxT( "light" ) );
|
||||||
aBitmapInfoCache[BITMAPS::general_deletions].emplace_back( BITMAPS::general_deletions, wxT( "general_deletions_24.png" ), 24, wxT( "light" ) );
|
aBitmapInfoCache[BITMAPS::general_deletions].emplace_back( BITMAPS::general_deletions, wxT( "general_deletions_24.png" ), 24, wxT( "light" ) );
|
||||||
|
@ -684,6 +685,7 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
|
||||||
aBitmapInfoCache[BITMAPS::find_replace].emplace_back( BITMAPS::find_replace, wxT( "find_replace_dark_24.png" ), 24, wxT( "dark" ) );
|
aBitmapInfoCache[BITMAPS::find_replace].emplace_back( BITMAPS::find_replace, wxT( "find_replace_dark_24.png" ), 24, wxT( "dark" ) );
|
||||||
aBitmapInfoCache[BITMAPS::flag].emplace_back( BITMAPS::flag, wxT( "flag_dark_24.png" ), 24, wxT( "dark" ) );
|
aBitmapInfoCache[BITMAPS::flag].emplace_back( BITMAPS::flag, wxT( "flag_dark_24.png" ), 24, wxT( "dark" ) );
|
||||||
aBitmapInfoCache[BITMAPS::flip_board].emplace_back( BITMAPS::flip_board, wxT( "flip_board_dark_24.png" ), 24, wxT( "dark" ) );
|
aBitmapInfoCache[BITMAPS::flip_board].emplace_back( BITMAPS::flip_board, wxT( "flip_board_dark_24.png" ), 24, wxT( "dark" ) );
|
||||||
|
aBitmapInfoCache[BITMAPS::gbr_select_mode1].emplace_back( BITMAPS::gbr_select_mode1, wxT( "gbr_select_mode1_dark_24.png" ), 24, wxT( "dark" ) );
|
||||||
aBitmapInfoCache[BITMAPS::gbr_select_mode2].emplace_back( BITMAPS::gbr_select_mode2, wxT( "gbr_select_mode2_dark_24.png" ), 24, wxT( "dark" ) );
|
aBitmapInfoCache[BITMAPS::gbr_select_mode2].emplace_back( BITMAPS::gbr_select_mode2, wxT( "gbr_select_mode2_dark_24.png" ), 24, wxT( "dark" ) );
|
||||||
aBitmapInfoCache[BITMAPS::gerbview_show_negative_objects].emplace_back( BITMAPS::gerbview_show_negative_objects, wxT( "gerbview_show_negative_objects_dark_24.png" ), 24, wxT( "dark" ) );
|
aBitmapInfoCache[BITMAPS::gerbview_show_negative_objects].emplace_back( BITMAPS::gerbview_show_negative_objects, wxT( "gerbview_show_negative_objects_dark_24.png" ), 24, wxT( "dark" ) );
|
||||||
aBitmapInfoCache[BITMAPS::general_deletions].emplace_back( BITMAPS::general_deletions, wxT( "general_deletions_dark_24.png" ), 24, wxT( "dark" ) );
|
aBitmapInfoCache[BITMAPS::general_deletions].emplace_back( BITMAPS::general_deletions, wxT( "general_deletions_dark_24.png" ), 24, wxT( "dark" ) );
|
||||||
|
|
|
@ -459,6 +459,7 @@ bool GERBVIEW_FRAME::unarchiveFiles( const wxString& aFullFileName, REPORTER* aR
|
||||||
wxZipInputStream zipArchive( zipFile );
|
wxZipInputStream zipArchive( zipFile );
|
||||||
wxZipEntry* entry;
|
wxZipEntry* entry;
|
||||||
bool reported_no_more_layer = false;
|
bool reported_no_more_layer = false;
|
||||||
|
KIGFX::VIEW* view = GetCanvas()->GetView();
|
||||||
|
|
||||||
while( ( entry = zipArchive.GetNextEntry() ) )
|
while( ( entry = zipArchive.GetNextEntry() ) )
|
||||||
{
|
{
|
||||||
|
@ -560,8 +561,10 @@ bool GERBVIEW_FRAME::unarchiveFiles( const wxString& aFullFileName, REPORTER* aR
|
||||||
read_ok = Read_GERBER_File( unzipped_tempfile );
|
read_ok = Read_GERBER_File( unzipped_tempfile );
|
||||||
|
|
||||||
if( read_ok )
|
if( read_ok )
|
||||||
GetCanvas()->GetView()->SetLayerHasNegatives(
|
{
|
||||||
GERBER_DRAW_LAYER( layer ), GetGbrImage( layer )->HasNegativeItems() );
|
view->SetLayerHasNegatives( GERBER_DRAW_LAYER( layer ),
|
||||||
|
GetGbrImage( layer )->HasNegativeItems() );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Select the first added layer by default when done loading
|
// Select the first added layer by default when done loading
|
||||||
|
|
|
@ -41,6 +41,7 @@ public:
|
||||||
bool m_DisplayPageLimits;
|
bool m_DisplayPageLimits;
|
||||||
bool m_IsPrinting; ///< true when printing a page, false when drawing on screen
|
bool m_IsPrinting; ///< true when printing a page, false when drawing on screen
|
||||||
bool m_DiffMode; ///< Display layers in diff mode
|
bool m_DiffMode; ///< Display layers in diff mode
|
||||||
|
bool m_XORMode; ///< Display layers in exclusive-or mode
|
||||||
bool m_HighContrastMode; ///< High contrast mode (dim un-highlighted objects)
|
bool m_HighContrastMode; ///< High contrast mode (dim un-highlighted objects)
|
||||||
bool m_FlipGerberView; ///< Display as a mirror image
|
bool m_FlipGerberView; ///< Display as a mirror image
|
||||||
COLOR4D m_NegativeDrawColor; ///< The color used to draw negative objects, usually the
|
COLOR4D m_NegativeDrawColor; ///< The color used to draw negative objects, usually the
|
||||||
|
@ -57,6 +58,7 @@ public:
|
||||||
m_IsPrinting = false;
|
m_IsPrinting = false;
|
||||||
m_NegativeDrawColor = COLOR4D( DARKGRAY );
|
m_NegativeDrawColor = COLOR4D( DARKGRAY );
|
||||||
m_DiffMode = false;
|
m_DiffMode = false;
|
||||||
|
m_XORMode = false;
|
||||||
m_HighContrastMode = false;
|
m_HighContrastMode = false;
|
||||||
m_FlipGerberView = false;
|
m_FlipGerberView = false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -559,7 +559,7 @@ void GERBVIEW_FRAME::RemapLayers( std::unordered_map<int, int> remapping )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GERBVIEW_FRAME::UpdateDiffLayers()
|
void GERBVIEW_FRAME::UpdateXORLayers()
|
||||||
{
|
{
|
||||||
auto target = GetCanvas()->GetBackend() == GERBVIEW_DRAW_PANEL_GAL::GAL_TYPE_OPENGL
|
auto target = GetCanvas()->GetBackend() == GERBVIEW_DRAW_PANEL_GAL::GAL_TYPE_OPENGL
|
||||||
? KIGFX::TARGET_CACHED
|
? KIGFX::TARGET_CACHED
|
||||||
|
@ -570,7 +570,7 @@ void GERBVIEW_FRAME::UpdateDiffLayers()
|
||||||
|
|
||||||
for( int i = 0; i < GERBER_DRAWLAYERS_COUNT; i++ )
|
for( int i = 0; i < GERBER_DRAWLAYERS_COUNT; i++ )
|
||||||
{
|
{
|
||||||
view->SetLayerDiff( GERBER_DRAW_LAYER( i ), gvconfig()->m_Display.m_DiffMode );
|
view->SetLayerDiff( GERBER_DRAW_LAYER( i ), gvconfig()->m_Display.m_XORMode );
|
||||||
|
|
||||||
// Caching doesn't work with layered rendering of diff'd layers
|
// Caching doesn't work with layered rendering of diff'd layers
|
||||||
if( gvconfig()->m_Display.m_DiffMode )
|
if( gvconfig()->m_Display.m_DiffMode )
|
||||||
|
@ -799,8 +799,8 @@ void GERBVIEW_FRAME::SetActiveLayer( int aLayer, bool doLayerWidgetUpdate )
|
||||||
{
|
{
|
||||||
m_activeLayer = aLayer;
|
m_activeLayer = aLayer;
|
||||||
|
|
||||||
if( gvconfig()->m_Display.m_DiffMode )
|
if( gvconfig()->m_Display.m_XORMode )
|
||||||
UpdateDiffLayers();
|
UpdateXORLayers();
|
||||||
|
|
||||||
if( doLayerWidgetUpdate )
|
if( doLayerWidgetUpdate )
|
||||||
m_LayersManager->SelectLayer( aLayer );
|
m_LayersManager->SelectLayer( aLayer );
|
||||||
|
@ -1079,6 +1079,12 @@ void GERBVIEW_FRAME::setupUIConditions()
|
||||||
return gvconfig()->m_Display.m_DiffMode;
|
return gvconfig()->m_Display.m_DiffMode;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
auto xorModeCond =
|
||||||
|
[this] ( const SELECTION& )
|
||||||
|
{
|
||||||
|
return gvconfig()->m_Display.m_XORMode;
|
||||||
|
};
|
||||||
|
|
||||||
auto highContrastModeCond =
|
auto highContrastModeCond =
|
||||||
[this] ( const SELECTION& )
|
[this] ( const SELECTION& )
|
||||||
{
|
{
|
||||||
|
@ -1103,6 +1109,7 @@ void GERBVIEW_FRAME::setupUIConditions()
|
||||||
mgr->SetConditions( GERBVIEW_ACTIONS::negativeObjectDisplay, CHECK( negativeObjectsCond ) );
|
mgr->SetConditions( GERBVIEW_ACTIONS::negativeObjectDisplay, CHECK( negativeObjectsCond ) );
|
||||||
mgr->SetConditions( GERBVIEW_ACTIONS::dcodeDisplay, CHECK( dcodeCond ) );
|
mgr->SetConditions( GERBVIEW_ACTIONS::dcodeDisplay, CHECK( dcodeCond ) );
|
||||||
mgr->SetConditions( GERBVIEW_ACTIONS::toggleDiffMode, CHECK( diffModeCond ) );
|
mgr->SetConditions( GERBVIEW_ACTIONS::toggleDiffMode, CHECK( diffModeCond ) );
|
||||||
|
mgr->SetConditions( GERBVIEW_ACTIONS::toggleXORMode, CHECK( xorModeCond ) );
|
||||||
mgr->SetConditions( GERBVIEW_ACTIONS::flipGerberView, CHECK( flipGerberCond ) );
|
mgr->SetConditions( GERBVIEW_ACTIONS::flipGerberView, CHECK( flipGerberCond ) );
|
||||||
mgr->SetConditions( ACTIONS::highContrastMode, CHECK( highContrastModeCond ) );
|
mgr->SetConditions( ACTIONS::highContrastMode, CHECK( highContrastModeCond ) );
|
||||||
mgr->SetConditions( GERBVIEW_ACTIONS::toggleLayerManager, CHECK( layersManagerShownCondition ) );
|
mgr->SetConditions( GERBVIEW_ACTIONS::toggleLayerManager, CHECK( layersManagerShownCondition ) );
|
||||||
|
@ -1118,8 +1125,7 @@ void GERBVIEW_FRAME::CommonSettingsChanged( bool aEnvVarsChanged, bool aTextVars
|
||||||
|
|
||||||
SetPageSettings( PAGE_INFO( gvconfig()->m_Appearance.page_type ) );
|
SetPageSettings( PAGE_INFO( gvconfig()->m_Appearance.page_type ) );
|
||||||
|
|
||||||
if( gvconfig()->m_Display.m_DiffMode )
|
UpdateXORLayers();
|
||||||
UpdateDiffLayers();
|
|
||||||
|
|
||||||
SetElementVisibility( LAYER_DCODES, gvconfig()->m_Appearance.show_dcodes );
|
SetElementVisibility( LAYER_DCODES, gvconfig()->m_Appearance.show_dcodes );
|
||||||
|
|
||||||
|
|
|
@ -361,10 +361,10 @@ public:
|
||||||
void RemapLayers( std::unordered_map<int, int> remapping );
|
void RemapLayers( std::unordered_map<int, int> remapping );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update each layers' differential option. Needed when diff mode changes or the active layer
|
* Update each layers' differential option. Needed when xor mode changes or the active layer
|
||||||
* changes (due to changing rendering order) which matters for diff mode but not otherwise.
|
* changes (due to changing rendering order) which matters for xor mode but not otherwise.
|
||||||
*/
|
*/
|
||||||
void UpdateDiffLayers();
|
void UpdateXORLayers();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Do nothing in GerbView.
|
* Do nothing in GerbView.
|
||||||
|
|
|
@ -60,10 +60,15 @@ void GERBVIEW_RENDER_SETTINGS::LoadColors( const COLOR_SETTINGS* aSettings )
|
||||||
for( int i = GERBVIEW_LAYER_ID_START;
|
for( int i = GERBVIEW_LAYER_ID_START;
|
||||||
i < GERBVIEW_LAYER_ID_START + GERBER_DRAWLAYERS_COUNT; i++ )
|
i < GERBVIEW_LAYER_ID_START + GERBER_DRAWLAYERS_COUNT; i++ )
|
||||||
{
|
{
|
||||||
m_layerColors[i] = aSettings->GetColor( i );
|
COLOR4D baseColor = aSettings->GetColor( i );
|
||||||
m_layerColorsHi[i] = m_layerColors[i].Brightened( 0.5 );
|
|
||||||
m_layerColorsSel[i] = m_layerColors[i].Brightened( 0.8 );
|
if( gvconfig()->m_Display.m_DiffMode )
|
||||||
m_layerColorsDark[i] = m_layerColors[i].Darkened( 0.25 );
|
baseColor.a = 0.75;
|
||||||
|
|
||||||
|
m_layerColors[i] = baseColor;
|
||||||
|
m_layerColorsHi[i] = baseColor.Brightened( 0.5 );
|
||||||
|
m_layerColorsSel[i] = baseColor.Brightened( 0.8 );
|
||||||
|
m_layerColorsDark[i] = baseColor.Darkened( 0.25 );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw layers specific to Gerbview:
|
// Draw layers specific to Gerbview:
|
||||||
|
|
|
@ -200,6 +200,7 @@ void GERBVIEW_FRAME::ReCreateMenuBar()
|
||||||
viewMenu->Add( GERBVIEW_ACTIONS::dcodeDisplay, ACTION_MENU::CHECK );
|
viewMenu->Add( GERBVIEW_ACTIONS::dcodeDisplay, ACTION_MENU::CHECK );
|
||||||
viewMenu->Add( GERBVIEW_ACTIONS::negativeObjectDisplay, ACTION_MENU::CHECK );
|
viewMenu->Add( GERBVIEW_ACTIONS::negativeObjectDisplay, ACTION_MENU::CHECK );
|
||||||
viewMenu->Add( GERBVIEW_ACTIONS::toggleDiffMode, ACTION_MENU::CHECK );
|
viewMenu->Add( GERBVIEW_ACTIONS::toggleDiffMode, ACTION_MENU::CHECK );
|
||||||
|
viewMenu->Add( GERBVIEW_ACTIONS::toggleXORMode, ACTION_MENU::CHECK );
|
||||||
viewMenu->Add( ACTIONS::highContrastMode, ACTION_MENU::CHECK );
|
viewMenu->Add( ACTIONS::highContrastMode, ACTION_MENU::CHECK );
|
||||||
viewMenu->Add( GERBVIEW_ACTIONS::flipGerberView, ACTION_MENU::CHECK );
|
viewMenu->Add( GERBVIEW_ACTIONS::flipGerberView, ACTION_MENU::CHECK );
|
||||||
|
|
||||||
|
|
|
@ -255,7 +255,9 @@ void GERBVIEW_FRAME::ReCreateOptToolbar()
|
||||||
m_optionsToolBar->Add( GERBVIEW_ACTIONS::polygonsDisplayOutlines, ACTION_TOOLBAR::TOGGLE );
|
m_optionsToolBar->Add( GERBVIEW_ACTIONS::polygonsDisplayOutlines, ACTION_TOOLBAR::TOGGLE );
|
||||||
m_optionsToolBar->Add( GERBVIEW_ACTIONS::negativeObjectDisplay, ACTION_TOOLBAR::TOGGLE );
|
m_optionsToolBar->Add( GERBVIEW_ACTIONS::negativeObjectDisplay, ACTION_TOOLBAR::TOGGLE );
|
||||||
m_optionsToolBar->Add( GERBVIEW_ACTIONS::dcodeDisplay, ACTION_TOOLBAR::TOGGLE );
|
m_optionsToolBar->Add( GERBVIEW_ACTIONS::dcodeDisplay, ACTION_TOOLBAR::TOGGLE );
|
||||||
|
m_optionsToolBar->AddScaledSeparator( this );
|
||||||
m_optionsToolBar->Add( GERBVIEW_ACTIONS::toggleDiffMode, ACTION_TOOLBAR::TOGGLE );
|
m_optionsToolBar->Add( GERBVIEW_ACTIONS::toggleDiffMode, ACTION_TOOLBAR::TOGGLE );
|
||||||
|
m_optionsToolBar->Add( GERBVIEW_ACTIONS::toggleXORMode, ACTION_TOOLBAR::TOGGLE );
|
||||||
m_optionsToolBar->Add( ACTIONS::highContrastMode, ACTION_TOOLBAR::TOGGLE );
|
m_optionsToolBar->Add( ACTIONS::highContrastMode, ACTION_TOOLBAR::TOGGLE );
|
||||||
m_optionsToolBar->Add( GERBVIEW_ACTIONS::flipGerberView, ACTION_TOOLBAR::TOGGLE );
|
m_optionsToolBar->Add( GERBVIEW_ACTIONS::flipGerberView, ACTION_TOOLBAR::TOGGLE );
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2017 Jon Evans <jon@craftyjon.com>
|
* Copyright (C) 2017 Jon Evans <jon@craftyjon.com>
|
||||||
* Copyright (C) 2017-2019 KiCad Developers, see AUTHORS.txt for contributors.
|
* Copyright (C) 2017-2022 KiCad Developers, see AUTHORS.txt for contributors.
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify it
|
||||||
* under the terms of the GNU General Public License as published by the
|
* under the terms of the GNU General Public License as published by the
|
||||||
|
@ -188,7 +188,12 @@ TOOL_ACTION GERBVIEW_ACTIONS::dcodeDisplay( "gerbview.Control.dcodeDisplay",
|
||||||
|
|
||||||
TOOL_ACTION GERBVIEW_ACTIONS::toggleDiffMode( "gerbview.Control.toggleDiffMode",
|
TOOL_ACTION GERBVIEW_ACTIONS::toggleDiffMode( "gerbview.Control.toggleDiffMode",
|
||||||
AS_GLOBAL, 0, "",
|
AS_GLOBAL, 0, "",
|
||||||
_( "Show in Differential Mode" ), _( "Show layers in diff (compare) mode" ),
|
_( "Show in Differential Mode" ), _( "Show layers in differential compare mode" ),
|
||||||
|
BITMAPS::gbr_select_mode1 );
|
||||||
|
|
||||||
|
TOOL_ACTION GERBVIEW_ACTIONS::toggleXORMode( "gerbview.Control.toggleXORMode",
|
||||||
|
AS_GLOBAL, 0, "",
|
||||||
|
_( "Show in XOR Mode" ), _( "Show layers in exclusive-or compare mode" ),
|
||||||
BITMAPS::gbr_select_mode2 );
|
BITMAPS::gbr_select_mode2 );
|
||||||
|
|
||||||
TOOL_ACTION GERBVIEW_ACTIONS::flipGerberView( "gerbview.Control.flipGerberView",
|
TOOL_ACTION GERBVIEW_ACTIONS::flipGerberView( "gerbview.Control.flipGerberView",
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2017 Jon Evans <jon@craftyjon.com>
|
* Copyright (C) 2017 Jon Evans <jon@craftyjon.com>
|
||||||
* Copyright (C) 2017-2021 KiCad Developers, see AUTHORS.txt for contributors.
|
* Copyright (C) 2017-2022 KiCad Developers, see AUTHORS.txt for contributors.
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify it
|
||||||
* under the terms of the GNU General Public License as published by the
|
* under the terms of the GNU General Public License as published by the
|
||||||
|
@ -64,6 +64,7 @@ public:
|
||||||
static TOOL_ACTION negativeObjectDisplay;
|
static TOOL_ACTION negativeObjectDisplay;
|
||||||
static TOOL_ACTION dcodeDisplay;
|
static TOOL_ACTION dcodeDisplay;
|
||||||
static TOOL_ACTION toggleDiffMode;
|
static TOOL_ACTION toggleDiffMode;
|
||||||
|
static TOOL_ACTION toggleXORMode;
|
||||||
static TOOL_ACTION flipGerberView;
|
static TOOL_ACTION flipGerberView;
|
||||||
|
|
||||||
// Layer control
|
// Layer control
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2017 Jon Evans <jon@craftyjon.com>
|
* Copyright (C) 2017 Jon Evans <jon@craftyjon.com>
|
||||||
* Copyright (C) 2017-2021 KiCad Developers, see AUTHORS.txt for contributors.
|
* Copyright (C) 2017-2022 KiCad Developers, see AUTHORS.txt for contributors.
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify it
|
||||||
* under the terms of the GNU General Public License as published by the
|
* under the terms of the GNU General Public License as published by the
|
||||||
|
@ -307,7 +307,21 @@ int GERBVIEW_CONTROL::DisplayControl( const TOOL_EVENT& aEvent )
|
||||||
else if( aEvent.IsAction( &GERBVIEW_ACTIONS::toggleDiffMode ) )
|
else if( aEvent.IsAction( &GERBVIEW_ACTIONS::toggleDiffMode ) )
|
||||||
{
|
{
|
||||||
cfg->m_Display.m_DiffMode = !cfg->m_Display.m_DiffMode;
|
cfg->m_Display.m_DiffMode = !cfg->m_Display.m_DiffMode;
|
||||||
m_frame->UpdateDiffLayers();
|
|
||||||
|
if( cfg->m_Display.m_DiffMode && cfg->m_Display.m_XORMode )
|
||||||
|
{
|
||||||
|
cfg->m_Display.m_XORMode = false;
|
||||||
|
m_frame->UpdateXORLayers();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if( aEvent.IsAction( &GERBVIEW_ACTIONS::toggleXORMode ) )
|
||||||
|
{
|
||||||
|
cfg->m_Display.m_XORMode = !cfg->m_Display.m_XORMode;
|
||||||
|
|
||||||
|
if( cfg->m_Display.m_XORMode && cfg->m_Display.m_DiffMode )
|
||||||
|
cfg->m_Display.m_DiffMode = false;
|
||||||
|
|
||||||
|
m_frame->UpdateXORLayers();
|
||||||
}
|
}
|
||||||
else if( aEvent.IsAction( &GERBVIEW_ACTIONS::flipGerberView ) )
|
else if( aEvent.IsAction( &GERBVIEW_ACTIONS::flipGerberView ) )
|
||||||
{
|
{
|
||||||
|
@ -533,6 +547,7 @@ void GERBVIEW_CONTROL::setTransitions()
|
||||||
Go( &GERBVIEW_CONTROL::DisplayControl, ACTIONS::highContrastMode.MakeEvent() );
|
Go( &GERBVIEW_CONTROL::DisplayControl, ACTIONS::highContrastMode.MakeEvent() );
|
||||||
Go( &GERBVIEW_CONTROL::DisplayControl, ACTIONS::highContrastModeCycle.MakeEvent() );
|
Go( &GERBVIEW_CONTROL::DisplayControl, ACTIONS::highContrastModeCycle.MakeEvent() );
|
||||||
Go( &GERBVIEW_CONTROL::DisplayControl, GERBVIEW_ACTIONS::toggleDiffMode.MakeEvent() );
|
Go( &GERBVIEW_CONTROL::DisplayControl, GERBVIEW_ACTIONS::toggleDiffMode.MakeEvent() );
|
||||||
|
Go( &GERBVIEW_CONTROL::DisplayControl, GERBVIEW_ACTIONS::toggleXORMode.MakeEvent() );
|
||||||
Go( &GERBVIEW_CONTROL::DisplayControl, GERBVIEW_ACTIONS::flipGerberView.MakeEvent() );
|
Go( &GERBVIEW_CONTROL::DisplayControl, GERBVIEW_ACTIONS::flipGerberView.MakeEvent() );
|
||||||
|
|
||||||
Go( &GERBVIEW_CONTROL::UpdateMessagePanel, EVENTS::SelectedEvent );
|
Go( &GERBVIEW_CONTROL::UpdateMessagePanel, EVENTS::SelectedEvent );
|
||||||
|
|
|
@ -280,6 +280,7 @@ set( BMAPS_MID
|
||||||
find_replace
|
find_replace
|
||||||
flag
|
flag
|
||||||
flip_board
|
flip_board
|
||||||
|
gbr_select_mode1
|
||||||
gbr_select_mode2
|
gbr_select_mode2
|
||||||
gerbview_show_negative_objects
|
gerbview_show_negative_objects
|
||||||
general_deletions
|
general_deletions
|
||||||
|
|
After Width: | Height: | Size: 545 B |
After Width: | Height: | Size: 527 B |
Before Width: | Height: | Size: 603 B After Width: | Height: | Size: 564 B |
Before Width: | Height: | Size: 604 B After Width: | Height: | Size: 593 B |
|
@ -0,0 +1,111 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
height="24"
|
||||||
|
width="24"
|
||||||
|
version="1.1"
|
||||||
|
id="svg2"
|
||||||
|
inkscape:version="1.2.1 (9c6d41e, 2022-07-14)"
|
||||||
|
sodipodi:docname="gbr_select_mode1.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||||
|
<metadata
|
||||||
|
id="metadata40">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title />
|
||||||
|
<cc:license
|
||||||
|
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||||
|
</cc:Work>
|
||||||
|
<cc:License
|
||||||
|
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||||
|
<cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||||
|
<cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||||
|
<cc:prohibits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#CommercialUse" />
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||||
|
<cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
|
||||||
|
</cc:License>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1309"
|
||||||
|
inkscape:window-height="861"
|
||||||
|
id="namedview38"
|
||||||
|
showgrid="true"
|
||||||
|
inkscape:snap-to-guides="false"
|
||||||
|
inkscape:snap-grids="true"
|
||||||
|
inkscape:zoom="16.236259"
|
||||||
|
inkscape:cx="18.877501"
|
||||||
|
inkscape:cy="19.123863"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="38"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="svg2"
|
||||||
|
inkscape:document-rotation="0"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1">
|
||||||
|
<inkscape:grid
|
||||||
|
type="xygrid"
|
||||||
|
id="grid3017"
|
||||||
|
empspacing="2"
|
||||||
|
visible="true"
|
||||||
|
enabled="true"
|
||||||
|
snapvisiblegridlinesonly="true"
|
||||||
|
spacingx="0.5"
|
||||||
|
spacingy="0.5"
|
||||||
|
originx="0"
|
||||||
|
originy="0" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<defs
|
||||||
|
id="defs4" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1.6382539,0,0,1.5572263,-0.2427793,0.36314149)"
|
||||||
|
id="g16"
|
||||||
|
style="opacity:1">
|
||||||
|
<rect
|
||||||
|
height="16"
|
||||||
|
width="16"
|
||||||
|
y="0"
|
||||||
|
x="0"
|
||||||
|
id="rect18"
|
||||||
|
style="fill-opacity:0" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="ccccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path3831"
|
||||||
|
d="m 23.5,-0.5 h 5 v 22 h -28 z"
|
||||||
|
style="fill:#42B8EB;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
style="mix-blend-mode:exclusion;fill:#f2647e;fill-opacity:0.71;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 15.5,-0.5 h 13 v 13 h -28 z"
|
||||||
|
id="rect3828"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccc" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.6 KiB |
|
@ -1,18 +1,18 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<svg
|
<svg
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
height="24"
|
height="24"
|
||||||
width="24"
|
width="24"
|
||||||
version="1.1"
|
version="1.1"
|
||||||
id="svg2"
|
id="svg2"
|
||||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
inkscape:version="1.2.1 (9c6d41e, 2022-07-14)"
|
||||||
sodipodi:docname="gbr_select_mode2.svg">
|
sodipodi:docname="gbr_select_mode2.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||||
<metadata
|
<metadata
|
||||||
id="metadata40">
|
id="metadata40">
|
||||||
<rdf:RDF>
|
<rdf:RDF>
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
<dc:format>image/svg+xml</dc:format>
|
<dc:format>image/svg+xml</dc:format>
|
||||||
<dc:type
|
<dc:type
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
<dc:title></dc:title>
|
<dc:title />
|
||||||
<cc:license
|
<cc:license
|
||||||
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||||
</cc:Work>
|
</cc:Work>
|
||||||
|
@ -53,20 +53,23 @@
|
||||||
guidetolerance="10"
|
guidetolerance="10"
|
||||||
inkscape:pageopacity="0"
|
inkscape:pageopacity="0"
|
||||||
inkscape:pageshadow="2"
|
inkscape:pageshadow="2"
|
||||||
inkscape:window-width="3840"
|
inkscape:window-width="1510"
|
||||||
inkscape:window-height="2099"
|
inkscape:window-height="750"
|
||||||
id="namedview38"
|
id="namedview38"
|
||||||
showgrid="true"
|
showgrid="true"
|
||||||
inkscape:snap-to-guides="false"
|
inkscape:snap-to-guides="false"
|
||||||
inkscape:snap-grids="true"
|
inkscape:snap-grids="true"
|
||||||
inkscape:zoom="16.236259"
|
inkscape:zoom="16.236259"
|
||||||
inkscape:cx="18.442399"
|
inkscape:cx="22.66532"
|
||||||
inkscape:cy="18.96033"
|
inkscape:cy="15.397636"
|
||||||
inkscape:window-x="0"
|
inkscape:window-x="0"
|
||||||
inkscape:window-y="37"
|
inkscape:window-y="38"
|
||||||
inkscape:window-maximized="1"
|
inkscape:window-maximized="0"
|
||||||
inkscape:current-layer="svg2"
|
inkscape:current-layer="svg2"
|
||||||
inkscape:document-rotation="0">
|
inkscape:document-rotation="0"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1">
|
||||||
<inkscape:grid
|
<inkscape:grid
|
||||||
type="xygrid"
|
type="xygrid"
|
||||||
id="grid3017"
|
id="grid3017"
|
||||||
|
@ -98,9 +101,9 @@
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3831"
|
id="path3831"
|
||||||
d="m 23.5,-0.5 h 5 v 22 h -28 z"
|
d="m 23.5,-0.5 h 5 v 22 h -28 z"
|
||||||
style="fill:#42B8EB;fill-opacity:1;stroke:#DED3DD;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:#42B8EB;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
<path
|
<path
|
||||||
style="fill:#f2647e;fill-opacity:0.70999998;stroke:#DED3DD;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:#f2647e;fill-opacity:0.70999998;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m 15.5,-0.5 h 13 v 13 h -28 z"
|
d="m 15.5,-0.5 h 13 v 13 h -28 z"
|
||||||
id="rect3828"
|
id="rect3828"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
|
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.6 KiB |
|
@ -0,0 +1,111 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
height="24"
|
||||||
|
width="24"
|
||||||
|
version="1.1"
|
||||||
|
id="svg2"
|
||||||
|
inkscape:version="1.2.1 (9c6d41e, 2022-07-14)"
|
||||||
|
sodipodi:docname="gbr_select_mode1.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||||
|
<metadata
|
||||||
|
id="metadata40">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title />
|
||||||
|
<cc:license
|
||||||
|
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||||
|
</cc:Work>
|
||||||
|
<cc:License
|
||||||
|
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||||
|
<cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||||
|
<cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||||
|
<cc:prohibits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#CommercialUse" />
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||||
|
<cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
|
||||||
|
</cc:License>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1309"
|
||||||
|
inkscape:window-height="938"
|
||||||
|
id="namedview38"
|
||||||
|
showgrid="true"
|
||||||
|
inkscape:snap-to-guides="false"
|
||||||
|
inkscape:snap-grids="true"
|
||||||
|
inkscape:zoom="16.236259"
|
||||||
|
inkscape:cx="17.892053"
|
||||||
|
inkscape:cy="19.647383"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="38"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="svg2"
|
||||||
|
inkscape:document-rotation="0"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1">
|
||||||
|
<inkscape:grid
|
||||||
|
type="xygrid"
|
||||||
|
id="grid3017"
|
||||||
|
empspacing="2"
|
||||||
|
visible="true"
|
||||||
|
enabled="true"
|
||||||
|
snapvisiblegridlinesonly="true"
|
||||||
|
spacingx="0.5"
|
||||||
|
spacingy="0.5"
|
||||||
|
originx="0"
|
||||||
|
originy="0" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<defs
|
||||||
|
id="defs4" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1.6382539,0,0,1.5572263,-0.2427793,0.36314149)"
|
||||||
|
id="g16"
|
||||||
|
style="opacity:1">
|
||||||
|
<rect
|
||||||
|
height="16"
|
||||||
|
width="16"
|
||||||
|
y="0"
|
||||||
|
x="0"
|
||||||
|
id="rect18"
|
||||||
|
style="fill-opacity:0" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="ccccc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path3831"
|
||||||
|
d="m 23.5,-0.5 h 5 v 22 h -28 z"
|
||||||
|
style="mix-blend-mode:multiply;fill:#1a81c4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
style="mix-blend-mode:exclusion;fill:#bf2641;fill-opacity:0.71;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 15.5,-0.5 h 13 v 13 h -28 z"
|
||||||
|
id="rect3828"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccc" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.6 KiB |
|
@ -1,18 +1,18 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<svg
|
<svg
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
height="24"
|
height="24"
|
||||||
width="24"
|
width="24"
|
||||||
version="1.1"
|
version="1.1"
|
||||||
id="svg2"
|
id="svg2"
|
||||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
inkscape:version="1.2.1 (9c6d41e, 2022-07-14)"
|
||||||
sodipodi:docname="gbr_select_mode2.svg">
|
sodipodi:docname="gbr_select_mode2.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||||
<metadata
|
<metadata
|
||||||
id="metadata40">
|
id="metadata40">
|
||||||
<rdf:RDF>
|
<rdf:RDF>
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
<dc:format>image/svg+xml</dc:format>
|
<dc:format>image/svg+xml</dc:format>
|
||||||
<dc:type
|
<dc:type
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
<dc:title></dc:title>
|
<dc:title />
|
||||||
<cc:license
|
<cc:license
|
||||||
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||||
</cc:Work>
|
</cc:Work>
|
||||||
|
@ -53,20 +53,23 @@
|
||||||
guidetolerance="10"
|
guidetolerance="10"
|
||||||
inkscape:pageopacity="0"
|
inkscape:pageopacity="0"
|
||||||
inkscape:pageshadow="2"
|
inkscape:pageshadow="2"
|
||||||
inkscape:window-width="3840"
|
inkscape:window-width="1309"
|
||||||
inkscape:window-height="2099"
|
inkscape:window-height="866"
|
||||||
id="namedview38"
|
id="namedview38"
|
||||||
showgrid="true"
|
showgrid="true"
|
||||||
inkscape:snap-to-guides="false"
|
inkscape:snap-to-guides="false"
|
||||||
inkscape:snap-grids="true"
|
inkscape:snap-grids="true"
|
||||||
inkscape:zoom="16.236259"
|
inkscape:zoom="16.236259"
|
||||||
inkscape:cx="18.442399"
|
inkscape:cx="12.164132"
|
||||||
inkscape:cy="18.96033"
|
inkscape:cy="-2.0324879"
|
||||||
inkscape:window-x="0"
|
inkscape:window-x="0"
|
||||||
inkscape:window-y="37"
|
inkscape:window-y="38"
|
||||||
inkscape:window-maximized="1"
|
inkscape:window-maximized="0"
|
||||||
inkscape:current-layer="svg2"
|
inkscape:current-layer="svg2"
|
||||||
inkscape:document-rotation="0">
|
inkscape:document-rotation="0"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1">
|
||||||
<inkscape:grid
|
<inkscape:grid
|
||||||
type="xygrid"
|
type="xygrid"
|
||||||
id="grid3017"
|
id="grid3017"
|
||||||
|
@ -98,9 +101,9 @@
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3831"
|
id="path3831"
|
||||||
d="m 23.5,-0.5 h 5 v 22 h -28 z"
|
d="m 23.5,-0.5 h 5 v 22 h -28 z"
|
||||||
style="fill:#1a81c4;fill-opacity:1;stroke:#545454;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:#1a81c4;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
<path
|
<path
|
||||||
style="fill:#bf2641;fill-opacity:0.70999998;stroke:#545454;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:#bf2641;fill-opacity:0.70999998;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m 15.5,-0.5 h 13 v 13 h -28 z"
|
d="m 15.5,-0.5 h 13 v 13 h -28 z"
|
||||||
id="rect3828"
|
id="rect3828"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
|
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.6 KiB |