21 #if !defined ( WXPLPLOTWINDOW_H__INCLUDED_ )
22 #define WXPLPLOTWINDOW_H__INCLUDED_
26 #include <wx/window.h>
27 #include <wx/dcmemory.h>
28 #include <wx/dcclient.h>
29 #include <wx/dcgraph.h>
30 #include <wx/dcbuffer.h>
36 template <
class WXWINDOW>
44 bool SavePlot(
const wxString& driver,
const wxString& filename );
50 virtual void OnPaint( wxPaintEvent& event );
51 virtual void OnSize( wxSizeEvent & event );
52 virtual void OnErase( wxEraseEvent &event );
53 virtual void OnCreate( wxWindowCreateEvent &event );
65 #ifdef wxUSE_GRAPHICS_CONTEXT
75 template<
class WXWINDOW>
81 #ifdef wxUSE_GRAPHICS_CONTEXT
100 template<
class WXWINDOW>
114 template<
class WXWINDOW>
126 int width = WXWINDOW::GetClientSize().GetWidth();
127 int height = WXWINDOW::GetClientSize().GetHeight();
129 wxPaintDC paintDc(
this );
132 bool needResize = width != m_bitmap.GetWidth() || height != m_bitmap.GetHeight();
135 m_bitmap.Create( width, height, 32 );
138 m_memoryDc =
new wxMemoryDC;
139 m_memoryDc->SelectObject( m_bitmap );
140 wxDC *drawDc = m_memoryDc;
141 #ifdef wxUSE_GRAPHICS_CONTEXT
142 if ( m_useGraphicsContext )
146 m_gcDc =
new wxGCDC( *m_memoryDc );
150 m_stream.SetDC( drawDc );
151 drawDc->SetBackground( wxBrush( m_canvasColour ) );
153 m_stream.SetSize( width, height );
156 paintDc.Blit( 0, 0, width, height, m_memoryDc, 0, 0 );
161 template<
class WXWINDOW>
171 template<
class WXWINDOW>
180 template<
class WXWINDOW>
186 int width = WXWINDOW::GetClientSize().GetWidth();
187 int height = WXWINDOW::GetClientSize().GetHeight();
188 m_bitmap.Create( width, height );
191 m_memoryDc =
new wxMemoryDC;
192 m_memoryDc->SelectObject( m_bitmap );
193 wxDC * drawDc = m_memoryDc;
194 #ifdef wxUSE_GRAPHICS_CONTEXT
195 if ( m_useGraphicsContext )
199 m_gcDc =
new wxGCDC( *m_memoryDc );
203 if ( !m_stream.IsValid() )
206 m_stream.SetDC( drawDc );
207 drawDc->SetBackground( wxBrush( m_canvasColour ) );
218 template<
class WXWINDOW>
230 template<
class WXWINDOW>
236 if ( ( sfile = fopen( filename.mb_str(),
"wb+" ) ) == NULL )
248 plsdev( devname.mb_str() );
251 plspage( 0., 0., 800, 600, 0, 0 );
262 template<
class WXWINDOW>
266 #ifdef wxUSE_GRAPHICS_CONTEXT
267 if ( useGraphicsContext != m_useGraphicsContext )
269 m_useGraphicsContext = useGraphicsContext;
270 drawDc = m_useGraphicsContext ? (wxDC *) m_gcDc : (wxDC *) m_memoryDc;
273 drawDc = &m_memoryDc;
274 m_useGraphicsContext =
false;
278 m_stream.SetDC( drawDc );
283 template<
class WXWINDOW>
286 m_canvasColour = colour;
290 #endif // !defined( WXPLPLOTWINDOW_H__INCLUDED_ )