74 lines
2.5 KiB
C++
74 lines
2.5 KiB
C++
/**
|
|
* a helper to handle the real device context used in kicad
|
|
* @file kicad_device_context.h
|
|
*/
|
|
|
|
#ifndef __KICAD_DEVICE_CONTEXT_H__
|
|
#define __KICAD_DEVICE_CONTEXT_H__
|
|
|
|
// Comment this line to use the standard wxClientDC
|
|
// and uncomment to use buffered DC
|
|
// #define KICAD_USE_BUFFERED_DC // Currently under test
|
|
|
|
// Comment this line to use the standard wxPaintDC
|
|
// and uncomment to use buffered PaintDC
|
|
#define KICAD_USE_BUFFERED_PAINTDC // Currently under test
|
|
|
|
#if defined KICAD_USE_BUFFERED_DC || defined KICAD_USE_BUFFERED_PAINTDC
|
|
#ifndef KICAD_USE_BUFFERED_PAINTDC
|
|
#define KICAD_USE_BUFFERED_PAINTDC
|
|
#endif
|
|
#include <wx/dcbuffer.h>
|
|
#endif
|
|
|
|
#if USE_WX_GRAPHICS_CONTEXT && USE_WX_ZOOM
|
|
#include <wx/dcgraph.h>
|
|
#endif
|
|
|
|
// Helper class to handle the client Device Context
|
|
class KicadGraphicContext : public wxClientDC
|
|
{
|
|
public:
|
|
KicadGraphicContext( WinEDA_DrawPanel * aDrawPanel );
|
|
~KicadGraphicContext();
|
|
};
|
|
|
|
|
|
// Macro used to declare a device context in kicad:
|
|
#if USE_WX_GRAPHICS_CONTEXT && USE_WX_ZOOM
|
|
#define INSTALL_DC(name,parent) \
|
|
wxClientDC _cDC( parent ); \
|
|
wxGCDC name(_cDC); \
|
|
parent->DoPrepareDC( name ); \
|
|
name.GetGraphicsContext()->Translate( 0.5, 0.5 );
|
|
#else
|
|
#ifdef KICAD_USE_BUFFERED_DC
|
|
#define INSTALL_DC(name,parent) \
|
|
wxClientDC _cDC( parent ); \
|
|
wxBufferedDC name(&_cDC, _cDC.GetSize() ); \
|
|
parent->DoPrepareDC( name );
|
|
#else
|
|
#define INSTALL_DC(name,parent) \
|
|
wxClientDC name( parent ); \
|
|
parent->DoPrepareDC( name );
|
|
#endif
|
|
#endif
|
|
|
|
#if USE_WX_GRAPHICS_CONTEXT
|
|
#define INSTALL_PAINTDC(name,parent) \
|
|
wxPaintDC _pDC(parent); \
|
|
wxGCDC name(_pDC); \
|
|
parent->DoPrepareDC( name ); \
|
|
name.GetGraphicsContext()->Translate( 0.5, 0.5);
|
|
#elif !defined( USE_WX_ZOOM ) && defined( KICAD_USE_BUFFERED_PAINTDC )
|
|
#define INSTALL_PAINTDC(name,parent) \
|
|
wxAutoBufferedPaintDC name(parent ); \
|
|
parent->DoPrepareDC( name );
|
|
#else
|
|
#define INSTALL_PAINTDC(name,parent) \
|
|
wxPaintDC name( parent ); \
|
|
parent->DoPrepareDC( name );
|
|
#endif
|
|
|
|
#endif // __KICAD_DEVICE_CONTEXT_H__
|