X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a24aff654fb10971e82abccc1b56217d556d447b..e6649f2d55acf4b3bca1ca275752961cd676a053:/include/wx/cocoa/dcclient.h diff --git a/include/wx/cocoa/dcclient.h b/include/wx/cocoa/dcclient.h index c7078fe77e..d3b9beda71 100644 --- a/include/wx/cocoa/dcclient.h +++ b/include/wx/cocoa/dcclient.h @@ -1,69 +1,70 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: dcclient.h -// Purpose: wxClientDC, wxPaintDC and wxWindowDC classes -// Author: AUTHOR +// Name: wx/cocoa/dcclient.h +// Purpose: wxClientDCImpl, wxPaintDCImpl and wxWindowDCImpl classes +// Author: David Elliott // Modified by: -// Created: ??/??/98 +// Created: 2003/04/01 // RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence +// Copyright: (c) 2003 David Elliott +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_DCCLIENT_H_ -#define _WX_DCCLIENT_H_ +#ifndef __WX_COCOA_DCCLIENT_H__ +#define __WX_COCOA_DCCLIENT_H__ -#if defined(__GNUG__) && !defined(__APPLE__) -#pragma interface "dcclient.h" -#endif - -#include "wx/dc.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxPaintDC; -class WXDLLEXPORT wxWindow; +#include "wx/cocoa/dc.h" -class WXDLLEXPORT wxWindowDC: public wxDC +// 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 wxWindowDCImpl: public wxCocoaDCImpl { - DECLARE_DYNAMIC_CLASS(wxWindowDC) - - public: - wxWindowDC(void); - - // Create a DC corresponding to a canvas - wxWindowDC(wxWindow *win); - - ~wxWindowDC(void); + DECLARE_DYNAMIC_CLASS(wxWindowDCImpl) +public: + wxWindowDCImpl(wxDC *owner); + // Create a DC corresponding to a window + wxWindowDCImpl(wxDC *owner, wxWindow *win); + virtual ~wxWindowDCImpl(void); + +protected: + wxWindow *m_window; + WX_NSView m_lockedNSView; +// DC stack + virtual bool CocoaLockFocus(); + virtual bool CocoaUnlockFocus(); + bool CocoaLockFocusOnNSView(WX_NSView nsview); + bool CocoaUnlockFocusOnNSView(); + virtual bool CocoaGetBounds(void *rectData); }; - -class WXDLLEXPORT wxClientDC: public wxWindowDC +class WXDLLIMPEXP_CORE wxClientDCImpl: public wxWindowDCImpl { - DECLARE_DYNAMIC_CLASS(wxClientDC) - - public: - wxClientDC(void); - - // Create a DC corresponding to a canvas - wxClientDC(wxWindow *win); - - ~wxClientDC(void); + DECLARE_DYNAMIC_CLASS(wxClientDCImpl) +public: + wxClientDCImpl(wxDC *owner); + // Create a DC corresponding to a window + wxClientDCImpl(wxDC *owner, wxWindow *win); + virtual ~wxClientDCImpl(void); +protected: +// DC stack + virtual bool CocoaLockFocus(); + virtual bool CocoaUnlockFocus(); }; -class WXDLLEXPORT wxPaintDC: public wxWindowDC +class WXDLLIMPEXP_CORE wxPaintDCImpl: public wxWindowDCImpl { - DECLARE_DYNAMIC_CLASS(wxPaintDC) - - public: - wxPaintDC(void); - - // Create a DC corresponding to a canvas - wxPaintDC(wxWindow *win); - - ~wxPaintDC(void); + DECLARE_DYNAMIC_CLASS(wxPaintDCImpl) +public: + wxPaintDCImpl(wxDC *owner); + // Create a DC corresponding to a window + wxPaintDCImpl(wxDC *owner, wxWindow *win); + virtual ~wxPaintDCImpl(void); +protected: +// DC stack + virtual bool CocoaLockFocus(); + virtual bool CocoaUnlockFocus(); }; #endif - // _WX_DCCLIENT_H_ + // __WX_COCOA_DCCLIENT_H__