+++ /dev/null
-/////////////////////////////////////////////////////////////////////////////
-// Name: dcclient.cpp
-// Purpose:
-// Author: Vaclav Slavik
-// RCS-ID: $Id$
-// Copyright: (c) 2001 SciTech Software, Inc. (www.scitechsoft.com)
-// Licence: wxWindows licence
-/////////////////////////////////////////////////////////////////////////////
-
-#ifdef __GNUG__
-#pragma implementation "dcclient.h"
-#endif
-
-// For compilers that support precompilation, includes "wx.h".
-#include "wx/wxprec.h"
-
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-#ifndef WX_PRECOMP
- #include "wx/dcclient.h"
- #include "wx/window.h"
-#endif
-
-#include <mgraph.hpp>
-
-IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC)
-IMPLEMENT_DYNAMIC_CLASS(wxClientDC,wxWindowDC)
-IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxClientDC)
-
-wxWindowDC::wxWindowDC(wxWindow *win) : m_wnd(win)
-{
- MGLDevCtx *dc = win->GetPaintMGLDC();
-
- if ( dc )
- {
- m_inPaintHandler = TRUE;
-
- m_globalClippingRegion = win->GetUpdateRegion();
- SetMGLDC(dc, FALSE);
- }
- else
- {
- m_inPaintHandler = FALSE;
-
- // VS: we have to update here so that screen's content is up-to-date
- // and blitting from wxWindowDC works as expected
- win->Update();
-
- dc = new MGLDevCtx(MGL_wmBeginPaint(win->GetHandle()));
-
- MGLRegion clip;
- dc->getClipRegion(clip);
- m_globalClippingRegion = wxRegion(clip);
- SetMGLDC(dc, TRUE);
- // TRUE means that dtor will delete MGLDevCtx object
- // but it won't destroy MGLDC returned by MGL_wmBeginPaint because
- // ~MGLDevCtx() doesn't call destroy()
- }
-}
-
-wxWindowDC::~wxWindowDC()
-{
- if ( !m_inPaintHandler )
- {
- GetMGLDC()->setDC(NULL);
- MGL_wmEndPaint(m_wnd->GetHandle());
- }
-}
-
-wxClientDC::wxClientDC(wxWindow *win) : wxWindowDC(win)
-{
- wxRect r = m_wnd->GetClientRect();
- m_globalClippingRegion.Intersect(r);
- SetDeviceOrigin(r.x, r.y);
-}