comparison dwt/internal/mozilla/nsEmbedString.d @ 278:93409d9838c5

Commit more browser/xpcom updates, including still uncoverted source.
author John Reimer<terminal.node@gmail.com>
date Thu, 31 Jul 2008 19:17:51 -0700
parents
children 3f4a5c7d138f
comparison
equal deleted inserted replaced
277:687f261028b8 278:93409d9838c5
1 /* ***** BEGIN LICENSE BLOCK *****
2 * Version: MPL 1.1
3 *
4 * The contents of this file are subject to the Mozilla Public License Version
5 * 1.1 (the "License"); you may not use this file except in compliance with
6 * the License. You may obtain a copy of the License at
7 * http://www.mozilla.org/MPL/
8 *
9 * Software distributed under the License is distributed on an "AS IS" basis,
10 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11 * for the specific language governing rights and limitations under the
12 * License.
13 *
14 * The Original Code is Mozilla Communicator client code, released March 31, 1998.
15 *
16 * The Initial Developer of the Original Code is
17 * Netscape Communications Corporation.
18 * Portions created by Netscape are Copyright (C) 1998-1999
19 * Netscape Communications Corporation. All Rights Reserved.
20 *
21 * Contributor(s):
22 *
23 * IBM
24 * - Binding to permit interfacing between Mozilla and DWT
25 * - Copyright (C) 2004 IBM Corp. All Rights Reserved.
26 *
27 * Port to the D programming language:
28 * John Reimer <terminal.node@gmail.com>
29 *
30 * ***** END LICENSE BLOCK ***** */
31
32 module dwt.internal.mozilla.nsEmbedString;
33
34 import dwt.dwthelper.utils;
35 import dwt.internal.mozilla.nsStringAPI;
36
37 public class nsEmbedString
38 {
39 int /*long*/ handle;
40
41 /**************************************************************************
42
43 **************************************************************************/
44
45 public this()
46 {
47 handle = XPCOM.nsEmbedString_new();
48 }
49
50 /**************************************************************************
51
52 **************************************************************************/
53
54 public nsEmbedString(String string)
55 {
56 if (string !is null)
57 {
58 char[] aString = new char[string.length() + 1];
59 string.getChars(0, string.length(), aString, 0);
60 handle = XPCOM.nsEmbedString_new(aString);
61 }
62 }
63
64 /**************************************************************************
65
66 **************************************************************************/
67
68 public int /*long*/ getAddress()
69 {
70 return handle;
71 }
72
73 /**************************************************************************
74
75 **************************************************************************/
76
77 public String toString()
78 {
79 if (handle is 0)
80 return null;
81 int length = XPCOM.nsEmbedString_Length(handle);
82 int /*long*/ buffer = XPCOM.nsEmbedString_get(handle);
83 char[] dest = new char[length];
84 XPCOM.memmove(dest, buffer, length * 2);
85 return new String(dest);
86 }
87
88 /**************************************************************************
89
90 **************************************************************************/
91
92 public void dispose()
93 {
94 if (handle is 0)
95 return;
96 XPCOM.nsEmbedString_delete(handle);
97 handle = 0;
98 }
99 }