KiCad PCB EDA Suite
Loading...
Searching...
No Matches
pcb_edit_frame.cpp File Reference
#include <advanced_config.h>
#include <connectivity/connectivity_data.h>
#include <kiface_base.h>
#include <kiway.h>
#include <board_design_settings.h>
#include <pgm_base.h>
#include <pcb_edit_frame.h>
#include <3d_viewer/eda_3d_viewer_frame.h>
#include <api/api_plugin_manager.h>
#include <fp_lib_table.h>
#include <geometry/geometry_utils.h>
#include <bitmaps.h>
#include <confirm.h>
#include <lset.h>
#include <trace_helpers.h>
#include <algorithm>
#include <type_traits>
#include <unordered_map>
#include <unordered_set>
#include <vector>
#include <pcbnew_id.h>
#include <pcbnew_settings.h>
#include <pcb_layer_box_selector.h>
#include <footprint_edit_frame.h>
#include <dialog_find.h>
#include <dialog_footprint_properties.h>
#include <dialogs/dialog_exchange_footprints.h>
#include <dialog_board_setup.h>
#include <dialogs/dialog_dimension_properties.h>
#include <dialogs/dialog_table_properties.h>
#include <gal/graphics_abstraction_layer.h>
#include <pcb_target.h>
#include <pcb_point.h>
#include <layer_pairs.h>
#include <drawing_sheet/ds_proxy_view_item.h>
#include <wildcards_and_files_ext.h>
#include <functional>
#include <pcb_painter.h>
#include <project/project_file.h>
#include <project/project_local_settings.h>
#include <python_scripting.h>
#include <settings/common_settings.h>
#include <settings/settings_manager.h>
#include <tool/tool_manager.h>
#include <tool/tool_dispatcher.h>
#include <tool/action_toolbar.h>
#include <tool/common_control.h>
#include <tool/common_tools.h>
#include <tool/embed_tool.h>
#include <tool/properties_tool.h>
#include <tool/selection.h>
#include <tool/zoom_tool.h>
#include <tools/array_tool.h>
#include <tools/pcb_grid_helper.h>
#include <tools/pcb_selection_tool.h>
#include <tools/pcb_picker_tool.h>
#include <tools/pcb_point_editor.h>
#include <tools/edit_tool.h>
#include <tools/pcb_edit_table_tool.h>
#include <tools/pcb_group_tool.h>
#include <tools/generator_tool.h>
#include <tools/drc_tool.h>
#include <tools/global_edit_tool.h>
#include <tools/convert_tool.h>
#include <tools/drawing_tool.h>
#include <tools/pcb_control.h>
#include <tools/pcb_design_block_control.h>
#include <tools/board_editor_control.h>
#include <tools/board_inspection_tool.h>
#include <tools/pcb_editor_conditions.h>
#include <tools/pcb_viewer_tools.h>
#include <tools/board_reannotate_tool.h>
#include <tools/align_distribute_tool.h>
#include <tools/pad_tool.h>
#include <microwave/microwave_tool.h>
#include <tools/position_relative_tool.h>
#include <tools/zone_filler_tool.h>
#include <tools/multichannel_tool.h>
#include <router/router_tool.h>
#include <autorouter/autoplace_tool.h>
#include <python/scripting/pcb_scripting_tool.h>
#include <netlist_reader/netlist_reader.h>
#include <wx/socket.h>
#include <wx/wupdlock.h>
#include <dialog_drc.h>
#include <ratsnest/ratsnest_view_item.h>
#include <widgets/appearance_controls.h>
#include <widgets/pcb_design_block_pane.h>
#include <widgets/pcb_search_pane.h>
#include <widgets/wx_infobar.h>
#include <widgets/panel_selection_filter.h>
#include <widgets/pcb_properties_panel.h>
#include <widgets/pcb_net_inspector_panel.h>
#include <widgets/wx_aui_utils.h>
#include <kiplatform/app.h>
#include <kiplatform/ui.h>
#include <core/profile.h>
#include <math/box2_minmax.h>
#include <view/wx_view_controls.h>
#include <footprint_viewer_frame.h>
#include <footprint_chooser_frame.h>
#include <toolbars_pcb_editor.h>
#include <wx/log.h>
#include <action_plugin.h>
#include <pcbnew_scripting_helpers.h>
#include "../scripting/python_scripting.h"
#include <wx/filedlg.h>

Go to the source code of this file.

Macros

#define INSPECT_DRC_ERROR_DIALOG_NAME   wxT( "InspectDrcErrorDialog" )
 
#define INSPECT_CLEARANCE_DIALOG_NAME   wxT( "InspectClearanceDialog" )
 
#define INSPECT_CONSTRAINTS_DIALOG_NAME   wxT( "InspectConstraintsDialog" )
 
#define FOOTPRINT_DIFF_DIALOG_NAME   wxT( "FootprintDiffDialog" )
 
#define ENABLE(x)
 
#define CHECK(x)
 
#define CURRENT_TOOL(action)
 
#define CURRENT_EDIT_TOOL(action)
 

Functions

 EVT_MENU_RANGE (ID_POPUP_PCB_SELECT_WIDTH_START_RANGE, ID_POPUP_PCB_SELECT_WIDTH_END_RANGE, PCB_EDIT_FRAME::Tracks_and_Vias_Size_Event) EVT_UPDATE_UI_RANGE(ID_POPUP_PCB_SELECT_WIDTH1
 
PCB_EDIT_FRAME::OnUpdateSelectTrackWidth EVT_UPDATE_UI_RANGE (ID_POPUP_PCB_SELECT_VIASIZE1, ID_POPUP_PCB_SELECT_VIASIZE8, PCB_EDIT_FRAME::OnUpdateSelectViaSize) PCB_EDIT_FRAME
 
static void processTextItem (const PCB_TEXT &aSrc, PCB_TEXT &aDest, bool aResetText, bool aResetTextLayers, bool aResetTextEffects, bool aResetTextPositions, bool *aUpdated)
 copy text settings from aSrc to aDest
 
template<typename T>
static std::vector< std::pair< T *, T * > > matchItemsBySimilarity (const std::vector< T * > &aExisting, const std::vector< T * > &aNew)
 

Variables

 ID_POPUP_PCB_SELECT_WIDTH8
 

Macro Definition Documentation

◆ CHECK

#define CHECK ( x)
Value:
Functors that can be used to figure out how the action controls should be displayed in the UI and if ...
ACTION_CONDITIONS & Check(const SELECTION_CONDITION &aCondition)

◆ CURRENT_EDIT_TOOL

#define CURRENT_EDIT_TOOL ( action)
Value:
mgr->SetConditions( action, ACTION_CONDITIONS().Check( cond.CurrentTool( action ) ) \
.Enable( isDRCIdle ) )
ACTION_CONDITIONS & Enable(const SELECTION_CONDITION &aCondition)

◆ CURRENT_TOOL

#define CURRENT_TOOL ( action)
Value:
mgr->SetConditions( action, CHECK( cond.CurrentTool( action ) ) )
#define CHECK(x)

◆ ENABLE

#define ENABLE ( x)
Value:

◆ FOOTPRINT_DIFF_DIALOG_NAME

#define FOOTPRINT_DIFF_DIALOG_NAME   wxT( "FootprintDiffDialog" )

Definition at line 146 of file pcb_edit_frame.cpp.

Referenced by PCB_EDIT_FRAME::GetFootprintDiffDialog().

◆ INSPECT_CLEARANCE_DIALOG_NAME

#define INSPECT_CLEARANCE_DIALOG_NAME   wxT( "InspectClearanceDialog" )

◆ INSPECT_CONSTRAINTS_DIALOG_NAME

#define INSPECT_CONSTRAINTS_DIALOG_NAME   wxT( "InspectConstraintsDialog" )

◆ INSPECT_DRC_ERROR_DIALOG_NAME

#define INSPECT_DRC_ERROR_DIALOG_NAME   wxT( "InspectDrcErrorDialog" )

Function Documentation

◆ EVT_MENU_RANGE()

◆ EVT_UPDATE_UI_RANGE()

Definition at line 178 of file pcb_edit_frame.cpp.

References _, _HKI, PCBNEW_SETTINGS::AUI_PANELS::appearance_panel_tab, AS_GLOBAL, BOARD, config, PCB_ACTIONS::ddAppendBoard, PCB_ACTIONS::ddImportGraphics, PCBNEW_SETTINGS::AUI_PANELS::design_blocks_panel_docked_width, EDA_EVT_PLUGIN_AVAILABILITY_CHANGED, EVT_UPDATE_UI_RANGE(), FRAME_PCB_EDITOR, EDA_DRAW_PANEL_GAL::GAL_FALLBACK, ADVANCED_CFG::GetCfg(), PGM_BASE::GetExecutablePath(), LAYER_PAIR::GetLayerA(), LAYER_PAIR::GetLayerB(), PROJECT::GetProjectFile(), GetToolbarSettings(), icon_pcbnew, icon_pcbnew_16, icon_pcbnew_32, ID_POPUP_PCB_SELECT_VIASIZE1, ID_POPUP_PCB_SELECT_VIASIZE8, KiBitmap(), KICAD_DEFAULT_DRAWFRAME_STYLE, FILEEXT::KiCadPcbFileExtension, Kiface(), FILEEXT::LegacyPcbFileExtension, PROJECT_FILE::m_LayerPairInfos, KIGFX::WX_VIEW_CONTROLS::m_MotionEventCounter, PCB_SCREEN::m_Route_Layer_BOTTOM, PCB_SCREEN::m_Route_Layer_TOP, PCB_EDIT_FRAME::onCloseModelessBookReporterDialogs(), PCB_EDIT_FRAME::OnCrossProbeFlashTimer(), PCB_EDIT_FRAME::onSize(), PCB_EDIT_FRAME_NAME, pcbIUScale, Pgm(), ACTIONS::pluginsReload, Prj(), PCBNEW_SETTINGS::AUI_PANELS::properties_panel_width, PCBNEW_SETTINGS::AUI_PANELS::properties_splitter, PROF_COUNTER::Reset(), PCBNEW_SETTINGS::AUI_PANELS::right_panel_width, PCBNEW_SETTINGS::AUI_PANELS::search_panel_dock_direction, PCBNEW_SETTINGS::AUI_PANELS::search_panel_height, PCBNEW_SETTINGS::AUI_PANELS::search_panel_width, SetAuiPaneSize(), KIPLATFORM::APP::SetShutdownBlockReason(), PROF_COUNTER::Show(), FILEEXT::SVGFileExtension, and ACTIONS::zoomFitScreen.

Referenced by EVT_UPDATE_UI_RANGE().

◆ matchItemsBySimilarity()

template<typename T>
static std::vector< std::pair< T *, T * > > matchItemsBySimilarity ( const std::vector< T * > & aExisting,
const std::vector< T * > & aNew )
static

Definition at line 2372 of file pcb_edit_frame.cpp.

References T.

Referenced by PCB_EDIT_FRAME::ExchangeFootprint().

◆ processTextItem()

static void processTextItem ( const PCB_TEXT & aSrc,
PCB_TEXT & aDest,
bool aResetText,
bool aResetTextLayers,
bool aResetTextEffects,
bool aResetTextPositions,
bool * aUpdated )
static

copy text settings from aSrc to aDest

Parameters
aSrcis the PCB_TEXT source
aDestis the PCB_TEXT target
aResetTextis true to keep the default target text (false to use the aSrc text)
aResetTextLayersis true to keep the default target layers setting (false to use the aSrc setting)
aResetTextEffectsis true to keep the default target text effects (false to use the aSrc effect)
aUpdatedis a refrence to a bool to keep trace of changes

Definition at line 2321 of file pcb_edit_frame.cpp.

References BOARD_ITEM::GetFPRelativePosition(), EDA_TEXT::GetHorizJustify(), BOARD_ITEM::GetLayer(), EDA_TEXT::GetText(), EDA_TEXT::GetTextAngle(), EDA_TEXT::GetTextSize(), EDA_TEXT::GetTextThickness(), EDA_TEXT::GetVertJustify(), BOARD_ITEM::IsLocked(), EDA_TEXT::IsVisible(), EDA_ITEM::m_Uuid, EDA_TEXT::SetAttributes(), BOARD_ITEM::SetFPRelativePosition(), BOARD_ITEM::SetLayer(), BOARD_ITEM::SetLocked(), EDA_TEXT::SetText(), and EDA_TEXT::SetVisible().

Referenced by PCB_EDIT_FRAME::ExchangeFootprint().

Variable Documentation

◆ ID_POPUP_PCB_SELECT_WIDTH8

ID_POPUP_PCB_SELECT_WIDTH8

Definition at line 176 of file pcb_edit_frame.cpp.

Referenced by PCB_EDIT_FRAME::Tracks_and_Vias_Size_Event().