Mercurial > projects > qtd
comparison qt/qtd/MetaMarshall.d @ 319:894d40eb89b6 signals
new signals and slots syntax. have to use prefixes now: signal_fooed and slot_onFooed
author | eldar_ins@eldar-laptop |
---|---|
date | Fri, 25 Dec 2009 21:48:32 +0500 |
parents | ce07227f00c1 |
children | 7a3c43424dca |
comparison
equal
deleted
inserted
replaced
318:ce07227f00c1 | 319:894d40eb89b6 |
---|---|
1 module qt.qtd.MetaMarshall; | 1 module qt.qtd.MetaMarshall; |
2 | 2 |
3 import std.traits; | 3 import std.traits; |
4 | 4 |
5 // utilities | 5 import qt.qtd.Meta; |
6 // shouldn't be here | |
7 | |
8 public bool startsWith(T)(T[] source, T[] pattern) | |
9 { | |
10 return source.length >= pattern.length && source[0 .. pattern.length] == pattern[]; | |
11 } | |
12 | |
13 string __toString(long v) | |
14 { | |
15 if (v == 0) | |
16 return "0"; | |
17 | |
18 string ret; | |
19 | |
20 bool neg; | |
21 if (v < 0) | |
22 { | |
23 neg = true; | |
24 v = -v; | |
25 } | |
26 | |
27 while (v != 0) | |
28 { | |
29 ret = cast(char)(v % 10 + '0') ~ ret; | |
30 v = cast(long)(v / 10); | |
31 } | |
32 | |
33 if (neg) | |
34 ret = "-" ~ ret; | |
35 | |
36 return ret; | |
37 } | |
38 | |
39 template templateParam(U : V!(U), alias V) | |
40 { | |
41 alias U templateParam; | |
42 } | |
43 | |
44 | |
45 /* | |
46 * actual stuff | |
47 */ | |
48 | 6 |
49 template isQObjectType(T) // is a QObject type that belongs to the library | 7 template isQObjectType(T) // is a QObject type that belongs to the library |
50 { | 8 { |
51 enum isQObjectType = is(T.__isQObjectType); | 9 enum isQObjectType = is(T.__isQObjectType); |
52 } | 10 } |
71 enum isStringType = is(T == string); | 29 enum isStringType = is(T == string); |
72 } | 30 } |
73 | 31 |
74 template isQList(T) | 32 template isQList(T) |
75 { | 33 { |
76 enum isQList = startsWith(Unqual!(T).stringof, "QList!"); | 34 enum isQList = ctfeStartsWith(Unqual!(T).stringof, "QList!"); |
77 } | 35 } |
78 | 36 |
79 // converts an argumnent from C++ to D in qt_metacall | 37 // converts an argumnent from C++ to D in qt_metacall |
80 string metaCallArgument(T)(string ptr) | 38 string metaCallArgument(T)(string ptr) |
81 { | 39 { |