annotate qt/QtDObject.d @ 114:547cd31fa12a

CMake: improve of the windows support for ldc.
author SokoL_SD
date Wed, 03 Jun 2009 15:53:24 +0000
parents e78566595089
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
e78566595089 initial import
mandel
parents:
diff changeset
1 /**
e78566595089 initial import
mandel
parents:
diff changeset
2 *
e78566595089 initial import
mandel
parents:
diff changeset
3 * Copyright: Copyright QtD Team, 2008-2009
e78566595089 initial import
mandel
parents:
diff changeset
4 * License: <a href="http://www.boost.org/LICENSE_1_0.txt>Boost License 1.0</a>
e78566595089 initial import
mandel
parents:
diff changeset
5 *
e78566595089 initial import
mandel
parents:
diff changeset
6 * Copyright QtD Team, 2008-2009
e78566595089 initial import
mandel
parents:
diff changeset
7 * Distributed under the Boost Software License, Version 1.0.
e78566595089 initial import
mandel
parents:
diff changeset
8 * (See accompanying file boost-license-1.0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
e78566595089 initial import
mandel
parents:
diff changeset
9 *
e78566595089 initial import
mandel
parents:
diff changeset
10 */
e78566595089 initial import
mandel
parents:
diff changeset
11
e78566595089 initial import
mandel
parents:
diff changeset
12 module qt.QtDObject;
e78566595089 initial import
mandel
parents:
diff changeset
13
e78566595089 initial import
mandel
parents:
diff changeset
14 //import tango.util.container.HashMap;
e78566595089 initial import
mandel
parents:
diff changeset
15 import qt.Signal;
e78566595089 initial import
mandel
parents:
diff changeset
16
e78566595089 initial import
mandel
parents:
diff changeset
17 package class QtDObject
e78566595089 initial import
mandel
parents:
diff changeset
18 {
e78566595089 initial import
mandel
parents:
diff changeset
19 public final void* nativeId() { return native__id; }
e78566595089 initial import
mandel
parents:
diff changeset
20
e78566595089 initial import
mandel
parents:
diff changeset
21 public final void nativeId(void *native_id) { native__id = native_id; }
e78566595089 initial import
mandel
parents:
diff changeset
22
e78566595089 initial import
mandel
parents:
diff changeset
23 private void* native__id = null;
e78566595089 initial import
mandel
parents:
diff changeset
24
e78566595089 initial import
mandel
parents:
diff changeset
25 mixin SignalHandlerOps;
e78566595089 initial import
mandel
parents:
diff changeset
26
e78566595089 initial import
mandel
parents:
diff changeset
27 public this()
e78566595089 initial import
mandel
parents:
diff changeset
28 {
e78566595089 initial import
mandel
parents:
diff changeset
29 /* intentionally empty */
e78566595089 initial import
mandel
parents:
diff changeset
30 }
e78566595089 initial import
mandel
parents:
diff changeset
31
e78566595089 initial import
mandel
parents:
diff changeset
32 package this(void* native_id, bool no_real_delete = false)
e78566595089 initial import
mandel
parents:
diff changeset
33 {
e78566595089 initial import
mandel
parents:
diff changeset
34 native__id = native_id;
e78566595089 initial import
mandel
parents:
diff changeset
35 /* auto qObj = cast(QObject) this;
e78566595089 initial import
mandel
parents:
diff changeset
36 if (qObj is null)
e78566595089 initial import
mandel
parents:
diff changeset
37 register(native__id);*/
e78566595089 initial import
mandel
parents:
diff changeset
38 __no_real_delete = no_real_delete;
e78566595089 initial import
mandel
parents:
diff changeset
39 }
e78566595089 initial import
mandel
parents:
diff changeset
40 /*
e78566595089 initial import
mandel
parents:
diff changeset
41 ~this() {
e78566595089 initial import
mandel
parents:
diff changeset
42 unregister(native__id);
e78566595089 initial import
mandel
parents:
diff changeset
43 }
e78566595089 initial import
mandel
parents:
diff changeset
44 */
e78566595089 initial import
mandel
parents:
diff changeset
45 // this flag controls if D object when destroying should or shouldn't delete real C++ object
e78566595089 initial import
mandel
parents:
diff changeset
46 public bool __no_real_delete = false;
e78566595089 initial import
mandel
parents:
diff changeset
47
e78566595089 initial import
mandel
parents:
diff changeset
48 package void __free_native_resources();
e78566595089 initial import
mandel
parents:
diff changeset
49
e78566595089 initial import
mandel
parents:
diff changeset
50
e78566595089 initial import
mandel
parents:
diff changeset
51 /* hash table of Object instances */
e78566595089 initial import
mandel
parents:
diff changeset
52 /* private static HashMap!(void*, Object) _map;
e78566595089 initial import
mandel
parents:
diff changeset
53
e78566595089 initial import
mandel
parents:
diff changeset
54 static this() {
e78566595089 initial import
mandel
parents:
diff changeset
55 _map = new HashMap!(void*, Object);
e78566595089 initial import
mandel
parents:
diff changeset
56 }
e78566595089 initial import
mandel
parents:
diff changeset
57
e78566595089 initial import
mandel
parents:
diff changeset
58 package static void register(void* qt_object, Object d_object) {
e78566595089 initial import
mandel
parents:
diff changeset
59 _map.add(qt_object, d_object);
e78566595089 initial import
mandel
parents:
diff changeset
60 }
e78566595089 initial import
mandel
parents:
diff changeset
61
e78566595089 initial import
mandel
parents:
diff changeset
62 package static void unregister(void* qt_object) {
e78566595089 initial import
mandel
parents:
diff changeset
63 _map.removeKey(qt_object);
e78566595089 initial import
mandel
parents:
diff changeset
64 }
e78566595089 initial import
mandel
parents:
diff changeset
65
e78566595089 initial import
mandel
parents:
diff changeset
66 package static Object lookup(void* qt_object) {
e78566595089 initial import
mandel
parents:
diff changeset
67 return _map[qt_object];
e78566595089 initial import
mandel
parents:
diff changeset
68 }
e78566595089 initial import
mandel
parents:
diff changeset
69 */
e78566595089 initial import
mandel
parents:
diff changeset
70 }