X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b5789150456227cff15ca6526ccca7ad41fa6930..94709f191133613e115fdbf913eba5a81ddd207e:/contrib/samples/plot/plot.cpp?ds=sidebyside diff --git a/contrib/samples/plot/plot.cpp b/contrib/samples/plot/plot.cpp index 4dde687e76..df1f5b9a54 100644 --- a/contrib/samples/plot/plot.cpp +++ b/contrib/samples/plot/plot.cpp @@ -1,11 +1,13 @@ -/* - * Program: wxPlotWindow - * - * Author: Robert Roebling - * - * Copyright: (C) 1999, Robert Roebling - * - */ +///////////////////////////////////////////////////////////////////////////// +// Name: plot.cpp +// Purpose: wxPlotWindow sample +// Author: Robert Roebling +// Modified by: +// Created: +// Copyright: (C) 1999, Robert Roebling +// RCS-ID: $Id$ +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// // For compilers that support precompilation, includes "wx/wx.h". #include "wx/wxprec.h" @@ -25,8 +27,7 @@ #include "wx/sizer.h" #include "wx/log.h" #include "wx/intl.h" - -#include +#include "wx/math.h" // derived classes @@ -39,16 +40,16 @@ class MyApp; class MyPlotCurve: public wxPlotCurve { public: - MyPlotCurve( int offsetY, double startY, double endY ) : + MyPlotCurve( int offsetY, double startY, double endY ) : wxPlotCurve( offsetY, startY, endY ) {} - + virtual wxInt32 GetStartX() { return 0; } virtual wxInt32 GetEndX() { return 7000; } - + virtual double GetY( wxInt32 x ) - { + { double dx = x; dx /= 100; return sin( dx ); @@ -64,14 +65,17 @@ public: void OnAbout( wxCommandEvent &event ); void OnQuit( wxCommandEvent &event ); - + void OnPlotClick( wxPlotEvent &event ); void OnPlotDClick( wxPlotEvent &event ); +private: + wxPlotWindow *m_plot; +#if wxUSE_LOG wxTextCtrl *m_log; +#endif // wxUSE_LOG -private: DECLARE_DYNAMIC_CLASS(MyFrame) DECLARE_EVENT_TABLE() }; @@ -90,38 +94,40 @@ IMPLEMENT_APP(MyApp) // MyFrame -const int ID_QUIT = 108; -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_PLOT_CLICKED ( -1, MyFrame::OnPlotClick) - EVT_PLOT_DOUBLECLICKED ( -1, MyFrame::OnPlotDClick) + EVT_MENU (wxID_ABOUT, MyFrame::OnAbout) + EVT_MENU (wxID_EXIT, MyFrame::OnQuit) + EVT_PLOT_CLICKED (wxID_ANY, MyFrame::OnPlotClick) + EVT_PLOT_DOUBLECLICKED (wxID_ANY, MyFrame::OnPlotDClick) END_EVENT_TABLE() MyFrame::MyFrame() - : wxFrame( (wxFrame *)NULL, -1, "wxPlotWindow sample", + : wxFrame( (wxFrame *)NULL, wxID_ANY, _T("wxPlotWindow sample"), wxPoint(20,20), wxSize(470,500) ) { - wxMenu *file_menu = new wxMenu(); - file_menu->Append( ID_ABOUT, "&About.."); - file_menu->Append( ID_QUIT, "E&xit\tAlt-X"); + wxMenu *fileMenu = new wxMenu(); + fileMenu->Append( wxID_EXIT, _T("E&xit\tAlt-X"), _T("Quit this program")); + + wxMenu *helpMenu = new wxMenu; + helpMenu->Append(wxID_ABOUT, _T("&About...\tF1"), _T("Show about dialog")); - wxMenuBar *menu_bar = new wxMenuBar(); - menu_bar->Append(file_menu, "&File"); + wxMenuBar *menuBar = new wxMenuBar(); + menuBar->Append(fileMenu, _T("&File")); + menuBar->Append(helpMenu, _T("&Help")); - SetMenuBar( menu_bar ); + SetMenuBar( menuBar ); +#if wxUSE_STATUSBAR CreateStatusBar(2); int widths[] = { -1, 100 }; SetStatusWidths( 2, widths ); +#endif // wxUSE_STATUSBAR - m_plot = new wxPlotWindow( this, -1, wxPoint(0,0), wxSize(100,100), wxSUNKEN_BORDER | wxPLOT_DEFAULT ); + m_plot = new wxPlotWindow( this, wxID_ANY, wxPoint(0,0), wxSize(100,100), wxSUNKEN_BORDER | wxPLOT_DEFAULT ); m_plot->SetUnitsPerValue( 0.01 ); -// m_plot->SetScrollOnThumbRelease( TRUE ); +// m_plot->SetScrollOnThumbRelease( true ); m_plot->Add( new MyPlotCurve( 0, -1.5, 1.5 ) ); m_plot->Add( new MyPlotCurve( 50, -1.5, 1.5 ) ); @@ -131,44 +137,50 @@ MyFrame::MyFrame() 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 ); + +#if wxUSE_LOG + m_log = new wxTextCtrl( this, wxID_ANY, _T("This is the log window.\n"), wxPoint(0,0), wxSize(100,100), wxTE_MULTILINE ); wxLog *old_log = wxLog::SetActiveTarget( new wxLogTextCtrl( m_log ) ); delete old_log; - +#endif // wxUSE_LOG + wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL ); - + topsizer->Add( m_plot, 1, wxEXPAND ); +#if wxUSE_LOG topsizer->Add( m_log, 0, wxEXPAND ); +#endif // wxUSE_LOG - SetAutoLayout( TRUE ); + SetAutoLayout( true ); SetSizer( topsizer ); + topsizer->Fit(this); + topsizer->SetSizeHints(this); } void MyFrame::OnQuit( wxCommandEvent &WXUNUSED(event) ) { - Close( TRUE ); + Close( true ); } void MyFrame::OnAbout( wxCommandEvent &WXUNUSED(event) ) { - (void)wxMessageBox( "wxPlotWindow Demo\n" - "Robert Roebling (c) 1999,2000", - "About wxPlotWindow Demo", wxICON_INFORMATION | wxOK ); + (void)wxMessageBox( _T("wxPlotWindow Demo\n") + _T("Robert Roebling (c) 1999,2000"), + _T("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 ); + wxLogMessage( _T("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 ); + wxLogMessage( _T("Double clicked on curve at x coordinate: %f, value: %f"), x, y ); } //----------------------------------------------------------------------------- @@ -178,8 +190,8 @@ void MyFrame::OnPlotDClick( wxPlotEvent &event ) bool MyApp::OnInit() { wxFrame *frame = new MyFrame(); - frame->Show( TRUE ); + frame->Show( true ); - return TRUE; + return true; }