Mercurial > projects > dwt-linux
annotate dwt/internal/mozilla/nsEmbedString2.d @ 291:b0bd1789106b
fix: added wrong directory :(
author | John Reimer<terminal.node@gmail.com> |
---|---|
date | Wed, 06 Aug 2008 18:29:44 -0700 |
parents | |
children | 3dfa75c74ed2 |
rev | line source |
---|---|
291
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
1 module dwt.internal.mozilla.nsEmbedString; |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
2 |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
3 import dwt.internal.mozilla.Common; |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
4 import dwt.internal.mozilla.nsStringAPI; |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
5 |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
6 class nsEmbedString |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
7 { |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
8 this(wchar[] s) |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
9 { |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
10 nsresult result; |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
11 result = NS_StringContainerInit2(&str, s.ptr, s.length, 0); |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
12 if (result != 0) // TODO: convert to XPCOM fail macro |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
13 throw new Exception("Init string container fail"); |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
14 } |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
15 |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
16 this() |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
17 { |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
18 nsresult result; |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
19 result = NS_StringContainerInit(&str); |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
20 if (result != 0) // TODO: convert to XPCOM fail macro |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
21 throw new Exception("Init string container fail"); |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
22 } |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
23 |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
24 nsAString* opCast() |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
25 { |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
26 return cast(nsAString*)&str; |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
27 } |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
28 |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
29 wchar[] toString16() |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
30 { |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
31 wchar* buffer = null; |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
32 PRBool terminated; |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
33 uint len = NS_StringGetData(cast(nsAString*)&str, &buffer, &terminated); |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
34 return buffer[0 .. len].dup; |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
35 } |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
36 |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
37 ~this() |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
38 { |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
39 NS_StringContainerFinish(&str); |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
40 } |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
41 private: |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
42 nsStringContainer str; |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
43 } |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
44 |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
45 |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
46 class nsEmbedCString |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
47 { |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
48 this(char[] s) |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
49 { |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
50 nsresult result; |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
51 result = NS_CStringContainerInit2(&str, s.ptr, s.length, 0); |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
52 if (result != 0) // TODO: convert to XPCOM fail macro |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
53 throw new Exception("Init string container fail"); |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
54 } |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
55 |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
56 this() |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
57 { |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
58 nsresult result; |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
59 result = NS_CStringContainerInit(&str); |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
60 if (result != 0) // TODO: convert to XPCOM fail macro |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
61 throw new Exception("Init string container fail"); |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
62 } |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
63 |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
64 nsACString* opCast() |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
65 { |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
66 return cast(nsACString*)&str; |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
67 } |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
68 |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
69 char[] toString() |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
70 { |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
71 char* buffer = null; |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
72 PRBool terminated; |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
73 uint len = NS_CStringGetData(cast(nsACString*)&str, &buffer, &terminated); |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
74 return buffer[0 .. len].dup; |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
75 } |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
76 |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
77 ~this() |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
78 { |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
79 NS_CStringContainerFinish(&str); |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
80 } |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
81 private: |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
82 nsCStringContainer str; |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
83 } |
b0bd1789106b
fix: added wrong directory :(
John Reimer<terminal.node@gmail.com>
parents:
diff
changeset
|
84 |