Make wxCocoa compile with new pImpl wxDC.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50462 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Elliott
2007-12-04 04:22:16 +00:00
parent 9b3b7f5556
commit 938156b255
11 changed files with 203 additions and 168 deletions

View File

@@ -14,22 +14,24 @@
DECLARE_WXCOCOA_OBJC_CLASS(NSAffineTransform);
class WXDLLIMPEXP_FWD_CORE wxDC;
WX_DECLARE_LIST(wxDC, wxCocoaDCStack);
#include "wx/dc.h"
class WXDLLIMPEXP_FWD_CORE wxCocoaDCImpl;
WX_DECLARE_LIST(wxCocoaDCImpl, wxCocoaDCStack);
//=========================================================================
// wxDC
//=========================================================================
class WXDLLEXPORT wxDC: public wxDCBase
class WXDLLIMPEXP_CORE wxCocoaDCImpl: public wxDCImpl
{
DECLARE_DYNAMIC_CLASS(wxDC)
DECLARE_NO_COPY_CLASS(wxDC)
DECLARE_ABSTRACT_CLASS(wxCocoaDCImpl)
DECLARE_NO_COPY_CLASS(wxCocoaDCImpl)
//-------------------------------------------------------------------------
// Initialization
//-------------------------------------------------------------------------
public:
wxDC();
virtual ~wxDC();
wxCocoaDCImpl(wxDC *owner);
virtual ~wxCocoaDCImpl();
//-------------------------------------------------------------------------
// wxCocoa specifics

View File

@@ -1,6 +1,6 @@
/////////////////////////////////////////////////////////////////////////////
// Name: wx/cocoa/dcclient.h
// Purpose: wxClientDC, wxPaintDC and wxWindowDC classes
// Purpose: wxClientDCImpl, wxPaintDCImpl and wxWindowDCImpl classes
// Author: David Elliott
// Modified by:
// Created: 2003/04/01
@@ -12,20 +12,20 @@
#ifndef __WX_COCOA_DCCLIENT_H__
#define __WX_COCOA_DCCLIENT_H__
#include "wx/dc.h"
#include "wx/cocoa/dc.h"
// DFE: A while ago I stumbled upon the fact that retrieving the parent
// NSView of the content view seems to return the entire window rectangle
// (including decorations). Of course, that is not at all part of the
// Cocoa or OpenStep APIs, but it might be a neat hack.
class WXDLLIMPEXP_CORE wxWindowDC: public wxDC
class WXDLLIMPEXP_CORE wxWindowDCImpl: public wxCocoaDCImpl
{
DECLARE_DYNAMIC_CLASS(wxWindowDC)
DECLARE_DYNAMIC_CLASS(wxWindowDCImpl)
public:
wxWindowDC(void);
wxWindowDCImpl(wxDC *owner);
// Create a DC corresponding to a window
wxWindowDC(wxWindow *win);
virtual ~wxWindowDC(void);
wxWindowDCImpl(wxDC *owner, wxWindow *win);
virtual ~wxWindowDCImpl(void);
protected:
wxWindow *m_window;
@@ -38,28 +38,28 @@ protected:
virtual bool CocoaGetBounds(void *rectData);
};
class WXDLLIMPEXP_CORE wxClientDC: public wxWindowDC
class WXDLLIMPEXP_CORE wxClientDCImpl: public wxWindowDCImpl
{
DECLARE_DYNAMIC_CLASS(wxClientDC)
DECLARE_DYNAMIC_CLASS(wxClientDCImpl)
public:
wxClientDC(void);
wxClientDCImpl(wxDC *owner);
// Create a DC corresponding to a window
wxClientDC(wxWindow *win);
virtual ~wxClientDC(void);
wxClientDCImpl(wxDC *owner, wxWindow *win);
virtual ~wxClientDCImpl(void);
protected:
// DC stack
virtual bool CocoaLockFocus();
virtual bool CocoaUnlockFocus();
};
class WXDLLIMPEXP_CORE wxPaintDC: public wxWindowDC
class WXDLLIMPEXP_CORE wxPaintDCImpl: public wxWindowDCImpl
{
DECLARE_DYNAMIC_CLASS(wxPaintDC)
DECLARE_DYNAMIC_CLASS(wxPaintDCImpl)
public:
wxPaintDC(void);
wxPaintDCImpl(wxDC *owner);
// Create a DC corresponding to a window
wxPaintDC(wxWindow *win);
virtual ~wxPaintDC(void);
wxPaintDCImpl(wxDC *owner, wxWindow *win);
virtual ~wxPaintDCImpl(void);
protected:
// DC stack
virtual bool CocoaLockFocus();

View File

@@ -1,6 +1,6 @@
/////////////////////////////////////////////////////////////////////////////
// Name: wx/cocoa/dcmemory.h
// Purpose: wxMemoryDC class
// Purpose: wxMemoryDCImpl class
// Author: David Elliott
// Modified by:
// Created: 2003/03/16
@@ -12,17 +12,25 @@
#ifndef __WX_COCOA_DCMEMORY_H__
#define __WX_COCOA_DCMEMORY_H__
#include "wx/dc.h"
#include "wx/cocoa/dc.h"
class WXDLLEXPORT wxMemoryDC: public wxDC, public wxMemoryDCBase
#include "wx/dcmemory.h"
class WXDLLEXPORT wxMemoryDCImpl: public wxCocoaDCImpl
{
DECLARE_DYNAMIC_CLASS(wxMemoryDC)
DECLARE_DYNAMIC_CLASS(wxMemoryDCImpl)
public:
wxMemoryDC() { Init(); }
wxMemoryDC(wxBitmap& bitmap) { Init(); SelectObject(bitmap); }
wxMemoryDC( wxDC *dc ); // Create compatible DC
virtual ~wxMemoryDC(void);
wxMemoryDCImpl(wxMemoryDC *owner)
: wxCocoaDCImpl(owner)
{ Init(); }
wxMemoryDCImpl(wxMemoryDC *owner, wxBitmap& bitmap)
: wxCocoaDCImpl(owner)
{ Init();
owner->SelectObject(bitmap);
}
wxMemoryDCImpl(wxMemoryDC *owner, wxDC *dc ); // Create compatible DC
virtual ~wxMemoryDCImpl(void);
virtual void DoGetSize(int *width, int *height) const;
virtual void DoSelect(const wxBitmap& bitmap);

View File

@@ -1,6 +1,6 @@
/////////////////////////////////////////////////////////////////////////////
// Name: wx/cocoa/dcscreen.h
// Purpose: wxScreenDC class
// Purpose: wxScreenDCImpl class
// Author: David Elliott
// Modified by:
// Created: 2003/03/16
@@ -12,15 +12,16 @@
#ifndef __WX_COCOA_DCSCREEN_H__
#define __WX_COCOA_DCSCREEN_H__
#include "wx/dcclient.h"
#include "wx/dcscreen.h"
#include "wx/cocoa/dc.h"
class WXDLLEXPORT wxScreenDC: public wxDC
class WXDLLEXPORT wxScreenDCImpl: public wxCocoaDCImpl
{
DECLARE_DYNAMIC_CLASS(wxScreenDC)
DECLARE_DYNAMIC_CLASS(wxScreenDCImpl)
public:
wxScreenDC(void);
wxScreenDC( wxDC *dc ); // Create compatible DC
virtual ~wxScreenDC(void);
wxScreenDCImpl(wxScreenDC *owner);
wxScreenDCImpl(wxScreenDC *owner, wxDC *dc ); // Create compatible DC
virtual ~wxScreenDCImpl(void);
// Compatibility with X's requirements for drawing on top of all windows
static bool StartDrawingOnTop(wxWindow* WXUNUSED(window)) { return true; }