sim: tuner slider now located in a nested wxPanel

This commit is contained in:
Tomasz Wlostowski 2016-08-11 14:42:00 +02:00 committed by Maciej Suminski
parent 8c14f2f6b1
commit 1cb7f665fb
2 changed files with 17 additions and 10 deletions

View File

@ -29,9 +29,9 @@
#include <template_fieldnames.h>
#include <netlist_exporters/netlist_exporter_pspice.h>
TUNER_SLIDER::TUNER_SLIDER( SIM_PLOT_FRAME* aParent, SCH_COMPONENT* aComponent )
TUNER_SLIDER::TUNER_SLIDER( SIM_PLOT_FRAME* aFrame, wxWindow* aParent, SCH_COMPONENT* aComponent )
: TUNER_SLIDER_BASE( aParent ), m_component( aComponent ),
m_min( 0.0 ), m_max( 0.0 ), m_value( 0.0 )
m_min( 0.0 ), m_max( 0.0 ), m_value( 0.0 ), m_frame ( aFrame )
{
const wxString compName = aComponent->GetField( REFERENCE )->GetText();
m_name->SetLabel( compName );
@ -43,9 +43,14 @@ TUNER_SLIDER::TUNER_SLIDER( SIM_PLOT_FRAME* aParent, SCH_COMPONENT* aComponent )
m_spiceName = wxString( prim + compName ).Lower();
// Call Set*() methods to update fields and slider
SetMax( SPICE_VALUE( 2.0 ) * m_value );
SetMin( SPICE_VALUE( 0.5 ) * m_value );
SetValue( m_value );
m_max = SPICE_VALUE( 2.0 ) * m_value;
m_min = SPICE_VALUE( 0.5 ) * m_value;
m_minText->SetValue( m_min.ToOrigString() );
m_maxText->SetValue( m_max.ToOrigString() );
updateValueText();
updateSlider();
m_simTimer.SetOwner( this );
Connect( wxEVT_TIMER, wxTimerEventHandler( TUNER_SLIDER::onSimTimer ), NULL, this );
@ -114,7 +119,8 @@ void TUNER_SLIDER::updateComponentValue()
void TUNER_SLIDER::updateSlider()
{
assert( m_max >= m_value && m_value >= m_min );
m_slider->SetValue( ( ( m_value - m_min ) / ( m_max - m_min ) ).ToDouble() * 100 );
m_slider->SetValue( ( ( m_value - m_min ) / ( m_max - m_min ) ).ToDouble() * 100.0 );
}
@ -127,7 +133,7 @@ void TUNER_SLIDER::updateValueText()
void TUNER_SLIDER::onClose( wxCommandEvent& event )
{
static_cast<SIM_PLOT_FRAME*>( GetParent() )->RemoveTuner( this );
m_frame->RemoveTuner( this );
}
@ -197,8 +203,7 @@ void TUNER_SLIDER::onSimTimer( wxTimerEvent& event )
{
if(m_changed)
{
printf("Slider Ch\n");
wxQueueEvent( GetParent(), new wxCommandEvent( EVT_SIM_UPDATE ) );
wxQueueEvent( m_frame, new wxCommandEvent( EVT_SIM_UPDATE ) );
m_changed = false;
}
}

View File

@ -40,7 +40,7 @@ class SCH_COMPONENT;
class TUNER_SLIDER : public TUNER_SLIDER_BASE
{
public:
TUNER_SLIDER( SIM_PLOT_FRAME* aParent, SCH_COMPONENT* aComponent );
TUNER_SLIDER( SIM_PLOT_FRAME *aFrame, wxWindow* aParent, SCH_COMPONENT* aComponent );
wxString GetComponentName() const
{
@ -95,6 +95,8 @@ private:
SPICE_VALUE m_min, m_max, m_value;
bool m_changed;
SIM_PLOT_FRAME *m_frame;
};
#endif /* TUNER_SLIDER_H */