GFC Logo GFC Title Logo
Reference Manual
Main Page  |  Namespace List  |  Alphabetical List  |  Class List  |  File List

boxed.hh

Go to the documentation of this file.
00001 /* GFC: Gtk+ Foundation Classes (Core Library) 00002 * Copyright (C) 2002-2004 The GFC Development Team. 00003 * 00004 * This program is free software; you can redistribute it and/or modify 00005 * it under the terms of the GNU General Public License as published by 00006 * the Free Software Foundation; either version 2 of the License, or 00007 * (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU Library General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Library General Public License 00015 * along with this program; if not, write to the Free Software 00016 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00017 */ 00018 00024 00025 #ifndef GFC_G_BOXED_HH 00026 #define GFC_G_BOXED_HH 00027 00028 #ifndef GFC_OBJECT_HH 00029 #include <gfc/object.hh> 00030 #endif 00031 00032 #ifndef __GLIB_GOBJECT_H__ 00033 #include <glib-object.h> 00034 #endif 00035 00036 #ifndef _CPP_MAP 00037 #include <map> 00038 #endif 00039 00040 namespace GFC { 00041 00042 namespace G { 00043 00056 00057 class Boxed : public GFC::Object 00058 { 00059 Boxed(const Boxed&); 00060 Boxed& operator=(const Boxed&); 00061 00062 GType boxed_type_; 00063 bool can_free; 00064 00065 protected: 00068 00069 explicit Boxed(GType boxed_type); 00075 00076 Boxed(GType boxed_type, void *boxed); 00082 00083 Boxed(GType boxed_type, void *boxed, bool copy); 00091 00093 00094 void* boxed_; 00096 00099 00100 void copy(const Boxed& src); 00103 00104 void copy(const void *boxed); 00110 00112 00113 public: 00114 virtual ~Boxed(); 00116 00117 void* g_boxed() const; 00119 00122 00123 template<typename T> 00124 static T* wrap(GType boxed_type, void *boxed); 00131 00132 template<typename T> 00133 static T* wrap(GType boxed_type, void *boxed, bool copy); 00142 00144 }; 00145 00146 } // namespace G 00147 00148 } // namespace GFC 00149 00150 #include <gfc/glib/inline/boxed.inl> 00151 00152 #endif // GFC_G_BOXED_HH 00153

Generated on Tue Aug 24 00:04:56 2004 for GFC-Core by doxygen 1.3.8