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::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::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::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" ) );
|
||||
|
@ -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::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::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::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" ) );
|
||||
|
|
|
@ -428,7 +428,7 @@ bool GERBVIEW_FRAME::unarchiveFiles( const wxString& aFullFileName, REPORTER* aR
|
|||
|
||||
// Extract the path of aFullFileName. We use it to store temporary files
|
||||
wxFileName fn( aFullFileName );
|
||||
wxString unzipDir = fn.GetPath();
|
||||
wxString unzipDir = fn.GetPath();
|
||||
|
||||
wxFFileInputStream zipFile( aFullFileName );
|
||||
|
||||
|
@ -455,16 +455,17 @@ bool GERBVIEW_FRAME::unarchiveFiles( const wxString& aFullFileName, REPORTER* aR
|
|||
wxString unzipped_tempfile = temp_fn.GetFullPath();
|
||||
|
||||
|
||||
bool success = true;
|
||||
bool success = true;
|
||||
wxZipInputStream zipArchive( zipFile );
|
||||
wxZipEntry* entry;
|
||||
bool reported_no_more_layer = false;
|
||||
wxZipEntry* entry;
|
||||
bool reported_no_more_layer = false;
|
||||
KIGFX::VIEW* view = GetCanvas()->GetView();
|
||||
|
||||
while( ( entry = zipArchive.GetNextEntry() ) )
|
||||
{
|
||||
wxString fname = entry->GetName();
|
||||
wxString fname = entry->GetName();
|
||||
wxFileName uzfn = fname;
|
||||
wxString curr_ext = uzfn.GetExt().Lower();
|
||||
wxString curr_ext = uzfn.GetExt().Lower();
|
||||
|
||||
// The archive contains Gerber and/or Excellon drill files. Use the right loader.
|
||||
// However it can contain a few other files (reports, pdf files...),
|
||||
|
@ -560,8 +561,10 @@ bool GERBVIEW_FRAME::unarchiveFiles( const wxString& aFullFileName, REPORTER* aR
|
|||
read_ok = Read_GERBER_File( unzipped_tempfile );
|
||||
|
||||
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
|
||||
|
|
|
@ -41,6 +41,7 @@ public:
|
|||
bool m_DisplayPageLimits;
|
||||
bool m_IsPrinting; ///< true when printing a page, false when drawing on screen
|
||||
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_FlipGerberView; ///< Display as a mirror image
|
||||
COLOR4D m_NegativeDrawColor; ///< The color used to draw negative objects, usually the
|
||||
|
@ -57,6 +58,7 @@ public:
|
|||
m_IsPrinting = false;
|
||||
m_NegativeDrawColor = COLOR4D( DARKGRAY );
|
||||
m_DiffMode = false;
|
||||
m_XORMode = false;
|
||||
m_HighContrastMode = 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
|
||||
? KIGFX::TARGET_CACHED
|
||||
|
@ -570,7 +570,7 @@ void GERBVIEW_FRAME::UpdateDiffLayers()
|
|||
|
||||
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
|
||||
if( gvconfig()->m_Display.m_DiffMode )
|
||||
|
@ -799,8 +799,8 @@ void GERBVIEW_FRAME::SetActiveLayer( int aLayer, bool doLayerWidgetUpdate )
|
|||
{
|
||||
m_activeLayer = aLayer;
|
||||
|
||||
if( gvconfig()->m_Display.m_DiffMode )
|
||||
UpdateDiffLayers();
|
||||
if( gvconfig()->m_Display.m_XORMode )
|
||||
UpdateXORLayers();
|
||||
|
||||
if( doLayerWidgetUpdate )
|
||||
m_LayersManager->SelectLayer( aLayer );
|
||||
|
@ -1079,6 +1079,12 @@ void GERBVIEW_FRAME::setupUIConditions()
|
|||
return gvconfig()->m_Display.m_DiffMode;
|
||||
};
|
||||
|
||||
auto xorModeCond =
|
||||
[this] ( const SELECTION& )
|
||||
{
|
||||
return gvconfig()->m_Display.m_XORMode;
|
||||
};
|
||||
|
||||
auto highContrastModeCond =
|
||||
[this] ( const SELECTION& )
|
||||
{
|
||||
|
@ -1103,6 +1109,7 @@ void GERBVIEW_FRAME::setupUIConditions()
|
|||
mgr->SetConditions( GERBVIEW_ACTIONS::negativeObjectDisplay, CHECK( negativeObjectsCond ) );
|
||||
mgr->SetConditions( GERBVIEW_ACTIONS::dcodeDisplay, CHECK( dcodeCond ) );
|
||||
mgr->SetConditions( GERBVIEW_ACTIONS::toggleDiffMode, CHECK( diffModeCond ) );
|
||||
mgr->SetConditions( GERBVIEW_ACTIONS::toggleXORMode, CHECK( xorModeCond ) );
|
||||
mgr->SetConditions( GERBVIEW_ACTIONS::flipGerberView, CHECK( flipGerberCond ) );
|
||||
mgr->SetConditions( ACTIONS::highContrastMode, CHECK( highContrastModeCond ) );
|
||||
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 ) );
|
||||
|
||||
if( gvconfig()->m_Display.m_DiffMode )
|
||||
UpdateDiffLayers();
|
||||
UpdateXORLayers();
|
||||
|
||||
SetElementVisibility( LAYER_DCODES, gvconfig()->m_Appearance.show_dcodes );
|
||||
|
||||
|
|
|
@ -361,10 +361,10 @@ public:
|
|||
void RemapLayers( std::unordered_map<int, int> remapping );
|
||||
|
||||
/**
|
||||
* Update each layers' differential option. Needed when diff mode changes or the active layer
|
||||
* changes (due to changing rendering order) which matters for diff mode but not otherwise.
|
||||
* Update each layers' differential option. Needed when xor mode changes or the active layer
|
||||
* changes (due to changing rendering order) which matters for xor mode but not otherwise.
|
||||
*/
|
||||
void UpdateDiffLayers();
|
||||
void UpdateXORLayers();
|
||||
|
||||
/*
|
||||
* Do nothing in GerbView.
|
||||
|
|
|
@ -60,10 +60,15 @@ void GERBVIEW_RENDER_SETTINGS::LoadColors( const COLOR_SETTINGS* aSettings )
|
|||
for( int i = GERBVIEW_LAYER_ID_START;
|
||||
i < GERBVIEW_LAYER_ID_START + GERBER_DRAWLAYERS_COUNT; i++ )
|
||||
{
|
||||
m_layerColors[i] = aSettings->GetColor( i );
|
||||
m_layerColorsHi[i] = m_layerColors[i].Brightened( 0.5 );
|
||||
m_layerColorsSel[i] = m_layerColors[i].Brightened( 0.8 );
|
||||
m_layerColorsDark[i] = m_layerColors[i].Darkened( 0.25 );
|
||||
COLOR4D baseColor = aSettings->GetColor( i );
|
||||
|
||||
if( gvconfig()->m_Display.m_DiffMode )
|
||||
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:
|
||||
|
|
|
@ -200,6 +200,7 @@ void GERBVIEW_FRAME::ReCreateMenuBar()
|
|||
viewMenu->Add( GERBVIEW_ACTIONS::dcodeDisplay, ACTION_MENU::CHECK );
|
||||
viewMenu->Add( GERBVIEW_ACTIONS::negativeObjectDisplay, 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( 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::negativeObjectDisplay, 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::toggleXORMode, ACTION_TOOLBAR::TOGGLE );
|
||||
m_optionsToolBar->Add( ACTIONS::highContrastMode, 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.
|
||||
*
|
||||
* 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
|
||||
* 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",
|
||||
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 );
|
||||
|
||||
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.
|
||||
*
|
||||
* 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
|
||||
* 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 dcodeDisplay;
|
||||
static TOOL_ACTION toggleDiffMode;
|
||||
static TOOL_ACTION toggleXORMode;
|
||||
static TOOL_ACTION flipGerberView;
|
||||
|
||||
// Layer control
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* 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-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
|
||||
* 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 ) )
|
||||
{
|
||||
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 ) )
|
||||
{
|
||||
|
@ -533,6 +547,7 @@ void GERBVIEW_CONTROL::setTransitions()
|
|||
Go( &GERBVIEW_CONTROL::DisplayControl, ACTIONS::highContrastMode.MakeEvent() );
|
||||
Go( &GERBVIEW_CONTROL::DisplayControl, ACTIONS::highContrastModeCycle.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::UpdateMessagePanel, EVENTS::SelectedEvent );
|
||||
|
|
|
@ -280,6 +280,7 @@ set( BMAPS_MID
|
|||
find_replace
|
||||
flag
|
||||
flip_board
|
||||
gbr_select_mode1
|
||||
gbr_select_mode2
|
||||
gerbview_show_negative_objects
|
||||
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"?>
|
||||
<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"
|
||||
width="24"
|
||||
version="1.1"
|
||||
id="svg2"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
||||
sodipodi:docname="gbr_select_mode2.svg">
|
||||
inkscape:version="1.2.1 (9c6d41e, 2022-07-14)"
|
||||
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
|
||||
id="metadata40">
|
||||
<rdf:RDF>
|
||||
|
@ -21,7 +21,7 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:title />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||
</cc:Work>
|
||||
|
@ -53,20 +53,23 @@
|
|||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="3840"
|
||||
inkscape:window-height="2099"
|
||||
inkscape:window-width="1510"
|
||||
inkscape:window-height="750"
|
||||
id="namedview38"
|
||||
showgrid="true"
|
||||
inkscape:snap-to-guides="false"
|
||||
inkscape:snap-grids="true"
|
||||
inkscape:zoom="16.236259"
|
||||
inkscape:cx="18.442399"
|
||||
inkscape:cy="18.96033"
|
||||
inkscape:cx="22.66532"
|
||||
inkscape:cy="15.397636"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="37"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-y="38"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg2"
|
||||
inkscape:document-rotation="0">
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3017"
|
||||
|
@ -98,9 +101,9 @@
|
|||
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:#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
|
||||
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"
|
||||
id="rect3828"
|
||||
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"?>
|
||||
<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"
|
||||
width="24"
|
||||
version="1.1"
|
||||
id="svg2"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
||||
sodipodi:docname="gbr_select_mode2.svg">
|
||||
inkscape:version="1.2.1 (9c6d41e, 2022-07-14)"
|
||||
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
|
||||
id="metadata40">
|
||||
<rdf:RDF>
|
||||
|
@ -21,7 +21,7 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:title />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||
</cc:Work>
|
||||
|
@ -53,20 +53,23 @@
|
|||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="3840"
|
||||
inkscape:window-height="2099"
|
||||
inkscape:window-width="1309"
|
||||
inkscape:window-height="866"
|
||||
id="namedview38"
|
||||
showgrid="true"
|
||||
inkscape:snap-to-guides="false"
|
||||
inkscape:snap-grids="true"
|
||||
inkscape:zoom="16.236259"
|
||||
inkscape:cx="18.442399"
|
||||
inkscape:cy="18.96033"
|
||||
inkscape:cx="12.164132"
|
||||
inkscape:cy="-2.0324879"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="37"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-y="38"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg2"
|
||||
inkscape:document-rotation="0">
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3017"
|
||||
|
@ -98,9 +101,9 @@
|
|||
inkscape:connector-curvature="0"
|
||||
id="path3831"
|
||||
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
|
||||
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"
|
||||
id="rect3828"
|
||||
inkscape:connector-curvature="0"
|
||||
|
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.6 KiB |