# HG changeset patch # User maxter # Date 1250779719 0 # Node ID 382a5f6beea993c40734ed63c8b7e9500134b495 # Parent 7664de4a55e51e11f6d0a87ef23b444a62c8e6d4 Missing files diff -r 7664de4a55e5 -r 382a5f6beea9 qt/d1/qt/QtdObject.d --- /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: Boost License 1.0 +* +* 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: + QtdObjectFlags __flags_; + +public: + void* __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; + } + } +}