Mercurial > projects > dwt-mac
comparison dwt/internal/mozilla/nsEmbedString.d @ 45:d8635bb48c7c
Merge with SWT 3.5
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Mon, 01 Dec 2008 17:07:00 +0100 |
parents | |
children | 5583f8eeee6c |
comparison
equal
deleted
inserted
replaced
44:ca5e494f2bbf | 45:d8635bb48c7c |
---|---|
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 * ***** END LICENSE BLOCK ***** */ | |
28 module dwt.internal.mozilla.nsEmbedString; | |
29 | |
30 import dwt.dwthelper.utils; | |
31 | |
32 public class nsEmbedString { | |
33 int /*long*/ handle; | |
34 | |
35 public nsEmbedString() { | |
36 handle = XPCOM.nsEmbedString_new(); | |
37 } | |
38 | |
39 public nsEmbedString(String string) { | |
40 if (string !is null) { | |
41 char[] aString = new char[string.length() + 1]; | |
42 string.getChars(0, string.length(), aString, 0); | |
43 handle = XPCOM.nsEmbedString_new(aString); | |
44 } | |
45 } | |
46 | |
47 public int /*long*/ getAddress() { | |
48 return handle; | |
49 } | |
50 | |
51 public String toString() { | |
52 if (handle is 0) return null; | |
53 int length = XPCOM.nsEmbedString_Length(handle); | |
54 int /*long*/ buffer = XPCOM.nsEmbedString_get(handle); | |
55 char[] dest = new char[length]; | |
56 XPCOM.memmove(dest, buffer, length * 2); | |
57 return new String(dest); | |
58 } | |
59 | |
60 public void dispose() { | |
61 if (handle is 0) return; | |
62 XPCOM.nsEmbedString_delete(handle); | |
63 handle = 0; | |
64 } | |
65 } |