GerbView: add view menu.
Include all actions provided by left vertical toolbar in a new view menu for consistency with other main frames. Move show/hide layer manager to view menu. Simplify some toolbar and menu update logic. Fixes lp:1753337 https://bugs.launchpad.net/kicad/+bug/1753337
This commit is contained in:
parent
8567eab09a
commit
a5cca18dd1
|
@ -43,6 +43,8 @@
|
|||
#include <gerbview_layer_widget.h>
|
||||
#include <dialog_show_page_borders.h>
|
||||
|
||||
#include <gerbview_draw_panel_gal.h>
|
||||
#include <gal/graphics_abstraction_layer.h>
|
||||
#include <tool/tool_manager.h>
|
||||
#include <gerbview_painter.h>
|
||||
#include <view/view.h>
|
||||
|
@ -84,8 +86,6 @@ BEGIN_EVENT_TABLE( GERBVIEW_FRAME, EDA_DRAW_FRAME )
|
|||
EVT_MENU_RANGE( ID_PREFERENCES_HOTKEY_START, ID_PREFERENCES_HOTKEY_END,
|
||||
GERBVIEW_FRAME::Process_Config )
|
||||
|
||||
EVT_MENU( ID_MENU_GERBVIEW_SHOW_HIDE_LAYERS_MANAGER_DIALOG,
|
||||
GERBVIEW_FRAME::OnSelectOptionToolbar )
|
||||
EVT_MENU( wxID_PREFERENCES, GERBVIEW_FRAME::InstallGerberOptionsDialog )
|
||||
EVT_UPDATE_UI( ID_MENU_CANVAS_LEGACY, GERBVIEW_FRAME::OnUpdateSwitchCanvas )
|
||||
EVT_UPDATE_UI( ID_MENU_CANVAS_CAIRO, GERBVIEW_FRAME::OnUpdateSwitchCanvas )
|
||||
|
@ -126,12 +126,12 @@ BEGIN_EVENT_TABLE( GERBVIEW_FRAME, EDA_DRAW_FRAME )
|
|||
//EVT_TOOL( ID_NO_TOOL_SELECTED, GERBVIEW_FRAME::Process_Special_Functions ) // mentioned below
|
||||
EVT_TOOL( ID_ZOOM_SELECTION, GERBVIEW_FRAME::Process_Special_Functions )
|
||||
EVT_TOOL( ID_TB_MEASUREMENT_TOOL, GERBVIEW_FRAME::Process_Special_Functions )
|
||||
EVT_TOOL( ID_TB_OPTIONS_SHOW_POLAR_COORD, GERBVIEW_FRAME::OnSelectOptionToolbar )
|
||||
EVT_TOOL( ID_TB_OPTIONS_SHOW_POLYGONS_SKETCH, GERBVIEW_FRAME::OnSelectOptionToolbar )
|
||||
EVT_TOOL( ID_TB_OPTIONS_SHOW_FLASHED_ITEMS_SKETCH, GERBVIEW_FRAME::OnSelectOptionToolbar )
|
||||
EVT_TOOL( ID_TB_OPTIONS_SHOW_LINES_SKETCH, GERBVIEW_FRAME::OnSelectOptionToolbar )
|
||||
EVT_TOOL( ID_TB_OPTIONS_SHOW_POLAR_COORD, GERBVIEW_FRAME::OnToggleCoordType )
|
||||
EVT_TOOL( ID_TB_OPTIONS_SHOW_POLYGONS_SKETCH, GERBVIEW_FRAME::OnTogglePolygonDrawMode )
|
||||
EVT_TOOL( ID_TB_OPTIONS_SHOW_FLASHED_ITEMS_SKETCH, GERBVIEW_FRAME::OnToggleFlashItemDrawMode )
|
||||
EVT_TOOL( ID_TB_OPTIONS_SHOW_LINES_SKETCH, GERBVIEW_FRAME::OnToggleLineDrawMode )
|
||||
EVT_TOOL( ID_TB_OPTIONS_SHOW_LAYERS_MANAGER_VERTICAL_TOOLBAR,
|
||||
GERBVIEW_FRAME::OnSelectOptionToolbar )
|
||||
GERBVIEW_FRAME::OnToggleShowLayerManager )
|
||||
EVT_TOOL( ID_TB_OPTIONS_SHOW_DCODES, GERBVIEW_FRAME::OnSelectOptionToolbar )
|
||||
EVT_TOOL( ID_TB_OPTIONS_SHOW_NEGATIVE_ITEMS, GERBVIEW_FRAME::OnSelectOptionToolbar )
|
||||
EVT_TOOL_RANGE( ID_TB_OPTIONS_SHOW_GBR_MODE_0, ID_TB_OPTIONS_SHOW_GBR_MODE_2,
|
||||
|
@ -142,7 +142,8 @@ BEGIN_EVENT_TABLE( GERBVIEW_FRAME, EDA_DRAW_FRAME )
|
|||
// Auxiliary horizontal toolbar
|
||||
EVT_CHOICE( ID_GBR_AUX_TOOLBAR_PCB_CMP_CHOICE, GERBVIEW_FRAME::OnSelectHighlightChoice )
|
||||
EVT_CHOICE( ID_GBR_AUX_TOOLBAR_PCB_NET_CHOICE, GERBVIEW_FRAME::OnSelectHighlightChoice )
|
||||
EVT_CHOICE( ID_GBR_AUX_TOOLBAR_PCB_APERATTRIBUTES_CHOICE, GERBVIEW_FRAME::OnSelectHighlightChoice )
|
||||
EVT_CHOICE( ID_GBR_AUX_TOOLBAR_PCB_APERATTRIBUTES_CHOICE,
|
||||
GERBVIEW_FRAME::OnSelectHighlightChoice )
|
||||
|
||||
// Right click context menu
|
||||
EVT_MENU( ID_HIGHLIGHT_CMP_ITEMS, GERBVIEW_FRAME::Process_Special_Functions )
|
||||
|
@ -156,8 +157,8 @@ BEGIN_EVENT_TABLE( GERBVIEW_FRAME, EDA_DRAW_FRAME )
|
|||
EVT_UPDATE_UI( ID_TB_OPTIONS_SHOW_POLAR_COORD, GERBVIEW_FRAME::OnUpdateCoordType )
|
||||
EVT_UPDATE_UI( ID_TB_OPTIONS_SHOW_FLASHED_ITEMS_SKETCH,
|
||||
GERBVIEW_FRAME::OnUpdateFlashedItemsDrawMode )
|
||||
EVT_UPDATE_UI( ID_TB_OPTIONS_SHOW_LINES_SKETCH, GERBVIEW_FRAME::OnUpdateLinesDrawMode )
|
||||
EVT_UPDATE_UI( ID_TB_OPTIONS_SHOW_POLYGONS_SKETCH, GERBVIEW_FRAME::OnUpdatePolygonsDrawMode )
|
||||
EVT_UPDATE_UI( ID_TB_OPTIONS_SHOW_LINES_SKETCH, GERBVIEW_FRAME::OnUpdateLineDrawMode )
|
||||
EVT_UPDATE_UI( ID_TB_OPTIONS_SHOW_POLYGONS_SKETCH, GERBVIEW_FRAME::OnUpdatePolygonDrawMode )
|
||||
EVT_UPDATE_UI( ID_TB_OPTIONS_SHOW_DCODES, GERBVIEW_FRAME::OnUpdateShowDCodes )
|
||||
EVT_UPDATE_UI( ID_TB_OPTIONS_SHOW_NEGATIVE_ITEMS, GERBVIEW_FRAME::OnUpdateShowNegativeItems )
|
||||
EVT_UPDATE_UI( ID_TB_OPTIONS_SHOW_LAYERS_MANAGER_VERTICAL_TOOLBAR,
|
||||
|
@ -370,6 +371,7 @@ void GERBVIEW_FRAME::OnShowGerberSourceFile( wxCommandEvent& event )
|
|||
if( gerber_layer )
|
||||
{
|
||||
wxString editorname = Pgm().GetEditorName();
|
||||
|
||||
if( !editorname.IsEmpty() )
|
||||
{
|
||||
wxFileName fn( gerber_layer->m_FileName );
|
||||
|
@ -390,7 +392,6 @@ void GERBVIEW_FRAME::OnShowGerberSourceFile( wxCommandEvent& event )
|
|||
else
|
||||
wxMessageBox( _( "No editor defined. Please select one" ) );
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
wxString msg;
|
||||
|
@ -445,78 +446,45 @@ void GERBVIEW_FRAME::ShowChangedLanguage()
|
|||
}
|
||||
|
||||
|
||||
void GERBVIEW_FRAME::OnToggleShowLayerManager( wxCommandEvent& aEvent )
|
||||
{
|
||||
m_show_layer_manager_tools = !m_show_layer_manager_tools;
|
||||
|
||||
// show/hide auxiliary Vertical layers and visibility manager toolbar
|
||||
m_auimgr.GetPane( wxT( "m_LayersManagerToolBar" ) ).Show( m_show_layer_manager_tools );
|
||||
m_auimgr.Update();
|
||||
}
|
||||
|
||||
|
||||
void GERBVIEW_FRAME::OnSelectOptionToolbar( wxCommandEvent& event )
|
||||
{
|
||||
int id = event.GetId();
|
||||
bool state;
|
||||
bool needs_refresh = false;
|
||||
|
||||
GBR_DISPLAY_OPTIONS options = m_DisplayOptions;
|
||||
|
||||
switch( id )
|
||||
{
|
||||
case ID_MENU_GERBVIEW_SHOW_HIDE_LAYERS_MANAGER_DIALOG:
|
||||
state = ! m_show_layer_manager_tools;
|
||||
id = ID_TB_OPTIONS_SHOW_LAYERS_MANAGER_VERTICAL_TOOLBAR;
|
||||
break;
|
||||
|
||||
default:
|
||||
state = m_optionsToolBar->GetToolToggled( id );
|
||||
break;
|
||||
}
|
||||
|
||||
switch( id )
|
||||
{
|
||||
case ID_TB_OPTIONS_SHOW_POLAR_COORD:
|
||||
options.m_DisplayPolarCood = state;
|
||||
break;
|
||||
|
||||
case ID_TB_OPTIONS_SHOW_FLASHED_ITEMS_SKETCH:
|
||||
options.m_DisplayFlashedItemsFill = not state;
|
||||
needs_refresh = true;
|
||||
break;
|
||||
|
||||
case ID_TB_OPTIONS_SHOW_LINES_SKETCH:
|
||||
options.m_DisplayLinesFill = not state;
|
||||
needs_refresh = true;
|
||||
break;
|
||||
|
||||
case ID_TB_OPTIONS_SHOW_POLYGONS_SKETCH:
|
||||
options.m_DisplayPolygonsFill = not state;
|
||||
needs_refresh = true;
|
||||
break;
|
||||
|
||||
case ID_TB_OPTIONS_SHOW_DCODES:
|
||||
SetElementVisibility( LAYER_DCODES, state );
|
||||
SetElementVisibility( LAYER_DCODES, !IsElementVisible( LAYER_DCODES ) );
|
||||
m_canvas->Refresh( true );
|
||||
break;
|
||||
|
||||
case ID_TB_OPTIONS_SHOW_NEGATIVE_ITEMS:
|
||||
SetElementVisibility( LAYER_NEGATIVE_OBJECTS, state );
|
||||
needs_refresh = true;
|
||||
SetElementVisibility( LAYER_NEGATIVE_OBJECTS, !IsElementVisible( LAYER_NEGATIVE_OBJECTS ) );
|
||||
m_canvas->Refresh( true );
|
||||
break;
|
||||
|
||||
case ID_TB_OPTIONS_DIFF_MODE:
|
||||
options.m_DiffMode = state;
|
||||
options.m_DiffMode = !options.m_DiffMode;
|
||||
needs_refresh = true;
|
||||
break;
|
||||
|
||||
case ID_TB_OPTIONS_HIGH_CONTRAST_MODE:
|
||||
options.m_HighContrastMode = state;
|
||||
options.m_HighContrastMode = !options.m_HighContrastMode;
|
||||
needs_refresh = true;
|
||||
break;
|
||||
|
||||
case ID_TB_OPTIONS_SHOW_LAYERS_MANAGER_VERTICAL_TOOLBAR:
|
||||
|
||||
// show/hide auxiliary Vertical layers and visibility manager toolbar
|
||||
m_show_layer_manager_tools = state;
|
||||
m_auimgr.GetPane( wxT( "m_LayersManagerToolBar" ) ).Show( m_show_layer_manager_tools );
|
||||
m_auimgr.Update();
|
||||
GetMenuBar()->SetLabel( ID_MENU_GERBVIEW_SHOW_HIDE_LAYERS_MANAGER_DIALOG,
|
||||
m_show_layer_manager_tools ?
|
||||
_("Hide &Layers Manager" ) : _("Show &Layers Manager" ));
|
||||
break;
|
||||
|
||||
// collect GAL-only tools here:
|
||||
case ID_TB_MEASUREMENT_TOOL:
|
||||
SetToolID( id, wxCURSOR_DEFAULT, _( "Unsupported tool in this canvas" ) );
|
||||
|
@ -532,6 +500,33 @@ void GERBVIEW_FRAME::OnSelectOptionToolbar( wxCommandEvent& event )
|
|||
}
|
||||
|
||||
|
||||
void GERBVIEW_FRAME::OnTogglePolygonDrawMode( wxCommandEvent& aEvent )
|
||||
{
|
||||
GBR_DISPLAY_OPTIONS options = m_DisplayOptions;
|
||||
options.m_DisplayPolygonsFill = !m_DisplayOptions.m_DisplayPolygonsFill;
|
||||
|
||||
UpdateDisplayOptions( options );
|
||||
}
|
||||
|
||||
|
||||
void GERBVIEW_FRAME::OnToggleLineDrawMode( wxCommandEvent& aEvent )
|
||||
{
|
||||
GBR_DISPLAY_OPTIONS options = m_DisplayOptions;
|
||||
options.m_DisplayLinesFill = !m_DisplayOptions.m_DisplayLinesFill;
|
||||
|
||||
UpdateDisplayOptions( options );
|
||||
}
|
||||
|
||||
|
||||
void GERBVIEW_FRAME::OnToggleFlashItemDrawMode( wxCommandEvent& aEvent )
|
||||
{
|
||||
GBR_DISPLAY_OPTIONS options = m_DisplayOptions;
|
||||
options.m_DisplayFlashedItemsFill = !m_DisplayOptions.m_DisplayFlashedItemsFill;
|
||||
|
||||
UpdateDisplayOptions( options );
|
||||
}
|
||||
|
||||
|
||||
void GERBVIEW_FRAME::OnUpdateSelectTool( wxUpdateUIEvent& aEvent )
|
||||
{
|
||||
aEvent.Check( GetToolId() == aEvent.GetId() );
|
||||
|
|
|
@ -136,8 +136,10 @@ GERBVIEW_FRAME::GERBVIEW_FRAME( KIWAY* aKiway, wxWindow* aParent ):
|
|||
|
||||
if( m_LastGridSizeId < 0 )
|
||||
m_LastGridSizeId = 0;
|
||||
|
||||
if( m_LastGridSizeId > ID_POPUP_GRID_LEVEL_0_0_1MM-ID_POPUP_GRID_LEVEL_1000 )
|
||||
m_LastGridSizeId = ID_POPUP_GRID_LEVEL_0_0_1MM-ID_POPUP_GRID_LEVEL_1000;
|
||||
|
||||
GetScreen()->SetGrid( ID_POPUP_GRID_LEVEL_1000 + m_LastGridSizeId );
|
||||
|
||||
m_auimgr.SetManagedWindow( this );
|
||||
|
@ -1074,6 +1076,7 @@ EDA_RECT GERBVIEW_FRAME::GetGerberLayoutBoundingBox()
|
|||
return GetGerberLayout()->GetBoundingBox();
|
||||
}
|
||||
|
||||
|
||||
void GERBVIEW_FRAME::UpdateStatusBar()
|
||||
{
|
||||
EDA_DRAW_FRAME::UpdateStatusBar();
|
||||
|
@ -1177,11 +1180,13 @@ const wxString GERBVIEW_FRAME::GetZoomLevelIndicator() const
|
|||
return EDA_DRAW_FRAME::GetZoomLevelIndicator();
|
||||
}
|
||||
|
||||
|
||||
GERBER_FILE_IMAGE* GERBVIEW_FRAME::GetGbrImage( int aIdx ) const
|
||||
{
|
||||
return m_gerberLayout->GetImagesList()->GetGbrImage( aIdx );
|
||||
}
|
||||
|
||||
|
||||
unsigned GERBVIEW_FRAME::ImagesMaxCount() const
|
||||
{
|
||||
return m_gerberLayout->GetImagesList()->ImagesMaxCount();
|
||||
|
@ -1236,6 +1241,7 @@ void GERBVIEW_FRAME::UseGalCanvas( bool aEnable )
|
|||
m_LayersManager->ReFillRender();
|
||||
|
||||
ReCreateOptToolbar();
|
||||
ReCreateMenuBar();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2016 Jean-Pierre Charras, jp.charras at wanadoo.fr
|
||||
* Copyright (C) 2013 Wayne Stambaugh <stambaughw@verizon.net>
|
||||
* Copyright (C) 2013 Wayne Stambaugh <stambaughw@gmail.com>
|
||||
* Copyright (C) 1992-2018 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
|
@ -104,23 +104,23 @@ public:
|
|||
* calculates the bounding box containing all gerber items.
|
||||
* @return EDA_RECT - the items bounding box
|
||||
*/
|
||||
EDA_RECT GetGerberLayoutBoundingBox();
|
||||
EDA_RECT GetGerberLayoutBoundingBox();
|
||||
|
||||
void SetPageSettings( const PAGE_INFO& aPageSettings ) override;
|
||||
const PAGE_INFO& GetPageSettings() const override;
|
||||
const wxSize GetPageSizeIU() const override;
|
||||
void SetPageSettings( const PAGE_INFO& aPageSettings ) override;
|
||||
const PAGE_INFO& GetPageSettings() const override;
|
||||
const wxSize GetPageSizeIU() const override;
|
||||
|
||||
const wxPoint& GetAuxOrigin() const override;
|
||||
void SetAuxOrigin( const wxPoint& aPoint ) override;
|
||||
const wxPoint& GetAuxOrigin() const override;
|
||||
void SetAuxOrigin( const wxPoint& aPoint ) override;
|
||||
|
||||
const wxPoint& GetGridOrigin() const override { return m_grid_origin; }
|
||||
void SetGridOrigin( const wxPoint& aPoint ) override
|
||||
const wxPoint& GetGridOrigin() const override { return m_grid_origin; }
|
||||
void SetGridOrigin( const wxPoint& aPoint ) override
|
||||
{
|
||||
m_grid_origin = aPoint;
|
||||
}
|
||||
|
||||
const TITLE_BLOCK& GetTitleBlock() const override;
|
||||
void SetTitleBlock( const TITLE_BLOCK& aTitleBlock ) override;
|
||||
void SetTitleBlock( const TITLE_BLOCK& aTitleBlock ) override;
|
||||
|
||||
/**
|
||||
* Function SetCurItem
|
||||
|
@ -132,7 +132,7 @@ public:
|
|||
* @param aItem The GERBER_DRAW_ITEM to make the selected item or NULL if none.
|
||||
* @param aDisplayInfo = true to display item info, false if not (default = true)
|
||||
*/
|
||||
void SetCurItem( GERBER_DRAW_ITEM* aItem, bool aDisplayInfo = true );
|
||||
void SetCurItem( GERBER_DRAW_ITEM* aItem, bool aDisplayInfo = true );
|
||||
|
||||
/** Install the dialog box for layer selection
|
||||
* @param aDefaultLayer = Preselection (NB_PCB_LAYERS for "(Deselect)" layer)
|
||||
|
@ -222,21 +222,20 @@ private:
|
|||
* @param aFilenameList is a list of filenames to load
|
||||
* @return true if every file loaded successfully
|
||||
*/
|
||||
bool loadListOfGerberFiles( const wxString& aPath,
|
||||
const wxArrayString& aFilenameList );
|
||||
bool loadListOfGerberFiles( const wxString& aPath, const wxArrayString& aFilenameList );
|
||||
|
||||
public:
|
||||
GERBVIEW_FRAME( KIWAY* aKiway, wxWindow* aParent );
|
||||
~GERBVIEW_FRAME();
|
||||
|
||||
void OnCloseWindow( wxCloseEvent& Event );
|
||||
void OnCloseWindow( wxCloseEvent& Event );
|
||||
|
||||
bool OpenProjectFiles( const std::vector<wxString>& aFileSet, int aCtl ) override;
|
||||
bool OpenProjectFiles( const std::vector<wxString>& aFileSet, int aCtl ) override;
|
||||
|
||||
// Virtual basic functions:
|
||||
void RedrawActiveWindow( wxDC* DC, bool EraseBg ) override;
|
||||
void ReCreateHToolbar() override;
|
||||
void ReCreateAuxiliaryToolbar() override;
|
||||
void RedrawActiveWindow( wxDC* DC, bool EraseBg ) override;
|
||||
void ReCreateHToolbar() override;
|
||||
void ReCreateAuxiliaryToolbar() override;
|
||||
|
||||
/**
|
||||
* Function ReCreateVToolbar
|
||||
|
@ -244,20 +243,20 @@ public:
|
|||
*
|
||||
* @note This is currently not used.
|
||||
*/
|
||||
void ReCreateVToolbar() override;
|
||||
void ReCreateVToolbar() override;
|
||||
|
||||
/**
|
||||
* Create or update the left vertical toolbar (option toolbar
|
||||
*/
|
||||
void ReCreateOptToolbar();
|
||||
void ReCreateOptToolbar();
|
||||
|
||||
void ReCreateMenuBar() override;
|
||||
void OnLeftClick( wxDC* aDC, const wxPoint& aMousePos ) override;
|
||||
void OnLeftDClick( wxDC* aDC, const wxPoint& aMousePos ) override;
|
||||
bool OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu ) override;
|
||||
void OnUpdateSelectTool( wxUpdateUIEvent& aEvent );
|
||||
double BestZoom() override;
|
||||
void UpdateStatusBar() override;
|
||||
void ReCreateMenuBar() override;
|
||||
void OnLeftClick( wxDC* aDC, const wxPoint& aMousePos ) override;
|
||||
void OnLeftDClick( wxDC* aDC, const wxPoint& aMousePos ) override;
|
||||
bool OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu ) override;
|
||||
void OnUpdateSelectTool( wxUpdateUIEvent& aEvent );
|
||||
double BestZoom() override;
|
||||
void UpdateStatusBar() override;
|
||||
|
||||
wxAuiToolBar* GetMainToolBar() { return m_optionsToolBar; }
|
||||
|
||||
|
@ -313,7 +312,7 @@ public:
|
|||
* @param aItemIdVisible is an item id from the enum GERBVIEW_LAYER_ID
|
||||
* @return bool - true if the element is visible.
|
||||
*/
|
||||
bool IsElementVisible( GERBVIEW_LAYER_ID aItemIdVisible ) const;
|
||||
bool IsElementVisible( GERBVIEW_LAYER_ID aItemIdVisible ) const;
|
||||
|
||||
/**
|
||||
* Function SetElementVisibility
|
||||
|
@ -322,14 +321,14 @@ public:
|
|||
* @param aNewState = The new visibility state of the element category
|
||||
* (see enum PCB)
|
||||
*/
|
||||
void SetElementVisibility( GERBVIEW_LAYER_ID aItemIdVisible, bool aNewState );
|
||||
void SetElementVisibility( GERBVIEW_LAYER_ID aItemIdVisible, bool aNewState );
|
||||
|
||||
/**
|
||||
* Function SetGridVisibility(), virtual from EDA_DRAW_FRAME
|
||||
* It may be overloaded by derived classes
|
||||
* @param aVisible = true if the grid must be shown
|
||||
*/
|
||||
void SetGridVisibility( bool aVisible ) override;
|
||||
void SetGridVisibility( bool aVisible ) override;
|
||||
|
||||
/**
|
||||
* Function GetVisibleLayers
|
||||
|
@ -345,7 +344,7 @@ public:
|
|||
* changes the bit-mask of visible layers
|
||||
* @param aLayerMask = The new bit-mask of visible layers
|
||||
*/
|
||||
void SetVisibleLayers( long aLayerMask );
|
||||
void SetVisibleLayers( long aLayerMask );
|
||||
|
||||
/**
|
||||
* Function IsLayerVisible
|
||||
|
@ -353,7 +352,7 @@ public:
|
|||
* @param aLayer = The layer to be tested (still 0-31!)
|
||||
* @return bool - true if the layer is visible.
|
||||
*/
|
||||
bool IsLayerVisible( int aLayer ) const;
|
||||
bool IsLayerVisible( int aLayer ) const;
|
||||
|
||||
/**
|
||||
* Function GetVisibleElementColor
|
||||
|
@ -361,7 +360,7 @@ public:
|
|||
*/
|
||||
COLOR4D GetVisibleElementColor( GERBVIEW_LAYER_ID aItemIdVisible );
|
||||
|
||||
void SetVisibleElementColor( GERBVIEW_LAYER_ID aItemIdVisible, COLOR4D aColor );
|
||||
void SetVisibleElementColor( GERBVIEW_LAYER_ID aItemIdVisible, COLOR4D aColor );
|
||||
|
||||
/**
|
||||
* Function GetLayerColor
|
||||
|
@ -373,7 +372,7 @@ public:
|
|||
* Function SetLayerColor
|
||||
* changes a layer color for any valid layer.
|
||||
*/
|
||||
void SetLayerColor( int aLayer, COLOR4D aColor );
|
||||
void SetLayerColor( int aLayer, COLOR4D aColor );
|
||||
|
||||
/**
|
||||
* Function GetNegativeItemsColor
|
||||
|
@ -418,7 +417,7 @@ public:
|
|||
* changes out all the layers in m_Layers and may be called upon
|
||||
* loading new gerber files.
|
||||
*/
|
||||
void ReFillLayerWidget();
|
||||
void ReFillLayerWidget();
|
||||
|
||||
/**
|
||||
* Function SetActiveLayer
|
||||
|
@ -455,7 +454,7 @@ public:
|
|||
* This function cannot be inline without including layer_widget.h in
|
||||
* here and we do not want to do that.
|
||||
*/
|
||||
void syncLayerWidget();
|
||||
void syncLayerWidget();
|
||||
|
||||
/**
|
||||
* Function syncLayerBox
|
||||
|
@ -465,7 +464,7 @@ public:
|
|||
* @param aRebuildLayerBox = true to rebuild the layer box
|
||||
* false to just updates the selection.
|
||||
*/
|
||||
void syncLayerBox( bool aRebuildLayerBox = false );
|
||||
void syncLayerBox( bool aRebuildLayerBox = false );
|
||||
|
||||
/**
|
||||
* Function UpdateTitleAndInfo
|
||||
|
@ -476,7 +475,7 @@ public:
|
|||
* Name of the Image (found in the gerber file: IN <name> command) in the status bar
|
||||
* and other data in toolbar
|
||||
*/
|
||||
void UpdateTitleAndInfo();
|
||||
void UpdateTitleAndInfo();
|
||||
|
||||
/**
|
||||
* Function GetConfigurationSettings
|
||||
|
@ -487,26 +486,32 @@ public:
|
|||
* GerbView source code (mainly in dialogs). If you need to define a configuration
|
||||
* setting that need to be loaded at run time, this is the place to define it.
|
||||
*/
|
||||
PARAM_CFG_ARRAY& GetConfigurationSettings( void );
|
||||
PARAM_CFG_ARRAY& GetConfigurationSettings( void );
|
||||
|
||||
void LoadSettings( wxConfigBase* aCfg ) override;
|
||||
|
||||
void SaveSettings( wxConfigBase* aCfg ) override;
|
||||
|
||||
void ShowChangedLanguage() override;
|
||||
void OnToggleCoordType( wxCommandEvent& aEvent );
|
||||
void OnToggleFlashItemDrawMode( wxCommandEvent& aEvent );
|
||||
void OnToggleLineDrawMode( wxCommandEvent& aEvent );
|
||||
void OnTogglePolygonDrawMode( wxCommandEvent& aEvent );
|
||||
void OnToggleShowLayerManager( wxCommandEvent& aEvent );
|
||||
|
||||
void Process_Special_Functions( wxCommandEvent& event );
|
||||
void OnSelectOptionToolbar( wxCommandEvent& event );
|
||||
void ShowChangedLanguage() override;
|
||||
|
||||
void Process_Special_Functions( wxCommandEvent& event );
|
||||
void OnSelectOptionToolbar( wxCommandEvent& event );
|
||||
|
||||
/// Handles the changing of the highlighted component/net/attribute
|
||||
void OnSelectHighlightChoice( wxCommandEvent& event );
|
||||
void OnSelectHighlightChoice( wxCommandEvent& event );
|
||||
|
||||
/**
|
||||
* Function OnSelectActiveDCode
|
||||
* Selects the active DCode for the current active layer.
|
||||
* Items using this DCode are highlighted.
|
||||
*/
|
||||
void OnSelectActiveDCode( wxCommandEvent& event );
|
||||
void OnSelectActiveDCode( wxCommandEvent& event );
|
||||
|
||||
/**
|
||||
* Function OnSelectActiveLayer
|
||||
|
@ -514,14 +519,14 @@ public:
|
|||
* - if a file is loaded, it is loaded in this layer
|
||||
* _ this layer is displayed on top of other layers
|
||||
*/
|
||||
void OnSelectActiveLayer( wxCommandEvent& event );
|
||||
void OnSelectActiveLayer( wxCommandEvent& event );
|
||||
|
||||
/**
|
||||
* Function OnShowGerberSourceFile
|
||||
* Call the preferred editor to show (and edit) the gerber source file
|
||||
* loaded in the active layer
|
||||
*/
|
||||
void OnShowGerberSourceFile( wxCommandEvent& event );
|
||||
void OnShowGerberSourceFile( wxCommandEvent& event );
|
||||
|
||||
/**
|
||||
* Function OnSelectDisplayMode
|
||||
|
@ -529,13 +534,13 @@ public:
|
|||
* Mode selection can be fast display,
|
||||
* or exact mode with stacked images or with transparency
|
||||
*/
|
||||
void OnSelectDisplayMode( wxCommandEvent& event );
|
||||
void OnSelectDisplayMode( wxCommandEvent& event );
|
||||
|
||||
/**
|
||||
* Function OnQuit
|
||||
* called on request of application quit
|
||||
*/
|
||||
void OnQuit( wxCommandEvent& event );
|
||||
void OnQuit( wxCommandEvent& event );
|
||||
|
||||
///> @copydoc EDA_DRAW_FRAME::GetHotKeyDescription()
|
||||
EDA_HOTKEY* GetHotKeyDescription( int aCommand ) const override;
|
||||
|
@ -551,39 +556,39 @@ public:
|
|||
*/
|
||||
bool OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosition, EDA_ITEM* aItem = NULL ) override;
|
||||
|
||||
GERBER_DRAW_ITEM* Locate( const wxPoint& aPosition, int typeloc );
|
||||
GERBER_DRAW_ITEM* Locate( const wxPoint& aPosition, int typeloc );
|
||||
|
||||
void Process_Config( wxCommandEvent& event );
|
||||
void InstallGerberOptionsDialog( wxCommandEvent& event );
|
||||
void Process_Config( wxCommandEvent& event );
|
||||
void InstallGerberOptionsDialog( wxCommandEvent& event );
|
||||
|
||||
void OnUpdateDrawMode( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateCoordType( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateFlashedItemsDrawMode( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateLinesDrawMode( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdatePolygonsDrawMode( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateShowDCodes( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateShowNegativeItems( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateShowLayerManager( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateSelectDCode( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateLayerSelectBox( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateDiffMode( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateHighContrastMode( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateDrawMode( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateCoordType( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateFlashedItemsDrawMode( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateLineDrawMode( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdatePolygonDrawMode( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateShowDCodes( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateShowNegativeItems( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateShowLayerManager( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateSelectDCode( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateLayerSelectBox( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateDiffMode( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateHighContrastMode( wxUpdateUIEvent& aEvent );
|
||||
|
||||
/**
|
||||
* Function BlockCommand
|
||||
* returns the block command (BLOCK_MOVE, BLOCK_COPY...) corresponding to
|
||||
* the \a aKey (ALT, SHIFT ALT ..)
|
||||
*/
|
||||
virtual int BlockCommand( EDA_KEY key ) override;
|
||||
virtual int BlockCommand( EDA_KEY key ) override;
|
||||
|
||||
/**
|
||||
* Function HandleBlockPlace
|
||||
* handles the block place command.
|
||||
*/
|
||||
virtual void HandleBlockPlace( wxDC* DC ) override;
|
||||
virtual void HandleBlockPlace( wxDC* DC ) override;
|
||||
|
||||
/**
|
||||
* Function HandleBlockEnd( )
|
||||
* Function HandleBlockEnd
|
||||
* handles the end of a block command,
|
||||
* It is called at the end of the definition of the area of a block.
|
||||
* Depending on the current block command, this command is executed
|
||||
|
@ -593,7 +598,7 @@ public:
|
|||
* @return false if no item selected, or command finished,
|
||||
* true if some items found and HandleBlockPlace must be called later.
|
||||
*/
|
||||
virtual bool HandleBlockEnd( wxDC* DC ) override;
|
||||
virtual bool HandleBlockEnd( wxDC* DC ) override;
|
||||
|
||||
/**
|
||||
* Function Block_Move
|
||||
|
@ -601,42 +606,42 @@ public:
|
|||
* New location is determined by the current offset from the selected
|
||||
* block's original location.
|
||||
*/
|
||||
void Block_Move();
|
||||
void Block_Move();
|
||||
|
||||
/**
|
||||
* Function ToPrinter
|
||||
* Open a dialog frame to print layers
|
||||
*/
|
||||
void ToPrinter( wxCommandEvent& event );
|
||||
void ToPrinter( wxCommandEvent& event );
|
||||
|
||||
void Files_io( wxCommandEvent& event );
|
||||
void Files_io( wxCommandEvent& event );
|
||||
|
||||
/**
|
||||
* Function OnGbrFileHistory
|
||||
* deletes the current data and loads a Gerber file selected from history list on
|
||||
* current layer.
|
||||
*/
|
||||
void OnGbrFileHistory( wxCommandEvent& event );
|
||||
void OnGbrFileHistory( wxCommandEvent& event );
|
||||
|
||||
/**
|
||||
* Function OnDrlFileHistory
|
||||
* deletes the current data and load a drill file in Excellon format selected from
|
||||
* history list on current layer.
|
||||
*/
|
||||
void OnDrlFileHistory( wxCommandEvent& event );
|
||||
void OnDrlFileHistory( wxCommandEvent& event );
|
||||
|
||||
/**
|
||||
* Function OnZipFileHistory
|
||||
* deletes the current data and load a zip archive file selected from the
|
||||
* history list. The archive is expected coantaining a set of gerber and drill file
|
||||
*/
|
||||
void OnZipFileHistory( wxCommandEvent& event );
|
||||
void OnZipFileHistory( wxCommandEvent& event );
|
||||
|
||||
/**
|
||||
* deletes the current data and load a gerber job file selected from the
|
||||
* history list.
|
||||
*/
|
||||
void OnJobFileHistory( wxCommandEvent& event );
|
||||
void OnJobFileHistory( wxCommandEvent& event );
|
||||
|
||||
/**
|
||||
* Extracts gerber and drill files from the zip archive, and load them
|
||||
|
@ -644,8 +649,7 @@ public:
|
|||
* @param aReporter a REPORTER to collect warning and error messages
|
||||
* @return true if OK, false if a file cannot be readable
|
||||
*/
|
||||
bool unarchiveFiles( const wxString& aFullFileName,
|
||||
REPORTER* aReporter = nullptr );
|
||||
bool unarchiveFiles( const wxString& aFullFileName, REPORTER* aReporter = nullptr );
|
||||
|
||||
/**
|
||||
* function LoadGerberFiles
|
||||
|
@ -655,8 +659,8 @@ public:
|
|||
* if void string: user will be prompted for filename(s)
|
||||
* @return true if file was opened successfully.
|
||||
*/
|
||||
bool LoadGerberFiles( const wxString& aFileName );
|
||||
bool Read_GERBER_File( const wxString& GERBER_FullFileName );
|
||||
bool LoadGerberFiles( const wxString& aFileName );
|
||||
bool Read_GERBER_File( const wxString& GERBER_FullFileName );
|
||||
|
||||
/**
|
||||
* function LoadExcellonFiles
|
||||
|
@ -666,8 +670,8 @@ public:
|
|||
* if empty string: user will be prompted for filename(s)
|
||||
* @return true if file was opened successfully.
|
||||
*/
|
||||
bool LoadExcellonFiles( const wxString& aFileName );
|
||||
bool Read_EXCELLON_File( const wxString& aFullFileName );
|
||||
bool LoadExcellonFiles( const wxString& aFileName );
|
||||
bool Read_EXCELLON_File( const wxString& aFullFileName );
|
||||
|
||||
/**
|
||||
* function LoadZipArchiveFileLoadZipArchiveFile
|
||||
|
@ -677,7 +681,7 @@ public:
|
|||
* if empty string: user will be prompted for filename(s)
|
||||
* @return true if file was opened successfully.
|
||||
*/
|
||||
bool LoadZipArchiveFile( const wxString& aFileName );
|
||||
bool LoadZipArchiveFile( const wxString& aFileName );
|
||||
|
||||
|
||||
/**
|
||||
|
@ -687,30 +691,30 @@ public:
|
|||
* if empty string: user will be prompted for filename(s)
|
||||
* @return true if file(s) was opened successfully.
|
||||
*/
|
||||
bool LoadGerberJobFile( const wxString& aFileName );
|
||||
bool LoadGerberJobFile( const wxString& aFileName );
|
||||
|
||||
|
||||
bool GeneralControl( wxDC* aDC, const wxPoint& aPosition, EDA_KEY aHotKey = 0 ) override;
|
||||
bool GeneralControl( wxDC* aDC, const wxPoint& aPosition, EDA_KEY aHotKey = 0 ) override;
|
||||
|
||||
/**
|
||||
* Set Size Items (Lines, Flashes) from DCodes List
|
||||
*/
|
||||
void Liste_D_Codes();
|
||||
void Liste_D_Codes();
|
||||
|
||||
// PCB handling
|
||||
bool Clear_DrawLayers( bool query );
|
||||
void Erase_Current_DrawLayer( bool query );
|
||||
bool Clear_DrawLayers( bool query );
|
||||
void Erase_Current_DrawLayer( bool query );
|
||||
|
||||
void SortLayersByX2Attributes();
|
||||
void SortLayersByX2Attributes();
|
||||
|
||||
/**
|
||||
* Updates the display options and refreshes the view as needed
|
||||
* @param aOptions is the new options to apply
|
||||
*/
|
||||
void UpdateDisplayOptions( const GBR_DISPLAY_OPTIONS& aOptions );
|
||||
void UpdateDisplayOptions( const GBR_DISPLAY_OPTIONS& aOptions );
|
||||
|
||||
// Conversion function
|
||||
void ExportDataInPcbnewFormat( wxCommandEvent& event );
|
||||
void ExportDataInPcbnewFormat( wxCommandEvent& event );
|
||||
|
||||
/* SaveCopyInUndoList() virtual
|
||||
* currently: do nothing in GerbView.
|
||||
|
@ -742,8 +746,8 @@ public:
|
|||
* @param aPrintMirrorMode = not used here (Set when printing in mirror mode)
|
||||
* @param aData = a pointer on an auxiliary data (not always used, NULL if not used)
|
||||
*/
|
||||
virtual void PrintPage( wxDC* aDC, LSET aPrintMasklayer, bool aPrintMirrorMode,
|
||||
void* aData = NULL ) override;
|
||||
virtual void PrintPage( wxDC* aDC, LSET aPrintMasklayer, bool aPrintMirrorMode,
|
||||
void* aData = NULL ) override;
|
||||
|
||||
///> @copydoc EDA_DRAW_FRAME::UseGalCanvas
|
||||
virtual void UseGalCanvas( bool aEnable ) override;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2010-2014 Jean-Pierre Charras jp.charras at wanadoo.fr
|
||||
* Copyright (C) 1992-2014 KiCad Developers, see change_log.txt for contributors.
|
||||
* Copyright (C) 1992-2018 KiCad Developers, see change_log.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
|
||||
|
@ -48,7 +48,6 @@ enum gerbview_ids
|
|||
ID_GERBVIEW_SHOW_SOURCE,
|
||||
ID_GERBVIEW_EXPORT_TO_PCBNEW,
|
||||
|
||||
ID_MENU_GERBVIEW_SHOW_HIDE_LAYERS_MANAGER_DIALOG,
|
||||
ID_MENU_GERBVIEW_SELECT_PREFERED_EDITOR,
|
||||
|
||||
ID_GBR_AUX_TOOLBAR_PCB_CMP_CHOICE,
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2017 Jean-Pierre Charras, jp.charras at wanadoo.fr
|
||||
* Copyright (C) 2009-2013 Wayne Stambaugh <stambaughw@verizon.net>
|
||||
* Copyright (C) 1992-2017 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
* Copyright (C) 2009 Wayne Stambaugh <stambaughw@gmail.com>
|
||||
* Copyright (C) 1992-2018 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
|
||||
|
@ -179,15 +179,115 @@ void GERBVIEW_FRAME::ReCreateMenuBar()
|
|||
_( "&Close" ), _( "Close GerbView" ),
|
||||
KiBitmap( exit_xpm ) );
|
||||
|
||||
// Menu for configuration and preferences
|
||||
wxMenu* configMenu = new wxMenu;
|
||||
//--------- View menu ----------------
|
||||
wxMenu* viewMenu = new wxMenu;
|
||||
|
||||
// Hide layer manager
|
||||
AddMenuItem( configMenu, ID_MENU_GERBVIEW_SHOW_HIDE_LAYERS_MANAGER_DIALOG,
|
||||
_( "Hide &Layers Manager" ),
|
||||
m_show_layer_manager_tools ?
|
||||
_( "Hide &Layers Manager" ) : _("Show &Layers Manager" ),
|
||||
KiBitmap( layers_manager_xpm ) );
|
||||
AddMenuItem( viewMenu, ID_TB_OPTIONS_SHOW_LAYERS_MANAGER_VERTICAL_TOOLBAR,
|
||||
_( "Show &Layers Manager" ), _( "Show or hide the layer manager" ),
|
||||
KiBitmap( layers_manager_xpm ), wxITEM_CHECK );
|
||||
|
||||
viewMenu->AppendSeparator();
|
||||
|
||||
/* Important Note for ZOOM IN and ZOOM OUT commands from menubar:
|
||||
* we cannot add hotkey info here, because the hotkey HK_ZOOM_IN and HK_ZOOM_OUT
|
||||
* events(default = WXK_F1 and WXK_F2) are *NOT* equivalent to this menu command:
|
||||
* zoom in and out from hotkeys are equivalent to the pop up menu zoom
|
||||
* From here, zooming is made around the screen center
|
||||
* From hotkeys, zooming is made around the mouse cursor position
|
||||
* (obviously not possible from the toolbar or menubar command)
|
||||
*
|
||||
* in other words HK_ZOOM_IN and HK_ZOOM_OUT *are NOT* accelerators
|
||||
* for Zoom in and Zoom out sub menus
|
||||
*/
|
||||
text = AddHotkeyName( _( "Zoom &In" ), GerbviewHokeysDescr,
|
||||
HK_ZOOM_IN, IS_ACCELERATOR );
|
||||
AddMenuItem( viewMenu, ID_ZOOM_IN, text, _( "Zoom in" ), KiBitmap( zoom_in_xpm ) );
|
||||
|
||||
text = AddHotkeyName( _( "Zoom &Out" ), GerbviewHokeysDescr,
|
||||
HK_ZOOM_OUT, IS_ACCELERATOR );
|
||||
AddMenuItem( viewMenu, ID_ZOOM_OUT, text, _( "Zoom out" ), KiBitmap( zoom_out_xpm ) );
|
||||
|
||||
text = AddHotkeyName( _( "&Fit" ), GerbviewHokeysDescr, HK_ZOOM_AUTO );
|
||||
AddMenuItem( viewMenu, ID_ZOOM_PAGE, text, _( "Zoom to fit" ),
|
||||
KiBitmap( zoom_fit_in_page_xpm ) );
|
||||
|
||||
text = AddHotkeyName( _( "&Redraw" ), GerbviewHokeysDescr, HK_ZOOM_REDRAW );
|
||||
AddMenuItem( viewMenu, ID_ZOOM_REDRAW, text,
|
||||
_( "Refresh screen" ), KiBitmap( zoom_redraw_xpm ) );
|
||||
|
||||
viewMenu->AppendSeparator();
|
||||
|
||||
AddMenuItem( viewMenu, ID_TB_OPTIONS_SHOW_GRID,
|
||||
_( "Show &Grid" ), wxEmptyString,
|
||||
KiBitmap( grid_xpm ), wxITEM_CHECK );
|
||||
|
||||
AddMenuItem( viewMenu, ID_TB_OPTIONS_SHOW_POLAR_COORD,
|
||||
_( "Display &Polar Coordinates" ), wxEmptyString,
|
||||
KiBitmap( polar_coord_xpm ), wxITEM_CHECK );
|
||||
|
||||
// Units submenu
|
||||
wxMenu* unitsSubMenu = new wxMenu;
|
||||
AddMenuItem( unitsSubMenu, ID_TB_OPTIONS_SELECT_UNIT_INCH,
|
||||
_( "&Imperial" ), _( "Use imperial units" ),
|
||||
KiBitmap( unit_inch_xpm ), wxITEM_RADIO );
|
||||
|
||||
AddMenuItem( unitsSubMenu, ID_TB_OPTIONS_SELECT_UNIT_MM,
|
||||
_( "&Metric" ), _( "Use metric units" ),
|
||||
KiBitmap( unit_mm_xpm ), wxITEM_RADIO );
|
||||
|
||||
AddMenuItem( viewMenu, unitsSubMenu,
|
||||
-1, _( "&Units" ),
|
||||
_( "Select which units are displayed" ),
|
||||
KiBitmap( unit_mm_xpm ) );
|
||||
|
||||
viewMenu->AppendSeparator();
|
||||
|
||||
AddMenuItem( viewMenu, ID_TB_OPTIONS_SHOW_FLASHED_ITEMS_SKETCH,
|
||||
_( "Sketch F&lashed Items" ),_( "Show flashed items in outline mode" ),
|
||||
KiBitmap( pad_sketch_xpm ), wxITEM_CHECK );
|
||||
|
||||
AddMenuItem( viewMenu, ID_TB_OPTIONS_SHOW_LINES_SKETCH,
|
||||
_( "Sketch &Lines" ),_( "Show lines in outline mode" ),
|
||||
KiBitmap( showtrack_xpm ), wxITEM_CHECK );
|
||||
|
||||
AddMenuItem( viewMenu, ID_TB_OPTIONS_SHOW_POLYGONS_SKETCH,
|
||||
_( "Sketch Pol&ygons" ),_( "Show polygons in outline mode" ),
|
||||
KiBitmap( opt_show_polygon_xpm ), wxITEM_CHECK );
|
||||
|
||||
AddMenuItem( viewMenu, ID_TB_OPTIONS_SHOW_DCODES,
|
||||
_( "Show &DCodes" ), _( "Show or hide DCodes" ),
|
||||
KiBitmap( show_dcodenumber_xpm ), wxITEM_CHECK );
|
||||
|
||||
AddMenuItem( viewMenu, ID_TB_OPTIONS_SHOW_NEGATIVE_ITEMS,
|
||||
_( "Show &Negative Objects" ), _( "Show negative objects in ghost color" ),
|
||||
KiBitmap( gerbview_show_negative_objects_xpm ), wxITEM_CHECK );
|
||||
|
||||
if( IsGalCanvasActive() )
|
||||
{
|
||||
AddMenuItem( viewMenu, ID_TB_OPTIONS_DIFF_MODE,
|
||||
_( "Show in Differential Mode" ), _( "Show layers in differential mode" ),
|
||||
KiBitmap( gbr_select_mode2_xpm ), wxITEM_CHECK );
|
||||
|
||||
AddMenuItem( viewMenu, ID_TB_OPTIONS_HIGH_CONTRAST_MODE,
|
||||
_( "Show in High Contrast" ), _( "Show in high contrast mode" ),
|
||||
KiBitmap( contrast_mode_xpm ), wxITEM_CHECK );
|
||||
}
|
||||
else
|
||||
{
|
||||
AddMenuItem( viewMenu, ID_TB_OPTIONS_SHOW_GBR_MODE_0,
|
||||
_( "Show Normal Mode" ), _( "Show layers in normal mode" ),
|
||||
KiBitmap( gbr_select_mode0_xpm ), wxITEM_RADIO );
|
||||
AddMenuItem( viewMenu, ID_TB_OPTIONS_SHOW_GBR_MODE_1,
|
||||
_( "Show Stacked Mode" ), _( "Show layers in stacked mode" ),
|
||||
KiBitmap( gbr_select_mode1_xpm ), wxITEM_RADIO );
|
||||
AddMenuItem( viewMenu, ID_TB_OPTIONS_SHOW_GBR_MODE_2,
|
||||
_( "Show Transparency Mode" ), _( "Show layers in transparency mode" ),
|
||||
KiBitmap( gbr_select_mode2_xpm ), wxITEM_RADIO );
|
||||
}
|
||||
|
||||
// Menu for configuration and preferences
|
||||
wxMenu* configMenu = new wxMenu;
|
||||
|
||||
// Options (Preferences on WXMAC)
|
||||
#ifdef __WXMAC__
|
||||
|
@ -293,6 +393,7 @@ void GERBVIEW_FRAME::ReCreateMenuBar()
|
|||
|
||||
// Append menus to the menubar
|
||||
menuBar->Append( fileMenu, _( "&File" ) );
|
||||
menuBar->Append( viewMenu, _( "&View" ) );
|
||||
menuBar->Append( configMenu, _( "&Preferences" ) );
|
||||
menuBar->Append( miscellaneousMenu, _( "&Miscellaneous" ) );
|
||||
menuBar->Append( helpMenu, _( "&Help" ) );
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2013 Jean-Pierre Charras, jp.charras at wanadoo.fr
|
||||
* Copyright (C) 2013 Wayne Stambaugh <stambaughw@verizon.net>
|
||||
* Copyright (C) 2013 Wayne Stambaugh <stambaughw@gmail.com>
|
||||
* Copyright (C) 1992-2018 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
|
@ -81,17 +81,18 @@ void GERBVIEW_FRAME::ReCreateHToolbar( void )
|
|||
msg = AddHotkeyName( _( "Zoom out" ), GerbviewHokeysDescr, HK_ZOOM_OUT, IS_COMMENT );
|
||||
m_mainToolBar->AddTool( ID_ZOOM_OUT, wxEmptyString, KiScaledBitmap( zoom_out_xpm, this ), msg );
|
||||
|
||||
msg = AddHotkeyName( _( "Zoom auto" ), GerbviewHokeysDescr, HK_ZOOM_AUTO, IS_COMMENT );
|
||||
m_mainToolBar->AddTool( ID_ZOOM_PAGE, wxEmptyString, KiScaledBitmap( zoom_fit_in_page_xpm, this ), msg );
|
||||
msg = AddHotkeyName( _( "Zoom to fit" ), GerbviewHokeysDescr, HK_ZOOM_AUTO, IS_COMMENT );
|
||||
m_mainToolBar->AddTool( ID_ZOOM_PAGE, wxEmptyString,
|
||||
KiScaledBitmap( zoom_fit_in_page_xpm, this ), msg );
|
||||
|
||||
m_mainToolBar->AddTool( ID_ZOOM_SELECTION, wxEmptyString, KiScaledBitmap( zoom_area_xpm, this ),
|
||||
_( "Zoom to selection" ), wxITEM_CHECK );
|
||||
_( "Zoom to selection" ), wxITEM_CHECK );
|
||||
|
||||
KiScaledSeparator( m_mainToolBar, this );
|
||||
|
||||
m_SelLayerBox = new GBR_LAYER_BOX_SELECTOR( m_mainToolBar,
|
||||
ID_TOOLBARH_GERBVIEW_SELECT_ACTIVE_LAYER,
|
||||
wxDefaultPosition, wxDefaultSize, 0,NULL);
|
||||
ID_TOOLBARH_GERBVIEW_SELECT_ACTIVE_LAYER,
|
||||
wxDefaultPosition, wxDefaultSize, 0, NULL );
|
||||
m_SelLayerBox->Resync();
|
||||
|
||||
m_mainToolBar->AddControl( m_SelLayerBox );
|
||||
|
@ -111,7 +112,8 @@ void GERBVIEW_FRAME::ReCreateAuxiliaryToolbar()
|
|||
wxStaticText* text;
|
||||
|
||||
if( !m_auxiliaryToolBar )
|
||||
m_auxiliaryToolBar = new wxAuiToolBar( this, ID_AUX_TOOLBAR, wxDefaultPosition, wxDefaultSize,
|
||||
m_auxiliaryToolBar = new wxAuiToolBar( this, ID_AUX_TOOLBAR, wxDefaultPosition,
|
||||
wxDefaultSize,
|
||||
KICAD_AUI_TB_STYLE | wxAUI_TB_HORZ_LAYOUT );
|
||||
|
||||
// Creates box to display and choose components:
|
||||
|
@ -120,7 +122,7 @@ void GERBVIEW_FRAME::ReCreateAuxiliaryToolbar()
|
|||
m_SelComponentBox = new wxChoice( m_auxiliaryToolBar,
|
||||
ID_GBR_AUX_TOOLBAR_PCB_CMP_CHOICE );
|
||||
m_SelComponentBox->SetToolTip( _("Select a component and highlight items belonging to this component") );
|
||||
text = new wxStaticText( m_auxiliaryToolBar, wxID_ANY, _("Cmp:") );
|
||||
text = new wxStaticText( m_auxiliaryToolBar, wxID_ANY, _( "Cmp: ") );
|
||||
m_auxiliaryToolBar->AddControl( text );
|
||||
m_auxiliaryToolBar->AddControl( m_SelComponentBox );
|
||||
KiScaledSeparator( m_auxiliaryToolBar, this );
|
||||
|
@ -132,7 +134,7 @@ void GERBVIEW_FRAME::ReCreateAuxiliaryToolbar()
|
|||
m_SelNetnameBox = new wxChoice( m_auxiliaryToolBar,
|
||||
ID_GBR_AUX_TOOLBAR_PCB_NET_CHOICE );
|
||||
m_SelNetnameBox->SetToolTip( _("Select a net name and highlight graphic items belonging to this net") );
|
||||
text = new wxStaticText( m_auxiliaryToolBar, wxID_ANY, _("Net:") );
|
||||
text = new wxStaticText( m_auxiliaryToolBar, wxID_ANY, _( "Net:" ) );
|
||||
m_auxiliaryToolBar->AddControl( text );
|
||||
m_auxiliaryToolBar->AddControl( m_SelNetnameBox );
|
||||
KiScaledSeparator( m_auxiliaryToolBar, this );
|
||||
|
@ -142,9 +144,9 @@ void GERBVIEW_FRAME::ReCreateAuxiliaryToolbar()
|
|||
if( !m_SelAperAttributesBox )
|
||||
{
|
||||
m_SelAperAttributesBox = new wxChoice( m_auxiliaryToolBar,
|
||||
ID_GBR_AUX_TOOLBAR_PCB_APERATTRIBUTES_CHOICE );
|
||||
ID_GBR_AUX_TOOLBAR_PCB_APERATTRIBUTES_CHOICE );
|
||||
m_SelAperAttributesBox->SetToolTip( _("Select an aperture attribute and highlight graphic items having this attribute") );
|
||||
text = new wxStaticText( m_auxiliaryToolBar, wxID_ANY, _("Attr:") );
|
||||
text = new wxStaticText( m_auxiliaryToolBar, wxID_ANY, _( "Attr:" ) );
|
||||
m_auxiliaryToolBar->AddControl( text );
|
||||
m_auxiliaryToolBar->AddControl( m_SelAperAttributesBox );
|
||||
KiScaledSeparator( m_auxiliaryToolBar, this );
|
||||
|
@ -155,7 +157,7 @@ void GERBVIEW_FRAME::ReCreateAuxiliaryToolbar()
|
|||
m_DCodeSelector = new DCODE_SELECTION_BOX( m_auxiliaryToolBar,
|
||||
ID_TOOLBARH_GERBER_SELECT_ACTIVE_DCODE,
|
||||
wxDefaultPosition, wxSize( 150, -1 ) );
|
||||
text = new wxStaticText( m_auxiliaryToolBar, wxID_ANY, _("DCode:") );
|
||||
text = new wxStaticText( m_auxiliaryToolBar, wxID_ANY, _( "DCode:" ) );
|
||||
m_auxiliaryToolBar->AddControl( text );
|
||||
m_auxiliaryToolBar->AddControl( m_DCodeSelector );
|
||||
}
|
||||
|
@ -189,7 +191,8 @@ void GERBVIEW_FRAME::ReCreateVToolbar( void )
|
|||
KICAD_AUI_TB_STYLE | wxAUI_TB_VERTICAL );
|
||||
|
||||
// Set up toolbar
|
||||
m_drawToolBar->AddTool( ID_NO_TOOL_SELECTED, wxEmptyString, KiScaledBitmap( cursor_xpm, this ) );
|
||||
m_drawToolBar->AddTool( ID_NO_TOOL_SELECTED, wxEmptyString,
|
||||
KiScaledBitmap( cursor_xpm, this ) );
|
||||
KiScaledSeparator( m_mainToolBar, this );
|
||||
|
||||
m_drawToolBar->Realize();
|
||||
|
@ -207,7 +210,8 @@ void GERBVIEW_FRAME::ReCreateOptToolbar( void )
|
|||
// TODO: these can be moved to the 'proper' vertical toolbar if and when there are
|
||||
// actual tools to put there. That, or I'll get around to implementing configurable
|
||||
// toolbars.
|
||||
m_optionsToolBar->AddTool( ID_NO_TOOL_SELECTED, wxEmptyString, KiScaledBitmap( cursor_xpm, this ),
|
||||
m_optionsToolBar->AddTool( ID_NO_TOOL_SELECTED, wxEmptyString,
|
||||
KiScaledBitmap( cursor_xpm, this ),
|
||||
wxEmptyString, wxITEM_CHECK );
|
||||
|
||||
if( IsGalCanvasActive() )
|
||||
|
@ -220,7 +224,8 @@ void GERBVIEW_FRAME::ReCreateOptToolbar( void )
|
|||
|
||||
KiScaledSeparator( m_mainToolBar, this );
|
||||
|
||||
m_optionsToolBar->AddTool( ID_TB_OPTIONS_SHOW_GRID, wxEmptyString, KiScaledBitmap( grid_xpm, this ),
|
||||
m_optionsToolBar->AddTool( ID_TB_OPTIONS_SHOW_GRID, wxEmptyString,
|
||||
KiScaledBitmap( grid_xpm, this ),
|
||||
_( "Turn grid off" ), wxITEM_CHECK );
|
||||
|
||||
m_optionsToolBar->AddTool( ID_TB_OPTIONS_SHOW_POLAR_COORD, wxEmptyString,
|
||||
|
@ -249,15 +254,15 @@ void GERBVIEW_FRAME::ReCreateOptToolbar( void )
|
|||
KiScaledSeparator( m_mainToolBar, this );
|
||||
m_optionsToolBar->AddTool( ID_TB_OPTIONS_SHOW_FLASHED_ITEMS_SKETCH, wxEmptyString,
|
||||
KiScaledBitmap( pad_sketch_xpm, this ),
|
||||
_( "Show spots in sketch mode" ), wxITEM_CHECK );
|
||||
_( "Show flashed items in outline mode" ), wxITEM_CHECK );
|
||||
|
||||
m_optionsToolBar->AddTool( ID_TB_OPTIONS_SHOW_LINES_SKETCH, wxEmptyString,
|
||||
KiScaledBitmap( showtrack_xpm, this ),
|
||||
_( "Show lines in sketch mode" ), wxITEM_CHECK );
|
||||
_( "Show lines in outline mode" ), wxITEM_CHECK );
|
||||
|
||||
m_optionsToolBar->AddTool( ID_TB_OPTIONS_SHOW_POLYGONS_SKETCH, wxEmptyString,
|
||||
KiScaledBitmap( opt_show_polygon_xpm, this ),
|
||||
_( "Show polygons in sketch mode" ),
|
||||
_( "Show polygons in outline mode" ),
|
||||
wxITEM_CHECK );
|
||||
|
||||
m_optionsToolBar->AddTool( ID_TB_OPTIONS_SHOW_NEGATIVE_ITEMS, wxEmptyString,
|
||||
|
@ -277,17 +282,17 @@ void GERBVIEW_FRAME::ReCreateOptToolbar( void )
|
|||
KiScaledBitmap( gbr_select_mode0_xpm, this ),
|
||||
_( "Show layers in raw mode\n"
|
||||
"(could have problems with negative items when more than one gerber file is shown)" ),
|
||||
wxITEM_CHECK );
|
||||
wxITEM_RADIO );
|
||||
m_optionsToolBar->AddTool( ID_TB_OPTIONS_SHOW_GBR_MODE_1, wxEmptyString,
|
||||
KiScaledBitmap( gbr_select_mode1_xpm, this ),
|
||||
_( "Show layers in stacked mode\n"
|
||||
"(show negative items without artifacts)" ),
|
||||
wxITEM_CHECK );
|
||||
wxITEM_RADIO );
|
||||
m_optionsToolBar->AddTool( ID_TB_OPTIONS_SHOW_GBR_MODE_2, wxEmptyString,
|
||||
KiScaledBitmap( gbr_select_mode2_xpm, this ),
|
||||
_( "Show layers in transparency mode\n"
|
||||
"(show negative items without artifacts)" ),
|
||||
wxITEM_CHECK );
|
||||
wxITEM_RADIO );
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -375,6 +380,7 @@ void GERBVIEW_FRAME::updateDCodeSelectBox()
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
void GERBVIEW_FRAME::updateComponentListSelectBox()
|
||||
{
|
||||
m_SelComponentBox->Clear();
|
||||
|
@ -479,6 +485,7 @@ void GERBVIEW_FRAME::updateAperAttributesSelectBox()
|
|||
m_SelAperAttributesBox->SetSelection( 0 );
|
||||
}
|
||||
|
||||
|
||||
void GERBVIEW_FRAME::OnUpdateDrawMode( wxUpdateUIEvent& aEvent )
|
||||
{
|
||||
switch( aEvent.GetId() )
|
||||
|
@ -501,50 +508,106 @@ void GERBVIEW_FRAME::OnUpdateDrawMode( wxUpdateUIEvent& aEvent )
|
|||
}
|
||||
|
||||
|
||||
void GERBVIEW_FRAME::OnToggleCoordType( wxCommandEvent& aEvent )
|
||||
{
|
||||
m_DisplayOptions.m_DisplayPolarCood = !m_DisplayOptions.m_DisplayPolarCood;
|
||||
|
||||
UpdateStatusBar();
|
||||
}
|
||||
|
||||
|
||||
void GERBVIEW_FRAME::OnUpdateCoordType( wxUpdateUIEvent& aEvent )
|
||||
{
|
||||
aEvent.Check( m_DisplayOptions.m_DisplayPolarCood );
|
||||
|
||||
if( m_optionsToolBar )
|
||||
m_optionsToolBar->SetToolShortHelp( ID_TB_OPTIONS_SHOW_POLAR_COORD,
|
||||
m_DisplayOptions.m_DisplayPolarCood ?
|
||||
_( "Turn rectangular coordinates on" ) :
|
||||
_( "Tunn polar coordinates on" ) );
|
||||
}
|
||||
|
||||
|
||||
void GERBVIEW_FRAME::OnUpdateFlashedItemsDrawMode( wxUpdateUIEvent& aEvent )
|
||||
{
|
||||
aEvent.Check( !m_DisplayOptions.m_DisplayFlashedItemsFill );
|
||||
|
||||
if( m_optionsToolBar )
|
||||
m_optionsToolBar->SetToolShortHelp( ID_TB_OPTIONS_SHOW_FLASHED_ITEMS_SKETCH,
|
||||
m_DisplayOptions.m_DisplayFlashedItemsFill ?
|
||||
_( "Show flashed items in outline mode" ) :
|
||||
_( "Show flashed items in fill mode" ) );
|
||||
}
|
||||
|
||||
|
||||
void GERBVIEW_FRAME::OnUpdateLinesDrawMode( wxUpdateUIEvent& aEvent )
|
||||
void GERBVIEW_FRAME::OnUpdateLineDrawMode( wxUpdateUIEvent& aEvent )
|
||||
{
|
||||
aEvent.Check( !m_DisplayOptions.m_DisplayLinesFill );
|
||||
|
||||
if( m_optionsToolBar )
|
||||
m_optionsToolBar->SetToolShortHelp( ID_TB_OPTIONS_SHOW_LINES_SKETCH,
|
||||
m_DisplayOptions.m_DisplayFlashedItemsFill ?
|
||||
_( "Show lines in outline mode" ) :
|
||||
_( "Show lines in fill mode" ) );
|
||||
}
|
||||
|
||||
|
||||
void GERBVIEW_FRAME::OnUpdatePolygonsDrawMode( wxUpdateUIEvent& aEvent )
|
||||
void GERBVIEW_FRAME::OnUpdatePolygonDrawMode( wxUpdateUIEvent& aEvent )
|
||||
{
|
||||
aEvent.Check( !m_DisplayOptions.m_DisplayPolygonsFill );
|
||||
|
||||
if( m_optionsToolBar )
|
||||
m_optionsToolBar->SetToolShortHelp( ID_TB_OPTIONS_SHOW_POLYGONS_SKETCH,
|
||||
m_DisplayOptions.m_DisplayFlashedItemsFill ?
|
||||
_( "Show polygons in outline mode" ) :
|
||||
_( "Show polygons in fill mode" ) );
|
||||
}
|
||||
|
||||
|
||||
void GERBVIEW_FRAME::OnUpdateShowDCodes( wxUpdateUIEvent& aEvent )
|
||||
{
|
||||
aEvent.Check( IsElementVisible( LAYER_DCODES ) );
|
||||
|
||||
if( m_optionsToolBar )
|
||||
m_optionsToolBar->SetToolShortHelp( ID_TB_OPTIONS_SHOW_DCODES,
|
||||
IsElementVisible( LAYER_DCODES ) ?
|
||||
_( "Hide DCodes" ) : _( "Show DCodes" ) );
|
||||
}
|
||||
|
||||
|
||||
void GERBVIEW_FRAME::OnUpdateShowNegativeItems( wxUpdateUIEvent& aEvent )
|
||||
{
|
||||
aEvent.Check( IsElementVisible( LAYER_NEGATIVE_OBJECTS ) );
|
||||
|
||||
if( m_optionsToolBar )
|
||||
m_optionsToolBar->SetToolShortHelp( ID_TB_OPTIONS_SHOW_NEGATIVE_ITEMS,
|
||||
IsElementVisible( LAYER_NEGATIVE_OBJECTS ) ?
|
||||
_( "Show negative objects in normal color" ) :
|
||||
_( "Show negative objects in ghost color" ) );
|
||||
}
|
||||
|
||||
|
||||
void GERBVIEW_FRAME::OnUpdateDiffMode( wxUpdateUIEvent& aEvent )
|
||||
{
|
||||
aEvent.Check( m_DisplayOptions.m_DiffMode );
|
||||
|
||||
if( m_optionsToolBar )
|
||||
m_optionsToolBar->SetToolShortHelp( ID_TB_OPTIONS_DIFF_MODE,
|
||||
m_DisplayOptions.m_DiffMode ?
|
||||
_( "Show layers in normal mode" ) :
|
||||
_( "Show layers in differential mode" ) );
|
||||
}
|
||||
|
||||
|
||||
void GERBVIEW_FRAME::OnUpdateHighContrastMode( wxUpdateUIEvent& aEvent )
|
||||
{
|
||||
aEvent.Check( m_DisplayOptions.m_HighContrastMode );
|
||||
|
||||
if( m_optionsToolBar )
|
||||
m_optionsToolBar->SetToolShortHelp( ID_TB_OPTIONS_HIGH_CONTRAST_MODE,
|
||||
m_DisplayOptions.m_HighContrastMode ?
|
||||
_( "Disable high contrast mode" ) :
|
||||
_( "Enable high contrast mode" ) );
|
||||
}
|
||||
|
||||
|
||||
|
@ -555,9 +618,9 @@ void GERBVIEW_FRAME::OnUpdateShowLayerManager( wxUpdateUIEvent& aEvent )
|
|||
if( m_optionsToolBar )
|
||||
{
|
||||
if( m_show_layer_manager_tools )
|
||||
m_optionsToolBar->SetToolShortHelp( aEvent.GetId(), _("Hide layers manager" ) );
|
||||
m_optionsToolBar->SetToolShortHelp( aEvent.GetId(), _( "Hide layers manager" ) );
|
||||
else
|
||||
m_optionsToolBar->SetToolShortHelp( aEvent.GetId(), _("Show layers manager" ) );
|
||||
m_optionsToolBar->SetToolShortHelp( aEvent.GetId(), _( "Show layers manager" ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue