KiCad PCB EDA Suite
Loading...
Searching...
No Matches
mocks.cpp
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright (C) 1992-2023 KiCad Developers, see AUTHORS.txt for contributors.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, you may find one here:
18 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
19 * or you may search the http://www.gnu.org website for the version 2 license,
20 * or you may write to the Free Software Foundation, Inc.,
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
22 */
23
24#include <kiface_base.h>
25#include <confirm.h>
26#include <pcb_edit_frame.h>
27#include <eda_dde.h>
28#include <wx/file.h>
29#include <wx/snglinst.h>
30#include <wx/app.h>
31#include <board.h>
32#include <fp_lib_table.h>
34#include <footprint.h>
35#include <tools/pcb_actions.h>
37#include <router/router_tool.h>
38#include <dialog_find.h>
40#include <zone_filler.h>
41
43
44
46 DIALOG_FIND_BASE( aParent )
47{
48 // these members are initialized to avoid warnings about non initialized vars
49 m_frame = aParent;
50 m_hitList.clear();
51 m_it = m_hitList.begin();
52 m_upToDate = false;
53}
54
55void DIALOG_FIND::onFindNextClick( wxCommandEvent& aEvent )
56{
57}
58
59void DIALOG_FIND::onFindPreviousClick( wxCommandEvent& aEvent )
60{
61}
62
63void DIALOG_FIND::onSearchAgainClick( wxCommandEvent& aEvent )
64{
65}
66
67void DIALOG_FIND::onTextEnter( wxCommandEvent& event )
68{
69}
70
71void DIALOG_FIND::OnCloseButtonClick( wxCommandEvent& aEvent )
72{
73}
74
75bool DIALOG_FIND::Show( bool show )
76{
77 return true;
78}
79
80void DIALOG_FIND::OnClose( wxCloseEvent& aEvent )
81{
82}
83
84
85DIALOG_FIND_BASE::DIALOG_FIND_BASE( wxWindow* parent, wxWindowID id, const wxString& title,
86 const wxPoint& pos, const wxSize& size, long style ) :
87 DIALOG_SHIM( parent, id, title, pos, size, style )
88{
89 // these members are initialized only to avoid warnings about non initialized vars
90 searchStringLabel = nullptr;
91 m_searchCombo = nullptr;
92 m_matchCase = nullptr;
93 m_matchWords = nullptr;
94 m_wildcards = nullptr;
95 m_wrap = nullptr;
96 m_includeValues = nullptr;
97 m_includeReferences = nullptr;
98 m_includeTexts = nullptr;
99 m_includeMarkers = nullptr;
100 m_includeNets = nullptr;
101 m_findNext = nullptr;
102 m_findPrevious = nullptr;
103 m_searchAgain = nullptr;
104 m_closeButton = nullptr;
105 m_status = nullptr;
106}
107
108
110{
111}
112
113
115 const wxString& title,
116 const wxPoint& pos, const wxSize& size,
117 long style ) :
118 DIALOG_SHIM( parent, id, title, pos, size, style )
119{
120 // these members are initialized only to avoid warnings about non initialized vars
121 m_Include_Modules = nullptr;
122 m_Include_PcbTexts = nullptr;
123 m_IncludeLockedModules = nullptr;
124 m_Include_Draw_Items = nullptr;
125 m_Include_Tracks = nullptr;
126 m_Include_Vias = nullptr;
127 m_Include_Edges_Items = nullptr;
128 m_Include_Zones = nullptr;
129 m_sdbSizer1 = nullptr;
130 m_sdbSizer1OK = nullptr;
131 m_sdbSizer1Cancel = nullptr;
132}
133
134
136{
137}
138
139
142 m_options( aOptions )
143{
144 // silence another compiler warning about m_options not being used
145 if( m_options.includeModules )
146 {
147 }
148}
149
150
151void DIALOG_FILTER_SELECTION::checkBoxClicked( wxCommandEvent& aEvent )
152{
153}
154
155
156void DIALOG_FILTER_SELECTION::allItemsClicked( wxCommandEvent& aEvent )
157{
158}
159
160
162{
163 return true;
164}
165
166
168{
169}
170
171
172
174
175
180{
181public:
183};
184
185
187 SELECTION_TOOL( "pcbnew.InteractiveSelection" ),
188 m_frame( NULL ),
189 m_enteredGroup( NULL ),
190 m_nonModifiedCursor( KICURSOR::ARROW ),
191 m_priv( nullptr )
192{
193}
194
195
197{
198}
199
200
202{
203 return true;
204}
205
206
207void PCB_SELECTION_TOOL::Reset( RESET_REASON aReason )
208{
209}
210
211
212int PCB_SELECTION_TOOL::Main( const TOOL_EVENT& aEvent )
213{
214 return 0;
215}
216
217
219{
220}
221
222
223void PCB_SELECTION_TOOL::ExitGroup( bool aSelectGroup )
224{
225}
226
227
229{
230 return m_selection;
231}
232
233
235 bool aConfirmLockedItems )
236{
237 return m_selection;
238}
239
240
242{
243 return GENERAL_COLLECTORS_GUIDE( LSET(), PCB_LAYER_ID::UNDEFINED_LAYER, nullptr );
244}
245
246
247bool PCB_SELECTION_TOOL::selectPoint( const VECTOR2I& aWhere, bool aOnDrag,
248 bool* aSelectionCancelledFlag,
249 CLIENT_SELECTION_FILTER aClientFilter )
250{
251 return false;
252}
253
254
255bool PCB_SELECTION_TOOL::selectCursor( bool aForceSelect, CLIENT_SELECTION_FILTER aClientFilter )
256{
257 return false;
258}
259
260
262{
263 return false;
264}
265
266
268{
269 return 0;
270}
271
272
274{
275 return 0;
276}
277
278
279int PCB_SELECTION_TOOL::SelectAll( const TOOL_EVENT& aEvent )
280{
281 return 0;
282}
283
284
286{
287 return 0;
288}
289
290
292 const std::vector<BOARD_CONNECTED_ITEM*>& aStartItems, STOP_CONDITION aStopCondition )
293{
294}
295
296
297void PCB_SELECTION_TOOL::SelectAllItemsOnNet( int aNetCode, bool aSelect )
298{
299}
300
301
302int PCB_SELECTION_TOOL::selectNet( const TOOL_EVENT& aEvent )
303{
304 return 0;
305}
306
307
308void PCB_SELECTION_TOOL::selectAllItemsOnSheet( wxString& aSheetPath )
309{
310}
311
312
314{
315}
316
317
319{
320 return 0;
321}
322
323
325{
326 return 0;
327}
328
329
331{
332 return false;
333}
334
335
343static bool itemIsIncludedByFilter( const BOARD_ITEM& aItem, const BOARD& aBoard,
344 const DIALOG_FILTER_SELECTION::OPTIONS& aFilterOptions )
345{
346 return false;
347}
348
349
351{
352 return 0;
353}
354
355
356void PCB_SELECTION_TOOL::FilterCollectedItems( GENERAL_COLLECTOR& aCollector, bool aMultiSelect )
357{
358}
359
360
361bool PCB_SELECTION_TOOL::itemPassesFilter( BOARD_ITEM* aItem, bool aMultiSelect )
362{
363 return true;
364}
365
366
367void PCB_SELECTION_TOOL::ClearSelection( bool aQuietMode )
368{
369}
370
371
373{
374}
375
376
377bool PCB_SELECTION_TOOL::Selectable( const BOARD_ITEM* aItem, bool checkVisibilityOnly ) const
378{
379 return false;
380}
381
382
383bool PCB_SELECTION_TOOL::selectionContains( const VECTOR2I& aPoint ) const
384{
385 return false;
386}
387
389 const VECTOR2I& aWhere ) const
390{
391}
392
393
395{
396 return 0;
397}
398
399
401{
402}
403
404
406{
407}
408
409
411{
412}
413
414
415void PCB_SELECTION_TOOL::highlight( EDA_ITEM* aItem, int aHighlightMode,
416 SELECTION* aGroup )
417{
418}
419
420
421void PCB_SELECTION_TOOL::unhighlight( EDA_ITEM* aItem, int aHighlightMode,
422 SELECTION* aGroup )
423{
424}
425
428 const wxString& aCommitMessage, int aOptions )
429{
430}
431
432
434{
435 return true;
436}
437
438
439void PCB_TOOL_BASE::Reset( RESET_REASON aReason )
440{
441}
442
443
445{
446}
447
448
450{
451 return false;
452}
453
454
456{
457}
458
459
461 PCB_TOOL_BASE( "pcbnew.ZoneFiller" ),
462 m_fillInProgress( false )
463{
464}
465
466
468{
469}
470
471
472void ZONE_FILLER_TOOL::Reset( RESET_REASON aReason )
473{
474}
475
476
478{
479}
480
481
483{
485
486 return disp;
487}
488
490{
491 return nullptr;
492}
493
494
496{
497 static PCB_SELECTION sel;
498
499 return sel;
500}
501
502
504{
505 static PCB_SELECTION sel;
506
507 return sel;
508}
509
511{
512 return BOX2I();
513}
514
515
516EDA_ITEM* PCB_SELECTION::GetTopLeftItem( bool onlyModules ) const
517{
518 return nullptr;
519}
520
521
522const std::vector<KIGFX::VIEW_ITEM*> PCB_SELECTION::updateDrawList() const
523{
524 std::vector<VIEW_ITEM*> items;
525
526 return items;
527}
528
529
530#if 0
532
537TRACK_BALL::TRACK_BALL(float x) : CAMERA(x) {};
540
541#endif
542
544
546{
547 return nullptr;
548}
549
550
552{
553 return 0;
554}
BOX2< VECTOR2I > BOX2I
Definition: box2.h:922
A base class for any item which can be embedded within the BOARD container class, and therefore insta...
Definition: board_item.h:79
Information pertinent to a Pcbnew printed circuit board.
Definition: board.h:290
A class used to derive camera objects from.
Definition: camera.h:103
Class DIALOG_FILTER_SELECTION_BASE.
DIALOG_FILTER_SELECTION_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("Filter Selected Items"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
void checkBoxClicked(wxCommandEvent &aEvent) override
DIALOG_FILTER_SELECTION(PCB_BASE_FRAME *aParent, OPTIONS &aOptions)
Create the filter selection dialog.
void allItemsClicked(wxCommandEvent &aEvent) override
Class DIALOG_FIND_BASE.
DIALOG_FIND_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=wxEmptyString, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE)
void onTextEnter(wxCommandEvent &event) override
bool Show(bool show=true) override
The Show method is overridden to make the search combobox focused by default.
void onFindNextClick(wxCommandEvent &event) override
void onSearchAgainClick(wxCommandEvent &event) override
DIALOG_FIND(PCB_BASE_FRAME *aParent)
Definition: dialog_find.cpp:54
void onFindPreviousClick(wxCommandEvent &event) override
void OnClose(wxCloseEvent &event) override
void OnCloseButtonClick(wxCommandEvent &aEvent) override
Dialog helper object to sit in the inheritance tree between wxDialog and any class written by wxFormB...
Definition: dialog_shim.h:88
A base class for most all the KiCad significant classes used in schematics and boards.
Definition: eda_item.h:89
A general implementation of a COLLECTORS_GUIDE.
Definition: collectors.h:319
Used when the right click button is pressed, or when the select tool is in effect.
Definition: collectors.h:202
LSET is a set of PCB_LAYER_IDs.
Definition: lset.h:36
Base PCB main window class for Pcbnew, Gerbview, and CvPcb footprint viewer.
Private implementation of firewalled private data.
DIALOG_FILTER_SELECTION::OPTIONS m_filterOpts
The selection tool: currently supports:
void highlight(EDA_ITEM *aItem, int aHighlightMode, SELECTION *aGroup=nullptr) override
Highlight the item visually.
int selectNet(const TOOL_EVENT &aEvent)
Select all copper connections belonging to the same net(s) as the items in the selection.
int filterSelection(const TOOL_EVENT &aEvent)
Return true if the given item passes the current SELECTION_FILTER_OPTIONS.
void Reset(RESET_REASON aReason) override
Bring the tool to a known, initial state.
void GuessSelectionCandidates(GENERAL_COLLECTOR &aCollector, const VECTOR2I &aWhere) const
Try to guess best selection candidates in case multiple items are clicked, by doing some brain-dead h...
bool itemPassesFilter(BOARD_ITEM *aItem, bool aMultiSelect)
bool selectionContains(const VECTOR2I &aPoint) const
void select(EDA_ITEM *aItem) override
Take necessary action mark an item as selected.
bool selectCursor(bool aForceSelect=false, CLIENT_SELECTION_FILTER aClientFilter=nullptr)
Select an item under the cursor unless there is something already selected.
PCB_SELECTION & RequestSelection(CLIENT_SELECTION_FILTER aClientFilter, bool aConfirmLockedItems=false)
Return the current selection, filtered according to aClientFilter.
const GENERAL_COLLECTORS_GUIDE getCollectorsGuide() const
bool Selectable(const BOARD_ITEM *aItem, bool checkVisibilityOnly=false) const
void FilterCollectedItems(GENERAL_COLLECTOR &aCollector, bool aMultiSelect)
Apply the SELECTION_FITLER_OPTIONS to the collector.
bool selectPoint(const VECTOR2I &aWhere, bool aOnDrag=false, bool *aSelectionCancelledFlag=nullptr, CLIENT_SELECTION_FILTER aClientFilter=nullptr)
Select an item pointed by the parameter aWhere.
void selectAllItemsOnSheet(wxString &aSheetPath)
Select all items with the given sheet timestamp/UUID name (the sheet path).
void setTransitions() override
Zoom the screen to center and fit the current selection.
int expandConnection(const TOOL_EVENT &aEvent)
Expand the current connected-item selection to the next boundary (junctions, pads,...
virtual bool ctrlClickHighlights() override
Determines if ctrl-click is highlight net or XOR selection.
int selectSheetContents(const TOOL_EVENT &aEvent)
Select all footprints belonging to same hierarchical sheet as the selected footprint (same sheet path...
int selectSameSheet(const TOOL_EVENT &aEvent)
Set selection to items passed by parameter and connected nets (optionally).
void EnterGroup()
Enter the group at the head of the current selection.
void zoomFitSelection()
Zoom the screen to fit the bounding box for cross probing/selection sync.
void selectAllConnectedTracks(const std::vector< BOARD_CONNECTED_ITEM * > &aStartItems, STOP_CONDITION aStopCondition)
Select connected tracks and vias.
int CursorSelection(const TOOL_EVENT &aEvent)
int ClearSelection(const TOOL_EVENT &aEvent)
PCB_SELECTION & GetSelection()
int Main(const TOOL_EVENT &aEvent)
The main loop.
void RebuildSelection()
Rebuild the selection from the EDA_ITEMs' selection flags.
int updateSelection(const TOOL_EVENT &aEvent)
Event handler to update the selection VIEW_ITEM.
bool Init() override
Init() is called once upon a registration of the tool.
void SelectAllItemsOnNet(int aNetCode, bool aSelect=true)
Select all items with the given net code.
bool selectMultiple()
Handle drawing a selection box that allows one to select many items at the same time.
void ExitGroup(bool aSelectGroup=false)
Leave the currently-entered group.
void unselect(EDA_ITEM *aItem) override
Take necessary action mark an item as unselected.
int SelectAll(const TOOL_EVENT &aEvent)
Unselect all items on the board.
PCB_SELECTION m_selection
void unhighlight(EDA_ITEM *aItem, int aHighlightMode, SELECTION *aGroup=nullptr) override
Unhighlight the item visually.
EDA_ITEM * GetTopLeftItem(bool aFootprintsOnly=false) const override
BOX2I GetBoundingBox() const override
const std::vector< KIGFX::VIEW_ITEM * > updateDrawList() const override
virtual bool Is45Limited() const
Should the tool use its 45° mode option?
PCB_DRAW_PANEL_GAL * canvas() const
PCBNEW_SETTINGS::DISPLAY_OPTIONS & displayOptions() const
virtual void setTransitions() override
This method is meant to be overridden in order to specify handlers for events.
virtual bool Init() override
Init() is called once upon a registration of the tool.
virtual void Reset(RESET_REASON aReason) override
Bring the tool to a known, initial state.
void doInteractiveItemPlacement(const TOOL_EVENT &aTool, INTERACTIVE_PLACER_BASE *aPlacer, const wxString &aCommitMessage, int aOptions=IPO_ROTATE|IPO_FLIP|IPO_REPEAT)
Helper function for performing a common interactive idiom: wait for a left click, place an item there...
const PCB_SELECTION & selection() const
static void NeighboringSegmentFilter(const VECTOR2I &aPt, GENERAL_COLLECTOR &aCollector, PCB_SELECTION_TOOL *aSelTool)
Generic, UI-independent tool event.
Definition: tool_event.h:167
TRACK_BALL(float aInitialDistance)
Definition: track_ball.cpp:42
void Reset(RESET_REASON aReason) override
Bring the tool to a known, initial state.
void setTransitions() override
This method is meant to be overridden in order to specify handlers for events.
This file is part of the common library.
KICURSOR
Definition: cursors.h:34
DDE server & client.
const FAB_LAYER_COLOR * GetColorStandardList()
Definition: mocks.cpp:545
int GetColorStandardListCount()
Definition: mocks.cpp:551
static bool itemIsIncludedByFilter(const BOARD_ITEM &aItem, const BOARD &aBoard, const DIALOG_FILTER_SELECTION::OPTIONS &aFilterOptions)
Function itemIsIncludedByFilter()
Definition: mocks.cpp:343
FP_LIB_TABLE GFootprintTable
The global footprint library table.
Definition: mocks.cpp:42
OBJECT_2D_TYPE
Definition: object_2d.h:45
std::function< void(const VECTOR2I &, GENERAL_COLLECTOR &, PCB_SELECTION_TOOL *)> CLIENT_SELECTION_FILTER
BBOX_3D()
Create with default values a bounding box (not initialized)
Definition: bbox_3d.cpp:37
~BBOX_3D()
Definition: bbox_3d.cpp:56
Struct that will be set with the result of the user choices in the dialog.