wxWidgets/include/wx/generic/plot.h

105 lines
2.5 KiB
C
Raw Normal View History

/////////////////////////////////////////////////////////////////////////////
// Name: plot.h
// Purpose: wxPlotWindow
// Author: Robert Roebling
// Modified by:
// Created: 12/1/2000
// Copyright: (c) Robert Roebling
// RCS-ID: $Id$
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_PLOT_H_
#define _WX_PLOT_H_
#ifdef __GNUG__
#pragma interface "plot.h"
#endif
#include "wx/scrolwin.h"
//-----------------------------------------------------------------------------
// classes
//-----------------------------------------------------------------------------
class wxPlotCurve;
class wxPlotArea;
class wxPlotWindow;
//-----------------------------------------------------------------------------
// wxPlotCurve
//-----------------------------------------------------------------------------
class WXDLLEXPORT wxPlotCurve: public wxObject
{
public:
wxPlotCurve( int offsetY );
virtual wxInt32 GetStartX() = 0;
virtual wxInt32 GetEndX() = 0;
int GetOffsetY()
{ return m_offsetY; }
virtual double GetY( wxInt32 x ) = 0;
private:
int m_offsetY;
DECLARE_ABSTRACT_CLASS(wxPlotCurve)
};
//-----------------------------------------------------------------------------
// wxPlotArea
//-----------------------------------------------------------------------------
class WXDLLEXPORT wxPlotArea: public wxWindow
{
public:
wxPlotArea() {}
wxPlotArea( wxPlotWindow *parent );
void OnPaint( wxPaintEvent &event );
void OnMouse( wxMouseEvent &event );
private:
wxPlotWindow *m_owner;
DECLARE_CLASS(wxPlotArea)
DECLARE_EVENT_TABLE()
};
//-----------------------------------------------------------------------------
// wxPlotWindow
//-----------------------------------------------------------------------------
class WXDLLEXPORT wxPlotWindow: public wxScrolledWindow
{
public:
wxPlotWindow() {}
wxPlotWindow( wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, int flags );
~wxPlotWindow();
void Add( wxPlotCurve *curve );
size_t GetCount();
wxPlotCurve *GetAt( size_t n );
void SetCurrent( wxPlotCurve* current );
wxPlotCurve *GetCurrent();
void OnPaint( wxPaintEvent &event );
private:
friend wxPlotArea;
wxList m_curves;
wxPlotArea *m_area;
wxPlotCurve *m_current;
DECLARE_CLASS(wxPlotWindow)
DECLARE_EVENT_TABLE()
};
#endif
// _WX_PLOT_H_