X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/98d8a7ece55ff5f8ca9cd39eba045d92df413fe6..f3d7473941a193fe1aed18b86a432b1600d55750:/include/wx/gtk/private/object.h diff --git a/include/wx/gtk/private/object.h b/include/wx/gtk/private/object.h new file mode 100644 index 0000000000..404dc08129 --- /dev/null +++ b/include/wx/gtk/private/object.h @@ -0,0 +1,36 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: wx/gtk/private/object.h +// Purpose: wxGtkObject class declaration +// Author: Vadim Zeitlin +// Created: 2008-08-27 +// RCS-ID: $Id$ +// Copyright: (c) 2008 Vadim Zeitlin +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_GTK_PRIVATE_OBJECT_H_ +#define _WX_GTK_PRIVATE_OBJECT_H_ + +// ---------------------------------------------------------------------------- +// Convenience class for calling g_object_unref() automatically +// ---------------------------------------------------------------------------- + +template +class wxGtkObject +{ +public: + explicit wxGtkObject(T *p) : m_ptr(p) { } + ~wxGtkObject() { g_object_unref(m_ptr); } + + operator T *() const { return m_ptr; } + +private: + T * const m_ptr; + + // copying could be implemented by using g_object_ref() but for now there + // is no need for it so don't implement it + DECLARE_NO_COPY_CLASS(wxGtkObject) +}; + +#endif // _WX_GTK_PRIVATE_OBJECT_H_ +