]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/samples/plot/plot.cpp
Updated list of subprojects.
[wxWidgets.git] / contrib / samples / plot / plot.cpp
index 3898313e1631bf629ac785d6a4d87f89894cb669..6ebbd6c60e3d8f5a50865e201a38d4a574a50e7f 100644 (file)
@@ -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"
 #include "wx/wx.h"
 #endif
 
-#include "wx/plot.h"
+#include "wx/plot/plot.h"
 
 #include "wx/image.h"
 #include "wx/listctrl.h"
 #include "wx/sizer.h"
 #include "wx/log.h"
 #include "wx/intl.h"
-
-#include <math.h>
+#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,47 @@ 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 );
+
+    //Add a blue, 16pt chart title
+    wxString titleText( _T("The Chart Title") );
+    wxFont titleFont( *wxNORMAL_FONT );
+    titleFont.SetPointSize( 16 );
+    wxColour titleColour( *wxBLUE );
+    m_plot->AddChartTitle( titleText, titleFont, titleColour );
 
     m_plot->Add( new MyPlotCurve( 0,  -1.5, 1.5 ) );
     m_plot->Add( new MyPlotCurve( 50, -1.5, 1.5 ) );
@@ -131,44 +144,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 +197,8 @@ void MyFrame::OnPlotDClick( wxPlotEvent &event )
 bool MyApp::OnInit()
 {
     wxFrame *frame = new MyFrame();
-    frame->Show( TRUE );
+    frame->Show( true );
 
-    return TRUE;
+    return true;
 }