Mercurial > projects > qtd
diff qt/d1/qt/QtdObject.d @ 249:382a5f6beea9
Missing files
author | maxter |
---|---|
date | Thu, 20 Aug 2009 14:48:39 +0000 |
parents | |
children | 87b23bac5905 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/qt/d1/qt/QtdObject.d Thu Aug 20 14:48:39 2009 +0000 @@ -0,0 +1,69 @@ +/** +* +* Copyright: Copyright QtD Team, 2008-2009 +* License: <a href="http://www.boost.org/LICENSE_1_0.txt>Boost License 1.0</a> +* +* Copyright QtD Team, 2008-2009 +* Distributed under the Boost Software License, Version 1.0. +* (See accompanying file boost-license-1.0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +* +*/ + +module qt.QtdObject; + +import qt.Signal; + +enum QtdObjectFlags : ubyte +{ + none, + nativeOwnership = 0x1, + dOwnership = 0x2, + //gcManaged = 0x4 +} + +package abstract class QtdObject +{ +private: + void* __nativeId_ = null; + QtdObjectFlags __flags_; + +public: + return __nativeId; + + mixin SignalHandlerOps; + + this(void* nativeId, QtdObjectFlags flags = QtdObjectFlags.none) + { + __nativeId_ = nativeId; + __flags_ = flags; + } + + final QtdObjectFlags __flags() + { + return __flags_; + } + + /+ final +/ void __setFlags(QtdObjectFlags flags, bool value) + { + if (value) + __flags_ |= flags; + else + __flags_ &= ~flags; + } + + // COMPILER BUG: 3206 + protected void __deleteNative() + { + assert(false); + } + + ~this() + { + if (!(__flags_ & QtdObjectFlags.nativeOwnership)) + { + // avoid deleting D object twice. + __flags_ |= QtdObjectFlags.dOwnership; + __deleteNative; + } + } +} \ No newline at end of file