Adopted OS/2 to DC reorganisation (r50348).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51054 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
#define _WX_DC_H_
|
||||
|
||||
#include "wx/defs.h"
|
||||
#include "wx/dc.h"
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// macros
|
||||
@@ -94,13 +95,15 @@ public:
|
||||
}; // end of CLASS wxDCCacheEntry
|
||||
#endif
|
||||
|
||||
class WXDLLEXPORT wxDC : public wxDCBase
|
||||
// this is an ABC: use one of the derived classes to create a DC associated
|
||||
// with a window, screen, printer and so on
|
||||
class WXDLLEXPORT wxPMDCImpl : public wxDCImpl
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxDC)
|
||||
|
||||
public:
|
||||
wxDC(void);
|
||||
virtual ~wxDC();
|
||||
wxPMDCImpl(wxDC *owner, WXHDC hDC);
|
||||
virtual ~wxPMDCImpl();
|
||||
|
||||
// implement base class pure virtuals
|
||||
// ----------------------------------
|
||||
@@ -124,13 +127,7 @@ public:
|
||||
|
||||
virtual wxCoord GetCharHeight(void) const;
|
||||
virtual wxCoord GetCharWidth(void) const;
|
||||
virtual void DoGetTextExtent( const wxString& rsString
|
||||
,wxCoord* pX
|
||||
,wxCoord* pY
|
||||
,wxCoord* pDescent = NULL
|
||||
,wxCoord* pExternalLeading = NULL
|
||||
,const wxFont* pTheFont = NULL
|
||||
) const;
|
||||
|
||||
virtual bool CanDrawBitmap(void) const;
|
||||
virtual bool CanGetTextExtent(void) const;
|
||||
virtual int GetDepth(void) const;
|
||||
@@ -197,6 +194,39 @@ public:
|
||||
#endif
|
||||
|
||||
protected:
|
||||
void Init()
|
||||
{
|
||||
m_pCanvas = NULL;
|
||||
m_hOldBitmap = 0;
|
||||
m_hOldPen = 0;
|
||||
m_hOldBrush = 0;
|
||||
m_hOldFont = 0;
|
||||
#if wxUSE_PALETTE
|
||||
m_hOldPalette = 0;
|
||||
#endif // wxUSE_PALETTE
|
||||
|
||||
m_bOwnsDC = false;
|
||||
m_hDC = 0;
|
||||
m_hOldPS = NULL;
|
||||
m_hPS = NULL;
|
||||
m_bIsPaintTime = false; // True at Paint Time
|
||||
|
||||
m_pen.SetColour(*wxBLACK);
|
||||
m_brush.SetColour(*wxWHITE);
|
||||
}
|
||||
|
||||
// create an uninitialized DC: this should be only used by the derived
|
||||
// classes
|
||||
wxPMDCImpl( wxDC *owner ) : wxDCImpl( owner ) { Init(); }
|
||||
|
||||
public:
|
||||
virtual void DoGetTextExtent( const wxString& rsString
|
||||
,wxCoord* pX
|
||||
,wxCoord* pY
|
||||
,wxCoord* pDescent = NULL
|
||||
,wxCoord* pExternalLeading = NULL
|
||||
,const wxFont* pTheFont = NULL
|
||||
) const;
|
||||
virtual bool DoFloodFill( wxCoord vX
|
||||
,wxCoord vY
|
||||
,const wxColour& rCol
|
||||
@@ -322,6 +352,7 @@ protected:
|
||||
void InitializePalette(void);
|
||||
#endif // wxUSE_PALETTE
|
||||
|
||||
protected:
|
||||
//
|
||||
// common part of DoDrawText() and DoDrawRotatedText()
|
||||
//
|
||||
|
@@ -17,6 +17,8 @@
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#include "wx/dc.h"
|
||||
#include "wx/os2/dc.h"
|
||||
#include "wx/dcclient.h"
|
||||
#include "wx/dynarray.h"
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -26,68 +28,63 @@
|
||||
// this one if used by wxPaintDC only
|
||||
struct WXDLLIMPEXP_FWD_CORE wxPaintDCInfo;
|
||||
|
||||
WX_DECLARE_OBJARRAY(wxPaintDCInfo, wxArrayDCInfo);
|
||||
WX_DECLARE_EXPORTED_OBJARRAY(wxPaintDCInfo, wxArrayDCInfo);
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// DC classes
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class WXDLLEXPORT wxWindowDC : public wxDC
|
||||
class WXDLLEXPORT wxWindowDCImpl : public wxPMDCImpl
|
||||
{
|
||||
public:
|
||||
wxWindowDC();
|
||||
// default ctor
|
||||
wxWindowDCImpl( wxDC *owner );
|
||||
|
||||
//
|
||||
// Create a DC corresponding to the whole window
|
||||
//
|
||||
wxWindowDC(wxWindow* pWin);
|
||||
wxWindowDCImpl( wxDC *owner, wxWindow *pWin );
|
||||
|
||||
virtual void DoGetSize(int *pWidth, int *pHeight) const;
|
||||
|
||||
protected:
|
||||
// initialize the newly created DC
|
||||
void InitDC(void);
|
||||
|
||||
//
|
||||
// Override some base class virtuals
|
||||
//
|
||||
virtual void DoGetSize( int* pWidth
|
||||
,int* pHeight
|
||||
) const;
|
||||
|
||||
private:
|
||||
SIZEL m_PageSize;
|
||||
DECLARE_DYNAMIC_CLASS(wxWindowDC)
|
||||
DECLARE_CLASS(wxWindowDCImpl)
|
||||
DECLARE_NO_COPY_CLASS(wxWindowDCImpl)
|
||||
}; // end of CLASS wxWindowDC
|
||||
|
||||
class WXDLLEXPORT wxClientDC : public wxWindowDC
|
||||
class WXDLLEXPORT wxClientDCImpl : public wxWindowDCImpl
|
||||
{
|
||||
public:
|
||||
wxClientDC();
|
||||
virtual ~wxClientDC();
|
||||
// default ctor
|
||||
wxClientDCImpl( wxDC *owner );
|
||||
|
||||
wxClientDC(wxWindow *win);
|
||||
// Create a DC corresponding to the client area of the window
|
||||
wxClientDCImpl( wxDC *owner, wxWindow *pWin );
|
||||
|
||||
virtual ~wxClientDCImpl();
|
||||
|
||||
virtual void DoGetSize(int *pWidth, int *pHeight) const;
|
||||
|
||||
protected:
|
||||
void InitDC(void);
|
||||
|
||||
//
|
||||
// Override some base class virtuals
|
||||
//
|
||||
virtual void DoGetSize( int* pWidth
|
||||
,int* pHeight
|
||||
) const;
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxClientDC)
|
||||
DECLARE_CLASS(wxClientDCImpl)
|
||||
DECLARE_NO_COPY_CLASS(wxClientDCImpl)
|
||||
}; // end of CLASS wxClientDC
|
||||
|
||||
class WXDLLEXPORT wxPaintDC : public wxClientDC
|
||||
class WXDLLEXPORT wxPaintDCImpl : public wxClientDCImpl
|
||||
{
|
||||
public:
|
||||
wxPaintDC();
|
||||
wxPaintDCImpl( wxDC *owner );
|
||||
|
||||
// Create a DC corresponding for painting the window in OnPaint()
|
||||
wxPaintDC(wxWindow* pWin);
|
||||
wxPaintDCImpl( wxDC *owner, wxWindow *pWin );
|
||||
|
||||
virtual ~wxPaintDC();
|
||||
virtual ~wxPaintDCImpl();
|
||||
|
||||
// find the entry for this DC in the cache (keyed by the window)
|
||||
static WXHDC FindDCInCache(wxWindow* pWin);
|
||||
@@ -98,7 +95,8 @@ protected:
|
||||
// find the entry for this DC in the cache (keyed by the window)
|
||||
wxPaintDCInfo* FindInCache(size_t* pIndex = NULL) const;
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxPaintDC)
|
||||
DECLARE_CLASS(wxPaintDCImpl)
|
||||
DECLARE_NO_COPY_CLASS(wxPaintDCImpl)
|
||||
}; // end of wxPaintDC
|
||||
|
||||
#endif
|
||||
|
@@ -12,30 +12,33 @@
|
||||
#ifndef _WX_DCMEMORY_H_
|
||||
#define _WX_DCMEMORY_H_
|
||||
|
||||
#include "wx/dcclient.h"
|
||||
#include "wx/dcmemory.h"
|
||||
#include "wx/os2/dc.h"
|
||||
|
||||
class WXDLLEXPORT wxMemoryDC: public wxDC, public wxMemoryDCBase
|
||||
class WXDLLEXPORT wxMemoryDCImpl: public wxPMDCImpl
|
||||
{
|
||||
public:
|
||||
wxMemoryDC() { CreateCompatible(NULL); Init(); }
|
||||
wxMemoryDC(wxBitmap& bitmap) { CreateCompatible(NULL); Init(); SelectObject(bitmap); }
|
||||
wxMemoryDC(wxDC* pDC); // Create compatible DC
|
||||
wxMemoryDCImpl( wxMemoryDC *owner );
|
||||
wxMemoryDCImpl( wxMemoryDC *owner, wxBitmap& bitmap );
|
||||
wxMemoryDCImpl( wxMemoryDC *owner, wxDC* pDC); // Create compatible DC
|
||||
|
||||
protected:
|
||||
// override some base class virtuals
|
||||
virtual void DoGetSize( int* pWidth
|
||||
,int* pHeight
|
||||
) const;
|
||||
virtual void DoGetSize(int* pWidth, int* pHeight) const;
|
||||
virtual void DoSelect(const wxBitmap& bitmap);
|
||||
|
||||
virtual wxBitmap DoGetAsBitmap(const wxRect* subrect) const
|
||||
{ return subrect == NULL ? GetSelectedBitmap() : GetSelectedBitmap().GetSubBitmap(*subrect);}
|
||||
|
||||
protected:
|
||||
// create DC compatible with the given one or screen if dc == NULL
|
||||
bool CreateCompatible(wxDC* pDC);
|
||||
|
||||
// initialize the newly created DC
|
||||
void Init(void);
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxMemoryDC)
|
||||
}; // end of CLASS wxMemoryDC
|
||||
DECLARE_CLASS(wxMemoryDCImpl)
|
||||
DECLARE_NO_COPY_CLASS(wxMemoryDCImpl)
|
||||
}; // end of CLASS wxMemoryDCImpl
|
||||
|
||||
#endif
|
||||
// _WX_DCMEMORY_H_
|
||||
|
@@ -16,28 +16,24 @@
|
||||
|
||||
#include "wx/dc.h"
|
||||
#include "wx/cmndata.h"
|
||||
#include "wx/os2/dc.h"
|
||||
|
||||
class WXDLLEXPORT wxPrinterDC: public wxDC
|
||||
class WXDLLEXPORT wxPrinterDCImpl: public wxPMDCImpl
|
||||
{
|
||||
public:
|
||||
// Create a printer DC [obsolete]
|
||||
wxPrinterDC( const wxString& rsDriver
|
||||
,const wxString& rsDevice
|
||||
,const wxString& rsOutput
|
||||
,bool bInteractive = TRUE
|
||||
,int nOrientation = wxPORTRAIT
|
||||
);
|
||||
// Create a printer DC
|
||||
|
||||
// Create from print data
|
||||
wxPrinterDC(const wxPrintData& rData);
|
||||
wxPrinterDC(WXHDC hTheDC);
|
||||
wxPrinterDCImpl( wxPrinterDC *owner, const wxPrintData& rData );
|
||||
wxPrinterDCImpl( wxPrinterDC *owner, WXHDC hTheDC);
|
||||
|
||||
bool StartDoc(const wxString& rsMessage);
|
||||
void EndDoc(void);
|
||||
void StartPage(void);
|
||||
void EndPage(void);
|
||||
// override some base class virtuals
|
||||
virtual bool StartDoc(const wxString& rsMessage);
|
||||
virtual void EndDoc(void);
|
||||
virtual void StartPage(void);
|
||||
virtual void EndPage(void);
|
||||
|
||||
wxRect GetPaperRect();
|
||||
virtual wxRect GetPaperRect();
|
||||
|
||||
protected:
|
||||
virtual void DoDrawBitmap( const wxBitmap& rBmp
|
||||
@@ -63,7 +59,8 @@ protected:
|
||||
|
||||
wxPrintData m_printData;
|
||||
private:
|
||||
DECLARE_CLASS(wxPrinterDC)
|
||||
DECLARE_CLASS(wxPrinterDCImpl)
|
||||
DECLARE_NO_COPY_CLASS(wxPrinterDCImpl)
|
||||
}; // end of CLASS wxPrinterDC
|
||||
|
||||
// Gets an HDC for the specified printer configuration
|
||||
|
@@ -9,36 +9,26 @@
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_DCSCREEN_H_
|
||||
#define _WX_DCSCREEN_H_
|
||||
#ifndef _WX_OS2_DCSCREEN_H_
|
||||
#define _WX_OS2_DCSCREEN_H_
|
||||
|
||||
#include "wx/dcclient.h"
|
||||
#include "wx/dcscreen.h"
|
||||
#include "wx/os2/dc.h"
|
||||
|
||||
class WXDLLEXPORT wxScreenDC: public wxWindowDC
|
||||
class WXDLLEXPORT wxScreenDCImpl: public wxPMDCImpl
|
||||
{
|
||||
public:
|
||||
//
|
||||
// Create a DC representing the whole screen
|
||||
//
|
||||
wxScreenDC();
|
||||
wxScreenDCImpl( wxScreenDC *owner );
|
||||
|
||||
//
|
||||
// Compatibility with X's requirements for
|
||||
// drawing on top of all windows
|
||||
//
|
||||
static bool StartDrawingOnTop(wxWindow* WXUNUSED(pWindow)) { return TRUE; }
|
||||
static bool StartDrawingOnTop(wxRect* WXUNUSED(prect) = NULL) { return TRUE; }
|
||||
static bool EndDrawingOnTop() { return TRUE; }
|
||||
|
||||
protected:
|
||||
virtual void DoGetSize( int* pnWidth
|
||||
,int* pnHeight
|
||||
) const;
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxScreenDC)
|
||||
DECLARE_CLASS(wxScreenDCImpl)
|
||||
DECLARE_NO_COPY_CLASS(wxScreenDCImpl)
|
||||
}; // end of CLASS wxScreenDC
|
||||
|
||||
#endif
|
||||
// _WX_DCSCREEN_H_
|
||||
|
||||
|
Reference in New Issue
Block a user