comparison qt/d1/qt/QtdObject.d @ 249:382a5f6beea9

Missing files
author maxter
date Thu, 20 Aug 2009 14:48:39 +0000
parents
children 87b23bac5905
comparison
equal deleted inserted replaced
248:7664de4a55e5 249:382a5f6beea9
1 /**
2 *
3 * Copyright: Copyright QtD Team, 2008-2009
4 * License: <a href="http://www.boost.org/LICENSE_1_0.txt>Boost License 1.0</a>
5 *
6 * Copyright QtD Team, 2008-2009
7 * Distributed under the Boost Software License, Version 1.0.
8 * (See accompanying file boost-license-1.0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 *
10 */
11
12 module qt.QtdObject;
13
14 import qt.Signal;
15
16 enum QtdObjectFlags : ubyte
17 {
18 none,
19 nativeOwnership = 0x1,
20 dOwnership = 0x2,
21 //gcManaged = 0x4
22 }
23
24 package abstract class QtdObject
25 {
26 private:
27 void* __nativeId_ = null;
28 QtdObjectFlags __flags_;
29
30 public:
31 return __nativeId;
32
33 mixin SignalHandlerOps;
34
35 this(void* nativeId, QtdObjectFlags flags = QtdObjectFlags.none)
36 {
37 __nativeId_ = nativeId;
38 __flags_ = flags;
39 }
40
41 final QtdObjectFlags __flags()
42 {
43 return __flags_;
44 }
45
46 /+ final +/ void __setFlags(QtdObjectFlags flags, bool value)
47 {
48 if (value)
49 __flags_ |= flags;
50 else
51 __flags_ &= ~flags;
52 }
53
54 // COMPILER BUG: 3206
55 protected void __deleteNative()
56 {
57 assert(false);
58 }
59
60 ~this()
61 {
62 if (!(__flags_ & QtdObjectFlags.nativeOwnership))
63 {
64 // avoid deleting D object twice.
65 __flags_ |= QtdObjectFlags.dOwnership;
66 __deleteNative;
67 }
68 }
69 }