comparison generator/typesystem_core-java.java @ 365:958e8b9a89bd

Changeset a084e2df3776 is broken. Backing out.
author Max Samukha <maxter@spambox.com>
date Fri, 11 Jun 2010 20:09:25 +0300
parents a084e2df3776
children 185df9220ea7
comparison
equal deleted inserted replaced
364:a084e2df3776 365:958e8b9a89bd
43 43
44 import qt.*; 44 import qt.*;
45 import qt.core.*; 45 import qt.core.*;
46 46
47 class QObject___ extends QObject { 47 class QObject___ extends QObject {
48 48
49 alias QMetaObject Meta;
50
51 /* TODO: test whether the linked list is really a better solution 49 /* TODO: test whether the linked list is really a better solution
52 public bool __stackAllocated = false; 50 public bool __stackAllocated = false;
53 51
54 new(size_t size, void* p = null) 52 new(size_t size, void* p = null)
55 { 53 {
56 if (!p) 54 if (!p)
57 { 55 {
58 p = malloc(size); 56 p = malloc(size);
72 GC.removeRange(p); 70 GC.removeRange(p);
73 } 71 }
74 } 72 }
75 } 73 }
76 */ 74 */
77 75
78 private 76 private
79 { 77 {
80 static QObject __root; 78 static QObject __root;
81 QObject __next; 79 QObject __next;
82 QObject __prev; 80 QObject __prev;
83 } 81 }
84 /* 82 /*
85 override void onSignalHandlerCreated(ref SignalHandler sh) 83 override void onSignalHandlerCreated(ref SignalHandler sh)
86 { 84 {
87 sh.signalEvent = &onSignalEvent; 85 sh.signalEvent = &onSignalEvent;
88 } 86 }
89 87
90 private void onSignalEvent(int signalId, SignalEventId event) 88 private void onSignalEvent(int signalId, SignalEventId event)
91 { 89 {
92 stringz signature; 90 stringz signature;
93 signalSignature(signalId, signature); 91 signalSignature(signalId, signature);
94 if (signature) 92 if (signature)
95 { 93 {
96 switch (event) 94 switch (event)
97 { 95 {
98 case SignalEventId.firstSlotConnected: 96 case SignalEventId.firstSlotConnected:
111 { 109 {
112 if (__prev) 110 if (__prev)
113 __prev.__next = __next; 111 __prev.__next = __next;
114 else 112 else
115 __root = __next; 113 __root = __next;
116 114
117 if (__next) 115 if (__next)
118 __next.__prev = __prev; 116 __next.__prev = __prev;
119 } 117 }
120 118
121 /** 119 /**
122 */ 120 */
123 T findChild(T : QObject = QObject)(string name = null) 121 T findChild(T : QObject = QObject)(string name = null)
124 { 122 {
125 foreach (obj; children) 123 foreach (obj; children)
126 { 124 {
127 auto tmp = cast(T)obj; 125 auto tmp = cast(T)obj;
128 if (tmp && (!name.length || tmp.objectName == name)) 126 if (tmp && (!name.length || tmp.objectName == name))
129 return tmp; 127 return tmp;
130 128
131 tmp = obj.findChild!(T)(name); 129 tmp = obj.findChild!(T)(name);
132 if (tmp) 130 if (tmp)
133 return tmp; 131 return tmp;
134 } 132 }
135 133
136 return null; 134 return null;
137 } 135 }
138 136
139 /** 137 /**
140 */ 138 */
141 T[] findChildren(T : QObject = QObject)(string name = null) 139 T[] findChildren(T : QObject = QObject)(string name = null)
142 { 140 {
143 T[] result; 141 T[] result;
144 142
145 void find(QObject[] objects) 143 void find(QObject[] objects)
146 { 144 {
147 foreach (obj; objects) 145 foreach (obj; objects)
148 { 146 {
149 auto tmp = cast(T)obj; 147 auto tmp = cast(T)obj;
150 if (tmp && (!name.length || tmp.objectName == name)) 148 if (tmp && (!name.length || tmp.objectName == name))
151 result ~= tmp; 149 result ~= tmp;
152 find(obj.children); 150 find(obj.children);
153 } 151 }
154 } 152 }
155 153
156 find(children); 154 find(children);
157 return result; 155 return result;
158 } 156 }
159 157
160 static void connect(QObject sender, string signal, QObject receiver, string method, int type = 0) 158 static void connect(QObject sender, string signal, QObject receiver, string method, int type = 0)
161 { 159 {
162 QMetaObject.connectImpl(sender, signal, receiver, method, type); 160 QMetaObject.connectImpl(sender, signal, receiver, method, type);
163 } 161 }
164 }// class 162 }// class