KiCad PCB EDA Suite
NET_SELECTOR_COMBOPOPUP Class Reference
Inheritance diagram for NET_SELECTOR_COMBOPOPUP:

Public Member Functions

 NET_SELECTOR_COMBOPOPUP ()
 
bool Create (wxWindow *aParent) override
 
wxWindow * GetControl () override
 
void SetStringValue (const wxString &aNetName) override
 
wxString GetStringValue () const override
 
void SetNetInfo (NETINFO_LIST *aNetInfoList)
 
void SetIndeterminate ()
 
bool IsIndeterminate ()
 
void SetSelectedNetcode (int aNetcode)
 
int GetSelectedNetcode ()
 
void SetSelectedNet (const wxString &aNetname)
 
wxString GetSelectedNetname ()
 
wxSize GetAdjustedSize (int aMinWidth, int aPrefHeight, int aMaxHeight) override
 
void OnPopup () override
 
void OnStartingKey (wxKeyEvent &aEvent)
 
void Accept ()
 

Protected Member Functions

wxSize updateSize ()
 
void rebuildList ()
 
void onIdle (wxIdleEvent &aEvent)
 
void onMouseMoved (const wxPoint aScreenPos)
 
void onMouseClick (wxMouseEvent &aEvent)
 
void onKeyDown (wxKeyEvent &aEvent)
 
void onEnter (wxCommandEvent &aEvent)
 
void onFilterEdit (wxCommandEvent &aEvent)
 
void doStartingKey (wxKeyEvent &aEvent)
 
void doSetFocus (wxWindow *aWindow)
 

Protected Attributes

wxTextValidator * m_filterValidator
 
wxTextCtrl * m_filterCtrl
 
wxListBox * m_listBox
 
int m_minPopupWidth
 
int m_maxPopupHeight
 
NETINFO_LISTm_netinfoList
 
int m_selectedNetcode
 
wxEvtHandler * m_focusHandler
 

Detailed Description

Definition at line 51 of file net_selector.cpp.

Constructor & Destructor Documentation

◆ NET_SELECTOR_COMBOPOPUP()

NET_SELECTOR_COMBOPOPUP::NET_SELECTOR_COMBOPOPUP ( )
inline

Definition at line 54 of file net_selector.cpp.

54  :
55  m_filterValidator( nullptr ),
56  m_filterCtrl( nullptr ),
57  m_listBox( nullptr ),
58  m_minPopupWidth( -1 ),
59  m_maxPopupHeight( 1000 ),
60  m_netinfoList( nullptr ),
61  m_selectedNetcode( 0 ),
62  m_focusHandler( nullptr )
63  { }
wxTextValidator * m_filterValidator
wxEvtHandler * m_focusHandler
NETINFO_LIST * m_netinfoList

Member Function Documentation

◆ Accept()

void NET_SELECTOR_COMBOPOPUP::Accept ( )
inline

Definition at line 172 of file net_selector.cpp.

173  {
174  wxString selectedNetName;
175  int selection = m_listBox->GetSelection();
176 
177  if( selection >= 0 )
178  selectedNetName = m_listBox->GetString( (unsigned) selection );
179 
180  if( selectedNetName.IsEmpty() )
181  {
182  m_selectedNetcode = -1;
183  GetComboCtrl()->SetValue( INDETERMINATE );
184  }
185  else if( selectedNetName == NO_NET )
186  {
187  m_selectedNetcode = 0;
188  GetComboCtrl()->SetValue( NO_NET );
189  }
190  else
191  {
192  m_selectedNetcode = m_netinfoList->GetNetItem( selectedNetName )->GetNet();
193  GetComboCtrl()->SetValue( selectedNetName );
194  }
195 
196  wxCommandEvent changeEvent( NET_SELECTED );
197  wxPostEvent( GetComboCtrl(), changeEvent );
198 
199  Dismiss();
200  }
NETINFO_LIST * m_netinfoList
#define INDETERMINATE
#define NO_NET
int GetNet() const
Function GetNet.
Definition: netinfo.h:231
NETINFO_ITEM * GetNetItem(int aNetCode) const
Function GetItem.

References NETINFO_ITEM::GetNet(), NETINFO_LIST::GetNetItem(), INDETERMINATE, m_listBox, m_netinfoList, m_selectedNetcode, and NO_NET.

Referenced by onEnter(), onKeyDown(), and onMouseClick().

◆ Create()

bool NET_SELECTOR_COMBOPOPUP::Create ( wxWindow *  aParent)
inlineoverride

Definition at line 65 of file net_selector.cpp.

66  {
67  wxPanel::Create( aParent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSIMPLE_BORDER );
68 
69  wxBoxSizer* mainSizer;
70  mainSizer = new wxBoxSizer( wxVERTICAL );
71 
72  wxStaticText* filterLabel = new wxStaticText( this, wxID_ANY, _( "Filter:" ) );
73  mainSizer->Add( filterLabel, 0, wxEXPAND, 0 );
74 
75  m_filterCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition,
76  wxDefaultSize, wxTE_PROCESS_ENTER );
77  m_filterValidator = new wxTextValidator( wxFILTER_EXCLUDE_CHAR_LIST );
78  m_filterValidator->SetCharExcludes( " " );
79  m_filterCtrl->SetValidator( *m_filterValidator );
80  mainSizer->Add( m_filterCtrl, 0, wxEXPAND, 0 );
81 
82  m_listBox = new wxListBox( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, 0,
83  wxLB_SINGLE|wxLB_NEEDED_SB );
84  mainSizer->Add( m_listBox, 0, wxEXPAND|wxTOP, 2 );
85 
86  SetSizer( mainSizer );
87  Layout();
88 
89  Connect( wxEVT_IDLE, wxIdleEventHandler( NET_SELECTOR_COMBOPOPUP::onIdle ), NULL, this );
90  Connect( wxEVT_CHAR_HOOK, wxKeyEventHandler( NET_SELECTOR_COMBOPOPUP::onKeyDown ), NULL, this );
91  Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( NET_SELECTOR_COMBOPOPUP::onMouseClick ), NULL, this );
92  m_listBox->Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( NET_SELECTOR_COMBOPOPUP::onMouseClick ), NULL, this );
93  m_filterCtrl->Connect( wxEVT_TEXT, wxCommandEventHandler( NET_SELECTOR_COMBOPOPUP::onFilterEdit ), NULL, this );
94  m_filterCtrl->Connect( wxEVT_TEXT_ENTER, wxCommandEventHandler( NET_SELECTOR_COMBOPOPUP::onEnter ), NULL, this );
95 
96  // <enter> in a ListBox comes in as a double-click on GTK
97  m_listBox->Connect( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler( NET_SELECTOR_COMBOPOPUP::onEnter ), NULL, this );
98 
99  return true;
100  }
void onIdle(wxIdleEvent &aEvent)
void onFilterEdit(wxCommandEvent &aEvent)
wxTextValidator * m_filterValidator
void onKeyDown(wxKeyEvent &aEvent)
void onEnter(wxCommandEvent &aEvent)
void onMouseClick(wxMouseEvent &aEvent)

References m_filterCtrl, m_filterValidator, m_listBox, onEnter(), onFilterEdit(), onIdle(), onKeyDown(), and onMouseClick().

◆ doSetFocus()

void NET_SELECTOR_COMBOPOPUP::doSetFocus ( wxWindow *  aWindow)
inlineprotected

Definition at line 427 of file net_selector.cpp.

428  {
429 #ifdef __WXOSX_MAC__
430  aWindow->OSXForceFocus();
431 #else
432  aWindow->SetFocus();
433 #endif
434  }

Referenced by onKeyDown(), onMouseMoved(), and OnStartingKey().

◆ doStartingKey()

void NET_SELECTOR_COMBOPOPUP::doStartingKey ( wxKeyEvent &  aEvent)
inlineprotected

Definition at line 394 of file net_selector.cpp.

395  {
396  if( aEvent.GetKeyCode() == WXK_BACK )
397  {
398  const long pos = m_filterCtrl->GetLastPosition();
399  m_filterCtrl->Remove( pos - 1, pos );
400  }
401  else
402  {
403  bool isPrintable;
404  int ch = aEvent.GetUnicodeKey();
405 
406  if( ch != WXK_NONE )
407  isPrintable = true;
408  else
409  {
410  ch = aEvent.GetKeyCode();
411  isPrintable = ch > WXK_SPACE && ch < WXK_START;
412  }
413 
414  if( isPrintable )
415  {
416  wxString text( static_cast<wxChar>( ch ) );
417 
418  // wxCHAR_HOOK chars have been converted to uppercase.
419  if( !aEvent.ShiftDown() )
420  text.MakeLower();
421 
422  m_filterCtrl->AppendText( text );
423  }
424  }
425  }

References m_filterCtrl.

Referenced by onKeyDown(), and OnStartingKey().

◆ GetAdjustedSize()

wxSize NET_SELECTOR_COMBOPOPUP::GetAdjustedSize ( int  aMinWidth,
int  aPrefHeight,
int  aMaxHeight 
)
inlineoverride

Definition at line 145 of file net_selector.cpp.

146  {
147  // Called when the popup is first shown. Stash the minWidth and maxHeight so we
148  // can use them later when refreshing the sizes after filter changes.
149  m_minPopupWidth = aMinWidth;
150  m_maxPopupHeight = aMaxHeight;
151 
152  return updateSize();
153  }

References m_maxPopupHeight, m_minPopupWidth, and updateSize().

◆ GetControl()

wxWindow* NET_SELECTOR_COMBOPOPUP::GetControl ( )
inlineoverride

Definition at line 102 of file net_selector.cpp.

102 { return this; }

◆ GetSelectedNetcode()

int NET_SELECTOR_COMBOPOPUP::GetSelectedNetcode ( )
inline

Definition at line 129 of file net_selector.cpp.

References m_selectedNetcode.

Referenced by NET_SELECTOR::GetSelectedNetcode().

◆ GetSelectedNetname()

wxString NET_SELECTOR_COMBOPOPUP::GetSelectedNetname ( )
inline

Definition at line 137 of file net_selector.cpp.

138  {
141  else
142  return wxEmptyString;
143  }
NETINFO_LIST * m_netinfoList
const wxString & GetNetname() const
Function GetNetname.
Definition: netinfo.h:239
NETINFO_ITEM * GetNetItem(int aNetCode) const
Function GetItem.

References NETINFO_LIST::GetNetItem(), NETINFO_ITEM::GetNetname(), m_netinfoList, and m_selectedNetcode.

Referenced by NET_SELECTOR::GetSelectedNetname().

◆ GetStringValue()

wxString NET_SELECTOR_COMBOPOPUP::GetStringValue ( ) const
inlineoverride

Definition at line 109 of file net_selector.cpp.

110  {
112 
113  if( netInfo && netInfo->GetNet() > 0 )
114  return netInfo->GetNetname();
115 
116  return NO_NET;
117  }
NETINFO_LIST * m_netinfoList
const wxString & GetNetname() const
Function GetNetname.
Definition: netinfo.h:239
#define NO_NET
Class NETINFO_ITEM handles the data for a net.
Definition: netinfo.h:69
int GetNet() const
Function GetNet.
Definition: netinfo.h:231
NETINFO_ITEM * GetNetItem(int aNetCode) const
Function GetItem.

References NETINFO_ITEM::GetNet(), NETINFO_LIST::GetNetItem(), NETINFO_ITEM::GetNetname(), m_netinfoList, m_selectedNetcode, and NO_NET.

Referenced by NET_SELECTOR::SetSelectedNet(), and NET_SELECTOR::SetSelectedNetcode().

◆ IsIndeterminate()

bool NET_SELECTOR_COMBOPOPUP::IsIndeterminate ( )
inline

Definition at line 126 of file net_selector.cpp.

126 { return m_selectedNetcode == -1; }

References m_selectedNetcode.

Referenced by NET_SELECTOR::IsIndeterminate().

◆ onEnter()

void NET_SELECTOR_COMBOPOPUP::onEnter ( wxCommandEvent &  aEvent)
inlineprotected

Definition at line 380 of file net_selector.cpp.

381  {
382  Accept();
383  }

References Accept().

Referenced by Create().

◆ onFilterEdit()

void NET_SELECTOR_COMBOPOPUP::onFilterEdit ( wxCommandEvent &  aEvent)
inlineprotected

Definition at line 385 of file net_selector.cpp.

386  {
387  rebuildList();
388  updateSize();
389 
390  if( m_listBox->GetCount() > 0 )
391  m_listBox->SetSelection( 0 );
392  }

References m_listBox, rebuildList(), and updateSize().

Referenced by Create().

◆ onIdle()

void NET_SELECTOR_COMBOPOPUP::onIdle ( wxIdleEvent &  aEvent)
inlineprotected

Definition at line 257 of file net_selector.cpp.

258  {
259  // Generate synthetic (but reliable) MouseMoved events
260  static wxPoint lastPos;
261  wxPoint screenPos = wxGetMousePosition();
262 
263  if( screenPos != lastPos )
264  {
265  lastPos = screenPos;
266  onMouseMoved( screenPos );
267  }
268 
269  if( m_focusHandler )
270  {
271  m_filterCtrl->PushEventHandler( m_focusHandler );
272  m_focusHandler = nullptr;
273  }
274  }
wxEvtHandler * m_focusHandler
void onMouseMoved(const wxPoint aScreenPos)

References m_filterCtrl, m_focusHandler, and onMouseMoved().

Referenced by Create().

◆ onKeyDown()

void NET_SELECTOR_COMBOPOPUP::onKeyDown ( wxKeyEvent &  aEvent)
inlineprotected

Definition at line 323 of file net_selector.cpp.

324  {
325  switch( aEvent.GetKeyCode() )
326  {
327  // Control keys go to the parent combobox
328  case WXK_TAB:
329  Dismiss();
330 
331  m_parent->NavigateIn( ( aEvent.ShiftDown() ? 0 : wxNavigationKeyEvent::IsForward ) |
332  ( aEvent.ControlDown() ? wxNavigationKeyEvent::WinChange : 0 ) );
333  break;
334 
335  case WXK_ESCAPE:
336  Dismiss();
337  break;
338 
339  case WXK_RETURN:
340  Accept();
341  break;
342 
343  // Arrows go to the list box
344  case WXK_DOWN:
345  case WXK_NUMPAD_DOWN:
347  m_listBox->SetSelection( std::min( m_listBox->GetSelection() + 1, (int) m_listBox->GetCount() - 1 ) );
348  break;
349 
350  case WXK_UP:
351  case WXK_NUMPAD_UP:
353  m_listBox->SetSelection( std::max( m_listBox->GetSelection() - 1, 0 ) );
354  break;
355 
356  // Everything else goes to the filter textbox
357  default:
358  if( !m_filterCtrl->HasFocus() )
359  {
361 
362  // Because we didn't have focus we missed our chance to have the native widget
363  // handle the keystroke. We'll have to do the first character ourselves.
364  doStartingKey( aEvent );
365  }
366  else
367  {
368  // On some platforms a wxComboFocusHandler will have been pushed which
369  // unhelpfully gives the event right back to the popup. Make sure the filter
370  // control is going to get the event.
371  if( m_filterCtrl->GetEventHandler() != m_filterCtrl )
372  m_focusHandler = m_filterCtrl->PopEventHandler();
373 
374  aEvent.Skip();
375  }
376  break;
377  }
378  }
wxEvtHandler * m_focusHandler
void doStartingKey(wxKeyEvent &aEvent)
#define max(a, b)
Definition: auxiliary.h:86
void doSetFocus(wxWindow *aWindow)
#define min(a, b)
Definition: auxiliary.h:85

References Accept(), doSetFocus(), doStartingKey(), m_filterCtrl, m_focusHandler, m_listBox, max, and min.

Referenced by Create().

◆ onMouseClick()

void NET_SELECTOR_COMBOPOPUP::onMouseClick ( wxMouseEvent &  aEvent)
inlineprotected

Definition at line 295 of file net_selector.cpp.

296  {
297  // Accept a click event from anywhere. Different platform implementations have
298  // different foibles with regard to transient popups and their children.
299 
300  if( aEvent.GetEventObject() == m_listBox )
301  {
302  m_listBox->SetSelection( m_listBox->HitTest( aEvent.GetPosition() ) );
303  Accept();
304  return;
305  }
306 
307  wxWindow* window = dynamic_cast<wxWindow*>( aEvent.GetEventObject() );
308 
309  if( window )
310  {
311  wxPoint screenPos = window->ClientToScreen( aEvent.GetPosition() );
312 
313  if( m_listBox->GetScreenRect().Contains( screenPos ) )
314  {
315  wxPoint localPos = m_listBox->ScreenToClient( screenPos );
316 
317  m_listBox->SetSelection( m_listBox->HitTest( localPos ) );
318  Accept();
319  }
320  }
321  }

References Accept(), and m_listBox.

Referenced by Create().

◆ onMouseMoved()

void NET_SELECTOR_COMBOPOPUP::onMouseMoved ( const wxPoint  aScreenPos)
inlineprotected

Definition at line 277 of file net_selector.cpp.

278  {
279  if( m_listBox->GetScreenRect().Contains( aScreenPos ) )
280  {
282 
283  wxPoint relativePos = m_listBox->ScreenToClient( aScreenPos );
284  int item = m_listBox->HitTest( relativePos );
285 
286  if( item >= 0 )
287  m_listBox->SetSelection( item );
288  }
289  else if( m_filterCtrl->GetScreenRect().Contains( aScreenPos ) )
290  {
292  }
293  }
void doSetFocus(wxWindow *aWindow)

References doSetFocus(), m_filterCtrl, and m_listBox.

Referenced by onIdle().

◆ OnPopup()

void NET_SELECTOR_COMBOPOPUP::OnPopup ( )
inlineoverride

Definition at line 155 of file net_selector.cpp.

156  {
157  // While it can sometimes be useful to keep the filter, it's always expected.
158  // Better to clear it.
159  m_filterCtrl->Clear();
160 
161  // The updateSize() call in GetAdjustedSize() leaves the height off-by-one for
162  // some reason, so do it again.
163  updateSize();
164  }

References m_filterCtrl, and updateSize().

◆ OnStartingKey()

void NET_SELECTOR_COMBOPOPUP::OnStartingKey ( wxKeyEvent &  aEvent)
inline

Definition at line 166 of file net_selector.cpp.

167  {
169  doStartingKey( aEvent );
170  }
void doStartingKey(wxKeyEvent &aEvent)
void doSetFocus(wxWindow *aWindow)

References doSetFocus(), doStartingKey(), and m_filterCtrl.

Referenced by NET_SELECTOR::onKeyDown().

◆ rebuildList()

void NET_SELECTOR_COMBOPOPUP::rebuildList ( )
inlineprotected

Definition at line 232 of file net_selector.cpp.

233  {
234  wxArrayString netNames;
235  wxString filter = m_filterCtrl->GetValue().MakeLower();
236 
237  if( !filter.IsEmpty() )
238  filter = wxT( "*" ) + filter + wxT( "*" );
239 
240  for( NETINFO_ITEM* netinfo : *m_netinfoList )
241  {
242  if( netinfo->GetNet() > 0 && netinfo->IsCurrent() )
243  {
244  if( filter.IsEmpty() || wxString( netinfo->GetNetname() ).MakeLower().Matches( filter ) )
245  netNames.push_back( netinfo->GetNetname() );
246  }
247  }
248  std::sort( netNames.begin(), netNames.end() );
249 
250  // Special handling for <no net>
251  if( filter.IsEmpty() || wxString( NO_NET ).MakeLower().Matches( filter ) )
252  netNames.insert( netNames.begin(), NO_NET );
253 
254  m_listBox->Set( netNames );
255  }
NETINFO_LIST * m_netinfoList
#define NO_NET
Class NETINFO_ITEM handles the data for a net.
Definition: netinfo.h:69

References m_filterCtrl, m_listBox, m_netinfoList, and NO_NET.

Referenced by onFilterEdit(), and SetNetInfo().

◆ SetIndeterminate()

void NET_SELECTOR_COMBOPOPUP::SetIndeterminate ( )
inline

Definition at line 125 of file net_selector.cpp.

References m_selectedNetcode.

Referenced by NET_SELECTOR::SetIndeterminate().

◆ SetNetInfo()

void NET_SELECTOR_COMBOPOPUP::SetNetInfo ( NETINFO_LIST aNetInfoList)
inline

Definition at line 119 of file net_selector.cpp.

120  {
121  m_netinfoList = aNetInfoList;
122  rebuildList();
123  }
NETINFO_LIST * m_netinfoList

References m_netinfoList, and rebuildList().

Referenced by NET_SELECTOR::SetNetInfo().

◆ SetSelectedNet()

void NET_SELECTOR_COMBOPOPUP::SetSelectedNet ( const wxString &  aNetname)
inline

Definition at line 131 of file net_selector.cpp.

132  {
133  if( m_netinfoList && m_netinfoList->GetNetItem( aNetname ) )
135  }
NETINFO_LIST * m_netinfoList
int GetNet() const
Function GetNet.
Definition: netinfo.h:231
NETINFO_ITEM * GetNetItem(int aNetCode) const
Function GetItem.

References NETINFO_ITEM::GetNet(), NETINFO_LIST::GetNetItem(), m_netinfoList, and m_selectedNetcode.

Referenced by NET_SELECTOR::SetSelectedNet().

◆ SetSelectedNetcode()

void NET_SELECTOR_COMBOPOPUP::SetSelectedNetcode ( int  aNetcode)
inline

Definition at line 128 of file net_selector.cpp.

128 { m_selectedNetcode = aNetcode; }

References m_selectedNetcode.

Referenced by NET_SELECTOR::SetSelectedNetcode().

◆ SetStringValue()

void NET_SELECTOR_COMBOPOPUP::SetStringValue ( const wxString &  aNetName)
inlineoverride

Definition at line 104 of file net_selector.cpp.

105  {
106  // shouldn't be here (combo is read-only)
107  }

◆ updateSize()

wxSize NET_SELECTOR_COMBOPOPUP::updateSize ( )
inlineprotected

Definition at line 203 of file net_selector.cpp.

204  {
205  int listTop = m_listBox->GetRect().y;
206  int itemHeight = GetTextSize( wxT( "Xy" ), this ).y + LIST_ITEM_PADDING;
207  int listHeight = m_listBox->GetCount() * itemHeight + LIST_PADDING;
208 
209  if( listTop + listHeight >= m_maxPopupHeight )
210  listHeight = m_maxPopupHeight - listTop - 1;
211 
212  int listWidth = m_minPopupWidth;
213 
214  for( size_t i = 0; i < m_listBox->GetCount(); ++i )
215  {
216  int itemWidth = GetTextSize( m_listBox->GetString( i ), m_listBox ).x;
217  listWidth = std::max( listWidth, itemWidth + LIST_PADDING * 3 );
218  }
219 
220  wxSize listSize( listWidth, listHeight );
221  wxSize popupSize( listWidth, listTop + listHeight );
222 
223  SetSize( popupSize ); // us
224  GetParent()->SetSize( popupSize ); // the window that wxComboCtrl put us in
225 
226  m_listBox->SetMinSize( listSize );
227  m_listBox->SetSize( listSize );
228 
229  return popupSize;
230  }
wxSize GetTextSize(const wxString &aSingleLine, wxWindow *aWindow)
Return the size of aSingleLine of text when it is rendered in aWindow using whatever font is currentl...
Definition: common.cpp:114
#define LIST_ITEM_PADDING
#define max(a, b)
Definition: auxiliary.h:86
size_t i
Definition: json11.cpp:597
#define LIST_PADDING

References GetTextSize(), i, LIST_ITEM_PADDING, LIST_PADDING, m_listBox, m_maxPopupHeight, m_minPopupWidth, and max.

Referenced by GetAdjustedSize(), onFilterEdit(), and OnPopup().

Member Data Documentation

◆ m_filterCtrl

wxTextCtrl* NET_SELECTOR_COMBOPOPUP::m_filterCtrl
protected

◆ m_filterValidator

wxTextValidator* NET_SELECTOR_COMBOPOPUP::m_filterValidator
protected

Definition at line 437 of file net_selector.cpp.

Referenced by Create().

◆ m_focusHandler

wxEvtHandler* NET_SELECTOR_COMBOPOPUP::m_focusHandler
protected

Definition at line 447 of file net_selector.cpp.

Referenced by onIdle(), and onKeyDown().

◆ m_listBox

wxListBox* NET_SELECTOR_COMBOPOPUP::m_listBox
protected

◆ m_maxPopupHeight

int NET_SELECTOR_COMBOPOPUP::m_maxPopupHeight
protected

Definition at line 441 of file net_selector.cpp.

Referenced by GetAdjustedSize(), and updateSize().

◆ m_minPopupWidth

int NET_SELECTOR_COMBOPOPUP::m_minPopupWidth
protected

Definition at line 440 of file net_selector.cpp.

Referenced by GetAdjustedSize(), and updateSize().

◆ m_netinfoList

NETINFO_LIST* NET_SELECTOR_COMBOPOPUP::m_netinfoList
protected

◆ m_selectedNetcode

int NET_SELECTOR_COMBOPOPUP::m_selectedNetcode
protected

The documentation for this class was generated from the following file: