annotate qt/d2/qt/QtDObject.d @ 252:37eed70de029

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