X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/846e1424e2f563b699e7fcb81d10cf6f2246487f..f1567cddead054974c4a079ed8ee2c798ef998dc:/samples/plot/plot.cpp?ds=sidebyside diff --git a/samples/plot/plot.cpp b/samples/plot/plot.cpp index 50a1932c39..447944fd7b 100644 --- a/samples/plot/plot.cpp +++ b/samples/plot/plot.cpp @@ -45,7 +45,7 @@ public: virtual wxInt32 GetStartX() { return 0; } virtual wxInt32 GetEndX() - { return 10000; } + { return 7000; } virtual double GetY( wxInt32 x ) { @@ -64,6 +64,9 @@ public: void OnAbout( wxCommandEvent &event ); void OnQuit( wxCommandEvent &event ); + + void OnPlotClick( wxPlotEvent &event ); + void OnPlotDClick( wxPlotEvent &event ); wxPlotWindow *m_plot; wxTextCtrl *m_log; @@ -93,8 +96,10 @@ const int ID_ABOUT = 109; IMPLEMENT_DYNAMIC_CLASS( MyFrame, wxFrame ) BEGIN_EVENT_TABLE(MyFrame,wxFrame) - EVT_MENU (ID_ABOUT, MyFrame::OnAbout) - EVT_MENU (ID_QUIT, MyFrame::OnQuit) + EVT_MENU (ID_ABOUT, MyFrame::OnAbout) + EVT_MENU (ID_QUIT, MyFrame::OnQuit) + EVT_PLOT_CLICKED ( -1, MyFrame::OnPlotClick) + EVT_PLOT_DOUBLECLICKED ( -1, MyFrame::OnPlotDClick) END_EVENT_TABLE() MyFrame::MyFrame() @@ -114,11 +119,17 @@ MyFrame::MyFrame() int widths[] = { -1, 100 }; SetStatusWidths( 2, widths ); - m_plot = new wxPlotWindow( this, -1, wxPoint(0,0), wxSize(100,100), wxSUNKEN_BORDER ); - m_plot->SetScrollbars( 10, 10, 500, 0 ); + m_plot = new wxPlotWindow( this, -1, wxPoint(0,0), wxSize(100,100), wxSUNKEN_BORDER | wxPLOT_DEFAULT ); + m_plot->SetUnitsPerValue( 0.01 ); m_plot->Add( new MyPlotCurve( 0, -1.5, 1.5 ) ); m_plot->Add( new MyPlotCurve( 50, -1.5, 1.5 ) ); + wxPlotOnOffCurve *oo = new wxPlotOnOffCurve( 10 ); + oo->Add( 10, 20 ); + oo->Add( 25, 30 ); + oo->Add( 100, 400 ); + oo->Add( 1000, 2000 ); + m_plot->Add( oo ); m_log = new wxTextCtrl( this, -1, "This is the log window.\n", wxPoint(0,0), wxSize(100,100), wxTE_MULTILINE ); wxLog *old_log = wxLog::SetActiveTarget( new wxLogTextCtrl( m_log ) ); @@ -145,6 +156,20 @@ void MyFrame::OnAbout( wxCommandEvent &WXUNUSED(event) ) "About wxPlotWindow Demo", wxICON_INFORMATION | wxOK ); } +void MyFrame::OnPlotClick( wxPlotEvent &event ) +{ + double x = event.GetPosition() * m_plot->GetUnitsPerValue(); + double y = event.GetCurve()->GetY( event.GetPosition() ); + wxLogMessage( "Clicked on curve at x coordinate: %f, value: %f", x, y ); +} + +void MyFrame::OnPlotDClick( wxPlotEvent &event ) +{ + double x = event.GetPosition() * m_plot->GetUnitsPerValue(); + double y = event.GetCurve()->GetY( event.GetPosition() ); + wxLogMessage( "Double clicked on curve at x coordinate: %f, value: %f", x, y ); +} + //----------------------------------------------------------------------------- // MyApp //-----------------------------------------------------------------------------