KiCad PCB EDA Suite
Loading...
Searching...
No Matches
pcb_search_pane.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 The KiCad Developers, see AUTHORS.txt for contributors.
5 *
6 * This program is free software: you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation, either version 3 of the License, or (at your
9 * option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#include <pcb_edit_frame.h>
21#include "pcb_search_pane.h"
22#include "search_handlers.h"
23
24
26 SEARCH_PANE( aFrame ),
27 m_pcbFrame( aFrame )
28{
29 m_brd = m_pcbFrame->GetBoard();
30
31 if( m_brd != nullptr )
32 m_brd->AddListener( this );
33
34 m_pcbFrame->Bind( EDA_EVT_UNITS_CHANGED, &PCB_SEARCH_PANE::onUnitsChanged, this );
35 m_pcbFrame->Bind( EDA_EVT_BOARD_CHANGING, &PCB_SEARCH_PANE::onBoardChanging, this );
36 m_pcbFrame->Bind( EDA_EVT_BOARD_CHANGED, &PCB_SEARCH_PANE::onBoardChanged, this );
37
38 wxFont infoFont = KIUI::GetDockedPaneFont( this );
39 SetFont( infoFont );
40 m_notebook->SetFont( infoFont );
41
42 AddSearcher( std::make_shared<FOOTPRINT_SEARCH_HANDLER>( aFrame ) );
43 AddSearcher( std::make_shared<ZONE_SEARCH_HANDLER>( aFrame ) );
44 AddSearcher( std::make_shared<NETS_SEARCH_HANDLER>( aFrame ) );
45 AddSearcher( std::make_shared<RATSNEST_SEARCH_HANDLER>( aFrame ) );
46 AddSearcher( std::make_shared<TEXT_SEARCH_HANDLER>( aFrame ) );
47 AddSearcher( std::make_shared<GROUP_SEARCH_HANDLER>( aFrame ) );
48 AddSearcher( std::make_shared<DRILL_SEARCH_HANDLER>( aFrame ) );
49}
50
51
53{
54 m_pcbFrame->Unbind( EDA_EVT_UNITS_CHANGED, &PCB_SEARCH_PANE::onUnitsChanged, this );
55 m_pcbFrame->Unbind( EDA_EVT_BOARD_CHANGING, &PCB_SEARCH_PANE::onBoardChanging, this );
56 m_pcbFrame->Unbind( EDA_EVT_BOARD_CHANGED, &PCB_SEARCH_PANE::onBoardChanged, this );
57}
58
59
60void PCB_SEARCH_PANE::onUnitsChanged( wxCommandEvent& event )
61{
64 event.Skip();
65}
66
67
68void PCB_SEARCH_PANE::onBoardChanging( wxCommandEvent& event )
69{
71 event.Skip();
72}
73
74
75void PCB_SEARCH_PANE::onBoardChanged( wxCommandEvent& event )
76{
77 m_brd = m_pcbFrame->GetBoard();
78
79 if( m_brd != nullptr )
80 m_brd->AddListener( this );
81
84 event.Skip();
85}
86
87
89{
90 if( !IsShownOnScreen() )
91 return;
92
94}
95
96
97void PCB_SEARCH_PANE::OnBoardItemsAdded( BOARD& aBoard, std::vector<BOARD_ITEM*>& aBoardItems )
98{
99 if( !IsShownOnScreen() )
100 return;
101
103}
104
105
107{
108 if( !IsShownOnScreen() )
109 return;
110
112}
113
114
115void PCB_SEARCH_PANE::OnBoardItemsRemoved( BOARD& aBoard, std::vector<BOARD_ITEM*>& aBoardItems )
116{
117 if( !IsShownOnScreen() )
118 return;
119
121}
122
123
127
128
130{
131 if( !IsShownOnScreen() )
132 return;
133
135}
136
137
138void PCB_SEARCH_PANE::OnBoardItemsChanged( BOARD& aBoard, std::vector<BOARD_ITEM*>& aBoardItems )
139{
140 if( !IsShownOnScreen() )
141 return;
142
144}
145
146
150
151
153{
154 if( !IsShownOnScreen() )
155 return;
156
158}
159
160void PCB_SEARCH_PANE::OnBoardCompositeUpdate( BOARD& aBoard, std::vector<BOARD_ITEM*>& aAddedItems,
161 std::vector<BOARD_ITEM*>& aRemovedItems,
162 std::vector<BOARD_ITEM*>& aChangedItems )
163{
164 if( !IsShownOnScreen() )
165 return;
166
168}
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:322
The main frame for Pcbnew.
virtual void OnBoardItemRemoved(BOARD &aBoard, BOARD_ITEM *aBoardItem) override
virtual void OnBoardHighlightNetChanged(BOARD &aBoard) override
virtual ~PCB_SEARCH_PANE()
void onUnitsChanged(wxCommandEvent &event)
virtual void OnBoardNetSettingsChanged(BOARD &aBoard) override
void onBoardChanging(wxCommandEvent &event)
virtual void OnBoardRatsnestChanged(BOARD &aBoard) override
virtual void OnBoardItemAdded(BOARD &aBoard, BOARD_ITEM *aBoardItem) override
void onBoardChanged(wxCommandEvent &event)
virtual void OnBoardItemsChanged(BOARD &aBoard, std::vector< BOARD_ITEM * > &aBoardItems) override
PCB_SEARCH_PANE(PCB_EDIT_FRAME *aFrame)
virtual void OnBoardItemsRemoved(BOARD &aBoard, std::vector< BOARD_ITEM * > &aBoardItems) override
virtual void OnBoardItemChanged(BOARD &aBoard, BOARD_ITEM *aBoardItem) override
virtual void OnBoardItemsAdded(BOARD &aBoard, std::vector< BOARD_ITEM * > &aBoardItems) override
virtual void OnBoardCompositeUpdate(BOARD &aBoard, std::vector< BOARD_ITEM * > &aAddedItems, std::vector< BOARD_ITEM * > &aRemovedItems, std::vector< BOARD_ITEM * > &aChangedItems) override
PCB_EDIT_FRAME * m_pcbFrame
wxNotebook * m_notebook
void RefreshSearch()
void AddSearcher(const std::shared_ptr< SEARCH_HANDLER > &aHandler)
SEARCH_PANE(EDA_DRAW_FRAME *aFrame)
void ClearAllResults()
KICOMMON_API wxFont GetDockedPaneFont(wxWindow *aWindow)