KiCad PCB EDA Suite
PNS_TUNE_STATUS_POPUP Class Reference

#include <pns_tune_status_popup.h>

Inheritance diagram for PNS_TUNE_STATUS_POPUP:
STATUS_TEXT_POPUP STATUS_POPUP

Public Member Functions

 PNS_TUNE_STATUS_POPUP (wxWindow *aParent)
 
 ~PNS_TUNE_STATUS_POPUP () override
 
void UpdateStatus (PNS::ROUTER *aRouter)
 
void SetText (const wxString &aText)
 Display a text. More...
 
void SetTextColor (const wxColour &aColor)
 Change text color. More...
 
virtual void Popup (wxWindow *aFocus=nullptr)
 
virtual void PopupFor (int aMsecs)
 
virtual void Move (const wxPoint &aWhere)
 
virtual void Move (const VECTOR2I &aWhere)
 
void Expire (int aMsecs)
 Hide the popup after a specified time. More...
 

Protected Member Functions

void updateSize ()
 
void onCharHook (wxKeyEvent &aEvent)
 Expire timer even handler. More...
 
void onExpire (wxTimerEvent &aEvent)
 

Protected Attributes

wxStaticText * m_statusLine
 
wxPanel * m_panel
 
wxBoxSizer * m_topSizer
 
wxTimer m_expireTimer
 

Detailed Description

Definition at line 37 of file pns_tune_status_popup.h.

Constructor & Destructor Documentation

◆ PNS_TUNE_STATUS_POPUP()

PNS_TUNE_STATUS_POPUP::PNS_TUNE_STATUS_POPUP ( wxWindow *  aParent)
inline

Definition at line 40 of file pns_tune_status_popup.h.

40  :
41  STATUS_TEXT_POPUP( aParent )
42  { }
STATUS_TEXT_POPUP(wxWindow *aParent)

◆ ~PNS_TUNE_STATUS_POPUP()

PNS_TUNE_STATUS_POPUP::~PNS_TUNE_STATUS_POPUP ( )
inlineoverride

Definition at line 46 of file pns_tune_status_popup.h.

46 { Hide(); }

Member Function Documentation

◆ Expire()

void STATUS_POPUP::Expire ( int  aMsecs)
inherited

Hide the popup after a specified time.

Parameters
aMsecsis the time expressed in milliseconds

Definition at line 96 of file status_popup.cpp.

97 {
98  m_expireTimer.StartOnce( aMsecs );
99 }
wxTimer m_expireTimer
Definition: status_popup.h:72

References STATUS_POPUP::m_expireTimer.

Referenced by STATUS_POPUP::PopupFor().

◆ Move() [1/2]

void STATUS_POPUP::Move ( const wxPoint &  aWhere)
virtualinherited

Definition at line 90 of file status_popup.cpp.

91 {
92  SetPosition( aWhere );
93 }
void SetPosition(const wxString &aStr, const wxString &aDefaultMeasurementUnit, int *aX, int *aY, const wxString &aActualConversion)

References PCAD2KICAD::SetPosition().

Referenced by PAD_TOOL::EnumeratePads(), and LENGTH_TUNER_TOOL::updateStatusPopup().

◆ Move() [2/2]

void STATUS_POPUP::Move ( const VECTOR2I aWhere)
virtualinherited

Definition at line 84 of file status_popup.cpp.

85 {
86  SetPosition( wxPoint( aWhere.x, aWhere.y ) );
87 }
void SetPosition(const wxString &aStr, const wxString &aDefaultMeasurementUnit, int *aX, int *aY, const wxString &aActualConversion)

References PCAD2KICAD::SetPosition(), VECTOR2< T >::x, and VECTOR2< T >::y.

◆ onCharHook()

void STATUS_POPUP::onCharHook ( wxKeyEvent &  aEvent)
protectedinherited

Expire timer even handler.

Definition at line 54 of file status_popup.cpp.

55 {
56  // Key events from the status popup don't get put through the wxWidgets event system on
57  // OSX, so we have to fall back to the CHAR_HOOK to forward hotkeys from the popup to
58  // the canvas / frame.
59  aEvent.SetEventType( wxEVT_CHAR );
60 
61  EDA_DRAW_FRAME* frame = dynamic_cast<EDA_DRAW_FRAME*>( GetParent() );
62 
63  if( frame )
64  frame->GetCanvas()->OnEvent( aEvent );
65  else
66  GetParent()->GetEventHandler()->ProcessEvent( aEvent );
67 }
void OnEvent(wxEvent &aEvent)
Used to forward events to the canvas from popups, etc.
virtual EDA_DRAW_PANEL_GAL * GetCanvas() const
Return a pointer to GAL-based canvas of given EDA draw frame.
The base class for create windows for drawing purpose.

References EDA_DRAW_FRAME::GetCanvas(), and EDA_DRAW_PANEL_GAL::OnEvent().

Referenced by STATUS_POPUP::STATUS_POPUP().

◆ onExpire()

void STATUS_POPUP::onExpire ( wxTimerEvent &  aEvent)
protectedinherited

Definition at line 109 of file status_popup.cpp.

110 {
111  Hide();
112 }

Referenced by STATUS_POPUP::STATUS_POPUP().

◆ Popup()

void STATUS_POPUP::Popup ( wxWindow *  aFocus = nullptr)
virtualinherited

Definition at line 70 of file status_popup.cpp.

71 {
72  Show( true );
73  Raise();
74 }

Referenced by PAD_TOOL::EnumeratePads(), LENGTH_TUNER_TOOL::performTuning(), and STATUS_POPUP::PopupFor().

◆ PopupFor()

void STATUS_POPUP::PopupFor ( int  aMsecs)
virtualinherited

Definition at line 77 of file status_popup.cpp.

78 {
79  Popup();
80  Expire( aMsecs );
81 }
virtual void Popup(wxWindow *aFocus=nullptr)
void Expire(int aMsecs)
Hide the popup after a specified time.

References STATUS_POPUP::Expire(), and STATUS_POPUP::Popup().

◆ SetText()

void STATUS_TEXT_POPUP::SetText ( const wxString &  aText)
inherited

Display a text.

Parameters
aTextis the text to be displayed.

Definition at line 126 of file status_popup.cpp.

127 {
128  m_statusLine->SetLabel( aText );
129  updateSize();
130 }
wxStaticText * m_statusLine
Definition: status_popup.h:100

References STATUS_TEXT_POPUP::m_statusLine, and STATUS_POPUP::updateSize().

Referenced by PAD_TOOL::EnumeratePads(), and UpdateStatus().

◆ SetTextColor()

void STATUS_TEXT_POPUP::SetTextColor ( const wxColour &  aColor)
inherited

Change text color.

Parameters
aColoris the new text color.

Definition at line 133 of file status_popup.cpp.

134 {
135  m_statusLine->SetForegroundColour( aColor );
136 }
wxStaticText * m_statusLine
Definition: status_popup.h:100

References STATUS_TEXT_POPUP::m_statusLine.

Referenced by UpdateStatus().

◆ updateSize()

void STATUS_POPUP::updateSize ( )
protectedinherited

Definition at line 102 of file status_popup.cpp.

103 {
104  m_topSizer->Fit( m_panel );
105  SetClientSize( m_panel->GetSize() );
106 }
wxPanel * m_panel
Definition: status_popup.h:70
wxBoxSizer * m_topSizer
Definition: status_popup.h:71

References STATUS_POPUP::m_panel, and STATUS_POPUP::m_topSizer.

Referenced by STATUS_TEXT_POPUP::SetText().

◆ UpdateStatus()

void PNS_TUNE_STATUS_POPUP::UpdateStatus ( PNS::ROUTER aRouter)

Definition at line 27 of file pns_tune_status_popup.cpp.

28 {
29  PNS::MEANDER_PLACER_BASE* placer = dynamic_cast<PNS::MEANDER_PLACER_BASE*>( aRouter->Placer() );
30 
31  if( !placer )
32  return;
33 
34  EDA_DRAW_FRAME* frame = static_cast<EDA_DRAW_FRAME*>( GetParent() );
35 
36  SetText( placer->TuningInfo( frame->GetUserUnits() ) );
37 
38  // Determine the background color first and choose a contrasting value
39  COLOR4D bg( m_panel->GetBackgroundColour() );
40  double h, s, l;
41  bg.ToHSL( h, s, l );
42 
43  switch( placer->TuningStatus() )
44  {
46  if( l < 0.5 )
47  SetTextColor( wxColor( 127, 200, 127 ) );
48  else
49  SetTextColor( wxColor( 0, 128, 0 ) );
50 
51  break;
53  if( l < 0.5 )
54  SetTextColor( wxColor( 242, 100, 126 ) );
55  else
56  SetTextColor( wxColor( 128, 64, 64 ) );
57 
58  break;
60  if( l < 0.5 )
61  SetTextColor( wxColor( 66, 184, 235 ) );
62  else
63  SetTextColor( wxColor( 19, 19, 195 ) );
64 
65  break;
66  }
67 }
Base class for Single trace & Differential pair meandering tools, as both of them share a lot of code...
void SetTextColor(const wxColour &aColor)
Change text color.
virtual const wxString TuningInfo(EDA_UNITS aUnits) const =0
Return a string describing the status and length of the tuned traces.
PLACEMENT_ALGO * Placer()
Definition: pns_router.h:205
The base class for create windows for drawing purpose.
virtual TUNING_STATUS TuningStatus() const =0
Return the tuning status (too short, too long, etc.) of the trace(s) being tuned.
wxPanel * m_panel
Definition: status_popup.h:70
void ToHSL(double &aOutHue, double &aOutSaturation, double &aOutValue) const
Converts current color (stored in RGB) to HSL format.
Definition: color4d.cpp:285
EDA_UNITS GetUserUnits() const
Return the user units currently in use.
void SetText(const wxString &aText)
Display a text.
A color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:103

References EDA_BASE_FRAME::GetUserUnits(), STATUS_POPUP::m_panel, PNS::ROUTER::Placer(), STATUS_TEXT_POPUP::SetText(), STATUS_TEXT_POPUP::SetTextColor(), KIGFX::COLOR4D::ToHSL(), PNS::MEANDER_PLACER_BASE::TOO_LONG, PNS::MEANDER_PLACER_BASE::TOO_SHORT, PNS::MEANDER_PLACER_BASE::TUNED, PNS::MEANDER_PLACER_BASE::TuningInfo(), and PNS::MEANDER_PLACER_BASE::TuningStatus().

Referenced by LENGTH_TUNER_TOOL::updateStatusPopup().

Member Data Documentation

◆ m_expireTimer

wxTimer STATUS_POPUP::m_expireTimer
protectedinherited

Definition at line 72 of file status_popup.h.

Referenced by STATUS_POPUP::Expire().

◆ m_panel

wxPanel* STATUS_POPUP::m_panel
protectedinherited

◆ m_statusLine

wxStaticText* STATUS_TEXT_POPUP::m_statusLine
protectedinherited

◆ m_topSizer

wxBoxSizer* STATUS_POPUP::m_topSizer
protectedinherited

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