comparison dwt/internal/mozilla/nsStringAPI.d @ 327:b0d7eb5bd76c

Adding Mozilla XPCOM interfaces from dwt-linux to dwt-win
author John Reimer <terminal.node@gmail.com>
date Fri, 02 Jan 2009 17:45:10 -0800
parents
children
comparison
equal deleted inserted replaced
326:e4d29367b1fa 327:b0d7eb5bd76c
1 module dwt.internal.mozilla.nsStringAPI;
2
3 import Utf = tango.text.convert.Utf;
4 import dwt.internal.mozilla.Common;
5
6 extern (System):
7
8 /******************************************************************************
9
10 ******************************************************************************/
11
12 enum
13 {
14 NS_STRING_CONTAINER_INIT_DEPEND = 2,
15 NS_STRING_CONTAINER_INIT_ADOPT = 4,
16 NS_STRING_CONTAINER_INIT_SUBSTRING = 8,
17 }
18
19 nsresult NS_StringContainerInit ( nsStringContainer *aContainer );
20 nsresult NS_StringContainerInit2( nsStringContainer *aContainer, PRUnichar *aData, PRUint32 aDataLength, PRUint32 aFlags );
21 void NS_StringContainerFinish(nsStringContainer *aContainer);
22 PRUint32 NS_StringGetData(nsAString *aStr, PRUnichar **aData, PRBool *aTerminated);
23 PRUint32 NS_StringGetMutableData(nsAString *aStr, PRUint32 aDataLength, PRUnichar **aData);
24 PRUnichar * NS_StringCloneData(nsAString *aStr);
25 nsresult NS_StringSetData(nsAString *aStr, PRUnichar *aData, PRUint32 aDataLength);
26 nsresult NS_StringSetDataRange( nsAString *aStr, PRUint32 aCutOffset, PRUint32 aCutLength, PRUnichar *aData, PRUint32 aDataLength );
27 nsresult NS_StringCopy(nsAString *aDestStr, nsAString *aSrcStr);
28
29 /******************************************************************************
30
31 ******************************************************************************/
32
33 enum
34 {
35 NS_CSTRING_CONTAINER_INIT_DEPEND = 2,
36 NS_CSTRING_CONTAINER_INIT_ADOPT = 4,
37 NS_CSTRING_CONTAINER_INIT_SUBSTRING = 8,
38 }
39
40 nsresult NS_CStringContainerInit( nsCStringContainer *aContainer );
41 nsresult NS_CStringContainerInit2( nsCStringContainer *aContainer, char *aData, PRUint32 aDataLength, PRUint32 aFlags );
42 void NS_CStringContainerFinish( nsCStringContainer *aContainer );
43 PRUint32 NS_CStringGetData( nsACString *aStr, char **aData, PRBool *aTerminated );
44 PRUint32 NS_CStringGetMutableData( nsACString *aStr, PRUint32 aDataLength, char **aData );
45 char * NS_CStringCloneData( nsACString *aStr);
46 nsresult NS_CStringSetData( nsACString *aStr, char *aData, PRUint32 aDataLength );
47 nsresult NS_CStringSetDataRange( nsACString *aStr, PRUint32 aCutOffset,
48 PRUint32 aCutLength, char *aData, PRUint32 aDataLength );
49 nsresult NS_CStringCopy( nsACString *aDestStr, nsACString *aSrcStr );
50
51 /******************************************************************************
52
53 ******************************************************************************/
54
55 enum nsCStringEncoding
56 {
57 NS_CSTRING_ENCODING_ASCII,
58 NS_CSTRING_ENCODING_UTF8,
59 NS_CSTRING_ENCODING_NATIVE_FILESYSTEM,
60 }
61
62 nsresult NS_CStringToUTF16( nsACString *aSource, int aSrcEncoding, nsAString *aDest );
63 nsresult NS_UTF16ToCString( nsAString *aSource, int aDestEncoding, nsACString *aDest );
64
65 /******************************************************************************
66
67 ******************************************************************************/
68
69 alias nsAString nsAString_external;
70 alias nsACString nsACString_external;
71
72 //alias nsAString nsEmbedString;
73 //alias nsACString nsEmbedCString;
74
75 struct nsAString
76 {
77
78 static nsAString opCall(wchar[] s)
79 {
80 nsAString result;
81 NS_StringSetData(&result, cast(PRUnichar*)s, uint.max);
82 return result;
83 }
84
85 static wchar[] toString16( nsAString* str )
86 {
87 wchar* buffer = null;
88 PRBool terminated;
89 uint len = NS_StringGetData(str, &buffer, &terminated);
90 return buffer[0 .. len].dup;
91 }
92
93 static char[] toString( nsAString* str )
94 {
95 return Utf.toString( nsAString.toString16( str ) );
96 }
97
98 private:
99 void *v;
100 }
101
102 struct nsACString
103 {
104 /+
105 static nsACString opCall(char[] s)
106 {
107 nsACString result;
108 NS_CStringSetData(&result, cast(char*)s, uint.max);
109 return result;
110 }
111 +/
112 private:
113 void *v;
114 }
115
116 /******************************************************************************
117
118 ******************************************************************************/
119
120 struct nsStringContainer// : public nsAString
121 {
122 private:
123 void* v;
124 void* d1;
125 uint d2;
126 void* d3;
127 }
128
129 struct nsCStringContainer// : public nsACString
130 {
131 private:
132 void* v;
133 void* d1;
134 uint d2;
135 void* d3;
136 }
137
138 /******************************************************************************
139
140 ******************************************************************************/
141
142 // import mozilla.xpcom.nsDebug;
143
144 alias nsString_external nsString;
145 alias nsCString_external nsCString;
146 alias nsDependentString_external nsDependentString;
147 alias nsDependentCString_external nsDependentCString;
148 alias NS_ConvertASCIItoUTF16_external NS_ConvertASCIItoUTF16;
149 alias NS_ConvertUTF8toUTF16_external NS_ConvertUTF8toUTF16;
150 alias NS_ConvertUTF16toUTF8_external NS_ConvertUTF16toUTF8;
151 alias NS_LossyConvertUTF16toASCII_external NS_LossyConvertUTF16toASCII;
152 alias nsGetterCopies_external nsGetterCopies;
153 alias nsCGetterCopies_external nsCGetterCopies;
154 alias nsDependentSubstring_external nsDependentSubstring;
155 alias nsDependentCSubstring_external nsDependentCSubstring;
156
157 struct nsString_external{}
158 struct nsCString_external{}
159 struct nsDependentString_external{}
160 struct nsDependentCString_external{}
161 struct NS_ConvertASCIItoUTF16_external{}
162 struct NS_ConvertUTF8toUTF16_external{}
163 struct NS_ConvertUTF16toUTF8_external{}
164 struct NS_LossyConvertUTF16toASCII_external{}
165
166 /******************************************************************************
167
168 ******************************************************************************/
169
170 struct nsGetterCopies_external
171 {
172 private:
173 alias PRUnichar char_type;
174 nsString_external *mString;
175 char_type *mData;
176 }
177
178 struct nsCGetterCopies_external
179 {
180 private:
181 alias char char_type;
182 nsCString_external *mString;
183 char_type *mData;
184 }
185
186 /******************************************************************************
187
188 ******************************************************************************/
189
190 struct nsDependentSubstring_external{}
191 struct nsDependentCSubstring_external{}