Mercurial > projects > qtd
comparison qt/d1/qt/QtdObject.d @ 260:b5773ccab07d lifetime
closer
author | maxter |
---|---|
date | Fri, 18 Sep 2009 18:52:03 +0000 |
parents | 515d6e1c7b10 |
children | 8f7bb7fc3123 |
comparison
equal
deleted
inserted
replaced
259:515d6e1c7b10 | 260:b5773ccab07d |
---|---|
97 return _classInfo; | 97 return _classInfo; |
98 } | 98 } |
99 } | 99 } |
100 | 100 |
101 | 101 |
102 abstract class QtdMetaObject : MetaObject | 102 abstract class QtdMetaObjectBase : MetaObject |
103 { | 103 { |
104 QtdObjectBase function(void* nativeId, QtdObjectFlags flags) _createWrapper; | 104 QtdObjectBase function(void* nativeId, QtdObjectFlags flags) _createWrapper; |
105 | |
106 this(QtdMetaObjectBase base) | |
107 { | |
108 super(base); | |
109 } | |
105 | 110 |
106 void construct(T : QtdObject, Concrete = T)() | 111 void construct(T : QtdObject, Concrete = T)() |
107 { | 112 { |
108 super.construct!(T); | 113 super.construct!(T); |
109 _createWrapper = &T.__createWrapper; | 114 _createWrapper = &T.__createWrapper; |
111 } | 116 } |
112 | 117 |
113 /++ | 118 /++ |
114 Meta-object for polymorphic Qt classes. | 119 Meta-object for polymorphic Qt classes. |
115 +/ | 120 +/ |
116 final class QtdMetaObject : MetaObject | 121 final class QtdMetaObject : QtdMetaObjectBase |
117 { | 122 { |
118 alias typeof(this) This; | 123 alias typeof(this) This; |
119 | 124 |
120 private void* _typeId; | 125 private void* _typeId; |
121 | 126 |
141 if (auto obj = mo.wrap(nativeId, typeId, flags)) | 146 if (auto obj = mo.wrap(nativeId, typeId, flags)) |
142 return obj; | 147 return obj; |
143 } | 148 } |
144 } | 149 } |
145 | 150 |
146 return _createWrapper(nativeId, flags); | 151 return static_cast!(QtdObject)(_createWrapper(nativeId, flags)); |
147 } | 152 } |
148 } | 153 } |
149 | 154 |
150 abstract class QtdObjectBase | 155 abstract class QtdObjectBase |
151 { | 156 { |
271 | 276 |
272 ~this() | 277 ~this() |
273 { | 278 { |
274 debug(QtdVerbose) __print("In QtdObject destructor"); | 279 debug(QtdVerbose) __print("In QtdObject destructor"); |
275 | 280 |
276 if (__prev || __root is this)d | 281 if (__prev || __root is this) |
277 __unpin; | 282 __unpin; |
278 } | 283 } |
279 } | 284 } |
280 | 285 |
281 /++ | 286 /++ |