comparison dwt/internal/mozilla/nsStringAPI.d @ 272:dd63eb078d7a

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