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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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