]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/dcmemory.cpp
fix for a crash in ~wxFontList
[wxWidgets.git] / src / os2 / dcmemory.cpp
index 7cbd330821f76b4c97a124689b631d859e829e03..9e6515d0bfa940e10024e4b2f0d9839502aee217 100644 (file)
@@ -1,35 +1,70 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        dcmemory.cpp
 // Purpose:     wxMemoryDC class
-// Author:      AUTHOR
+// Author:      David Webster
 // Modified by:
-// Created:     01/02/97
+// Created:     10/14/99
 // RCS-ID:      $Id$
-// Copyright:   (c) AUTHOR
-// Licence:    wxWindows licence
+// Copyright:   (c) David Webster
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
-#pragma implementation "dcmemory.h"
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifndef WX_PRECOMP
+#include "wx/utils.h"
 #endif
 
+#include "wx/os2/private.h"
+
 #include "wx/dcmemory.h"
 
-//-----------------------------------------------------------------------------
-// wxMemoryDC
-//-----------------------------------------------------------------------------
+IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC, wxDC)
 
-IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC,wxPaintDC)
+/*
+ * Memory DC
+ *
+ */
 
 wxMemoryDC::wxMemoryDC(void)
 {
-  m_ok = FALSE;
-};
+  // TODO:
+/*
+  m_hDC = (WXHDC) ::CreateCompatibleDC((HDC) NULL);
+  m_ok = (m_hDC != 0);
+  m_bOwnsDC = TRUE;
+
+  SetBrush(*wxWHITE_BRUSH);
+  SetPen(*wxBLACK_PEN);
 
-wxMemoryDC::wxMemoryDC( wxDC *WXUNUSED(dc) )
+  // the background mode is only used for text background
+  // and is set in DrawText() to OPAQUE as required, other-
+  // wise always TRANSPARENT, RR
+  ::SetBkMode( GetHdc(), TRANSPARENT );
+*/
+}
+
+wxMemoryDC::wxMemoryDC(wxDC *old_dc)
 {
-  m_ok = FALSE;
-};
+  // TODO:
+/*
+  old_dc->BeginDrawing();
+
+  m_hDC = (WXHDC) ::CreateCompatibleDC((HDC) old_dc->GetHDC());
+  m_ok = (m_hDC != 0);
+
+  old_dc->EndDrawing();
+
+  SetBrush(*wxWHITE_BRUSH);
+  SetPen(*wxBLACK_PEN);
+
+  // the background mode is only used for text background
+  // and is set in DrawText() to OPAQUE as required, other-
+  // wise always TRANSPARENT, RR
+  ::SetBkMode( GetHdc(), TRANSPARENT );
+*/
+}
 
 wxMemoryDC::~wxMemoryDC(void)
 {
@@ -37,28 +72,18 @@ wxMemoryDC::~wxMemoryDC(void)
 
 void wxMemoryDC::SelectObject( const wxBitmap& bitmap )
 {
-  m_selected = bitmap;
-  if (m_selected.Ok())
-  {
-  }
-  else
-  {
-    m_ok = FALSE;
-  };
+   // TODO:
 };
 
-void wxMemoryDC::GetSize( int *width, int *height ) const
+void wxMemoryDC::DoGetSize( int *width, int *height ) const
 {
-  if (m_selected.Ok())
+  if (!m_vSelectedBitmap.Ok())
   {
-    if (width) (*width) = m_selected.GetWidth();
-    if (height) (*height) = m_selected.GetHeight();
+    *width = 0; *height = 0;
+    return;
   }
-  else
-  {
-    if (width) (*width) = 0;
-    if (height) (*height) = 0;
-  };
+  *width = m_vSelectedBitmap.GetWidth();
+  *height = m_vSelectedBitmap.GetHeight();
 };