File: wxPLplotwindow.h

package info (click to toggle)
plplot 5.10.0%2Bdfsg2-0.4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 25,792 kB
  • ctags: 13,517
  • sloc: ansic: 83,001; xml: 27,081; ada: 18,878; cpp: 15,966; tcl: 11,651; python: 7,075; f90: 7,058; ml: 6,974; java: 6,665; perl: 5,029; sh: 2,208; makefile: 210; lisp: 75; sed: 25; fortran: 7
file content (70 lines) | stat: -rw-r--r-- 3,125 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// $Id: wxPLplotwindow.h 11760 2011-06-01 19:29:11Z airwin $
//
// Copyright (C) 2005  Werner Smekal
//
// This file is part of PLplot.
//
// PLplot is free software; you can redistribute it and/or modify
// it under the terms of the GNU Library General Public License as published
// by the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// PLplot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public License
// along with PLplot; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
//

#if !defined ( WXPLPLOTWINDOW_H__INCLUDED_ )
#define WXPLPLOTWINDOW_H__INCLUDED_

#include <wx/window.h>
#include <wx/dcmemory.h>

#include "wxPLplotstream.h"


//! A plot widget which takes care of double buffering and other stuff, but does not
//  provide an own plot API. You have to get a pointer to wxPLplotstream via the
//  GetStream() method to gain access to the PLplot API.
//
class PLDLLIMPEXP_WX wxPLplotwindow : public wxWindow
{
public:
    wxPLplotwindow( wxWindow * parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
                    const wxSize& size = wxDefaultSize, long style = 0,
                    int pl_style = wxPLPLOT_NONE );                         //!< Constructor.
    ~wxPLplotwindow( void );                                                //!< Deconstructor.

    void RenewPlot( void );                                                 //!< Redo plot.
    bool SavePlot( const wxString& driver, const wxString& filename );      //!< Save plot using a different driver.
    wxPLplotstream* GetStream()  { return m_stream; }                       //!< Get pointer to wxPLplotstream of this widget.
    int getBackend()  { return m_backend; }

protected:
    virtual void OnPaint( wxPaintEvent& event );                //!< Paint event
    virtual void OnErase( wxEraseEvent & WXUNUSED( event ) );   //!< Erase event
    virtual void OnSize( wxSizeEvent & WXUNUSED( event ) );     //!< Size event

private:
    // variables regarding double buffering
    wxMemoryDC* MemPlotDC;        //!< Pointer to wxMemoryDC, used for double buffering
    int       m_width;            //!< Saved width of plot, to find out if size changed.
    int       m_height;           //!< Saved height of plot, to find out if size changed.
    int       bitmapWidth;        //!< Width of bitmap, only changed if plot gets bigger
    int       bitmapHeight;       //!< Height of bitmap, only changed if plot gets bigger
    wxBitmap  * MemPlotDCBitmap;  //!< Pointer to bitmap, used for double buffering.
    int       m_backend;

protected:
    wxPLplotstream* m_stream;           //!< Pointer to the wxPLplotstream which belongs to this plot widget

    DECLARE_EVENT_TABLE()
};


#endif // !defined( WXPLPLOTWINDOW_H__INCLUDED_ )