/////////////////////////////////////////////////////////////////////////////
-// Name: gdiobj.h
+// Name: wx/msw/gdiobj.h
// Purpose: wxGDIObject class: base class for other GDI classes
// Author: Julian Smart
// Modified by:
// Created: 01/02/97
// RCS-ID: $Id$
-// Copyright: (c) Julian Smart and Markus Holzem
-// Licence: wxWindows license
+// Copyright: (c) Julian Smart
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifndef __GDIOBJH__
-#define __GDIOBJH__
+#ifndef _WX_GDIOBJ_H_
+#define _WX_GDIOBJ_H_
-#include "wx/object.h"
-
-#ifdef __GNUG__
-#pragma interface "gdiobj.h"
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+ #pragma interface "gdiobj.h"
#endif
-// wxGDIRefData is the reference-counted data part of a GDI object.
-// It contains another counter, m_usageCount, which counts the number
-// of times this object has been used; e.g. in SetFont, the count
-// is incremented. This is different from reference counting,
-// where only the constructors, destructors and (un)clone operations
-// affect the reference count.
-// THIS IS NOW BEING REMOVED AS REDUNDANT AND ERROR-PRONE
+#include "wx/object.h" // base class
-class WXDLLEXPORT wxGDIRefData: public wxObjectRefData {
-public:
- inline wxGDIRefData(void)
- {
- }
+// ----------------------------------------------------------------------------
+// wxGDIRefData is the base class for wxXXXData structures which contain the
+// real data for the GDI object and are shared among all wxWin objects sharing
+// the same native GDI object
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxGDIRefData : public wxObjectRefData
+{
+ // this class is intentionally left blank
};
-#define M_GDIDATA ((wxGDIRefData *)m_refData)
+// ----------------------------------------------------------------------------
+// wxGDIObject
+// ----------------------------------------------------------------------------
-class WXDLLEXPORT wxGDIObject: public wxObject
+class WXDLLEXPORT wxGDIObject : public wxObject
{
-DECLARE_DYNAMIC_CLASS(wxGDIObject)
- public:
- inline wxGDIObject(void) { m_visible = FALSE; };
- inline ~wxGDIObject(void) {};
+public:
+ wxGDIObject() { m_visible = false; };
- // Creates the resource
- virtual bool RealizeResource(void) { return FALSE; };
+ // Creates the resource
+ virtual bool RealizeResource() { return false; };
- // Frees the resource
- virtual bool FreeResource(bool WXUNUSED(force) = FALSE) { return FALSE; };
+ // Frees the resource
+ virtual bool FreeResource(bool WXUNUSED(force) = false) { return false; }
- virtual bool IsFree(void) { return FALSE; };
+ virtual bool IsFree() const { return false; }
- inline bool IsNull(void) const { return (m_refData == 0); }
+ bool IsNull() const { return (m_refData == 0); }
- // Returns handle.
- virtual WXHANDLE GetResourceHandle(void) { return 0; }
+ // Returns handle.
+ virtual WXHANDLE GetResourceHandle() const { return 0; }
- virtual bool GetVisible(void) { return m_visible; }
- virtual void SetVisible(bool v) { m_visible = v; }
+ virtual bool GetVisible() { return m_visible; }
+ virtual void SetVisible(bool v) { m_visible = v; }
protected:
- bool m_visible; // Can a pointer to this object be safely taken?
- // - only if created within FindOrCreate...
+ bool m_visible; // true only if we should delete this object ourselves
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxGDIObject)
};
#endif
- // __GDIOBJH__
+ // _WX_GDIOBJ_H_