annotate dwt/graphics/FontData.d @ 84:00a333240696

FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
author Frank Benoit <benoit@tionex.de>
date Wed, 06 Feb 2008 18:46:23 +0100
parents 9a64a7781bab
children 0a96e5a30470
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
1 /*******************************************************************************
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2000, 2007 IBM Corporation and others.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * IBM Corporation - initial API and implementation
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
10 * Port to the D programming language:
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
11 * Frank Benoit <benoit@tionex.de>
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 *******************************************************************************/
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 module dwt.graphics.FontData;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 import dwt.DWT;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 //import dwt.internal.Callback;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 //import dwt.internal.win32.LOGFONT;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 //import dwt.internal.win32.LOGFONTA;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 //import dwt.internal.win32.LOGFONTW;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 import dwt.internal.win32.OS;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 //import dwt.internal.win32.TCHAR;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 import dwt.dwthelper.utils;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 import dwt.dwthelper.Float;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 import dwt.dwthelper.Integer;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 static import tango.text.Text;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 import tango.util.Convert;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 alias tango.text.Text.Text!(char) StringBuffer;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 /**
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 * Instances of this class describe operating system fonts.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 * <p>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 * For platform-independent behaviour, use the get and set methods
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 * corresponding to the following properties:
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 * <dl>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 * <dt>height</dt><dd>the height of the font in points</dd>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 * <dt>name</dt><dd>the face name of the font, which may include the foundry</dd>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 * <dt>style</dt><dd>A bitwise combination of NORMAL, ITALIC and BOLD</dd>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 * </dl>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 * If extra, platform-dependent functionality is required:
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 * <ul>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 * <li>On <em>Windows</em>, the data member of the <code>FontData</code>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 * corresponds to a Windows <code>LOGFONT</code> structure whose fields
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 * may be retrieved and modified.</li>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 * <li>On <em>X</em>, the fields of the <code>FontData</code> correspond
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 * to the entries in the font's XLFD name and may be retrieved and modified.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 * </ul>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 * Application code does <em>not</em> need to explicitly release the
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 * resources managed by each instance when those instances are no longer
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 * required, and thus no <code>dispose()</code> method is provided.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 * @see Font
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 public final class FontData {
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
57
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 /**
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 * A Win32 LOGFONT struct
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 * (Warning: This field is platform dependent)
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 * <p>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 * <b>IMPORTANT:</b> This field is <em>not</em> part of the DWT
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 * public API. It is marked public only so that it can be shared
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 * within the packages provided by DWT. It is not available on all
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 * platforms and should never be accessed from application code.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 * </p>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 public LOGFONT data;
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
69
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 /**
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 * The height of the font data in points
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 * (Warning: This field is platform dependent)
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 * <p>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 * <b>IMPORTANT:</b> This field is <em>not</em> part of the DWT
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 * public API. It is marked public only so that it can be shared
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 * within the packages provided by DWT. It is not available on all
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 * platforms and should never be accessed from application code.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 * </p>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 public float height;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 /**
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 * The locales of the font
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 char[] lang, country, variant;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 private static FontData s_this;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
89 /**
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 * Constructs a new uninitialized font data.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 public this() {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 // We set the charset field so that
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 // wildcard searching will work properly
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 // out of the box
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 data.lfCharSet = cast(byte)OS.DEFAULT_CHARSET;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 height = 12;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 /**
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 * Constructs a new font data given the Windows <code>LOGFONT</code>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 * that it should represent.
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
103 *
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 * @param data the <code>LOGFONT</code> for the result
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 this(LOGFONT* data, float height) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 this.data = *data;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 this.height = height;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 /**
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 * Constructs a new FontData given a string representation
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 * in the form generated by the <code>FontData.toString</code>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114 * method.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 * <p>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 * Note that the representation varies between platforms,
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
117 * and a FontData can only be created from a string that was
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 * generated on the same platform.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 * </p>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 * @param string the string representation of a <code>FontData</code> (must not be null)
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 * @exception IllegalArgumentException <ul>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 * <li>ERROR_NULL_ARGUMENT - if the argument is null</li>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 * <li>ERROR_INVALID_ARGUMENT - if the argument does not represent a valid description</li>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 * </ul>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 * @see #toString
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 public this(char[] string) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 if (string is null) DWT.error(DWT.ERROR_NULL_ARGUMENT);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 int start = 0;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 int end = string.indexOf('|');
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 if (end is -1) DWT.error(DWT.ERROR_INVALID_ARGUMENT);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 char[] version1 = string.substring(start, end);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 try {
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
137 if (Integer.parseInt(version1) !is 1) DWT.error(DWT.ERROR_INVALID_ARGUMENT);
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 } catch (NumberFormatException e) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 DWT.error(DWT.ERROR_INVALID_ARGUMENT);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 }
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
141
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 start = end + 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 end = string.indexOf('|', start);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 if (end is -1) DWT.error(DWT.ERROR_INVALID_ARGUMENT);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 char[] name = string.substring(start, end);
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
146
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 start = end + 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 end = string.indexOf('|', start);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 if (end is -1) DWT.error(DWT.ERROR_INVALID_ARGUMENT);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 float height = 0;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 try {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 height = Float.parseFloat(string.substring(start, end));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 } catch (NumberFormatException e) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 DWT.error(DWT.ERROR_INVALID_ARGUMENT);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 }
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
156
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 start = end + 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 end = string.indexOf('|', start);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 if (end is -1) DWT.error(DWT.ERROR_INVALID_ARGUMENT);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 int style = 0;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 try {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 style = Integer.parseInt(string.substring(start, end));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 } catch (NumberFormatException e) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 DWT.error(DWT.ERROR_INVALID_ARGUMENT);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 start = end + 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168 end = string.indexOf('|', start);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 //data = OS.IsUnicode ? cast(LOGFONT)new LOGFONTW() : new LOGFONTA();
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 data.lfCharSet = cast(byte)OS.DEFAULT_CHARSET;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171 setName(name);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 setHeight(height);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173 setStyle(style);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 if (end is -1) return;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 char[] platform = string.substring(start, end);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 start = end + 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 end = string.indexOf('|', start);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 if (end is -1) return;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180 char[] version2 = string.substring(start, end);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182 if (platform ==/*eq*/ "WINDOWS" && version2 ==/*eq*/ "1") { //$NON-NLS-1$//$NON-NLS-2$
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 LOGFONT newData;// = OS.IsUnicode ? cast(LOGFONT)new LOGFONTW() : new LOGFONTA();
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 try {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 start = end + 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 end = string.indexOf('|', start);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
187 if (end is -1) return;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
188 newData.lfHeight = Integer.parseInt(string.substring(start, end));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189 start = end + 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190 end = string.indexOf('|', start);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191 if (end is -1) return;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192 newData.lfWidth = Integer.parseInt(string.substring(start, end));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
193 start = end + 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
194 end = string.indexOf('|', start);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
195 if (end is -1) return;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
196 newData.lfEscapement = Integer.parseInt(string.substring(start, end));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197 start = end + 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
198 end = string.indexOf('|', start);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
199 if (end is -1) return;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
200 newData.lfOrientation = Integer.parseInt(string.substring(start, end));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
201 start = end + 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
202 end = string.indexOf('|', start);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
203 if (end is -1) return;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
204 newData.lfWeight = Integer.parseInt(string.substring(start, end));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
205 start = end + 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
206 end = string.indexOf('|', start);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
207 if (end is -1) return;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
208 newData.lfItalic = Byte.parseByte(string.substring(start, end));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
209 start = end + 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
210 end = string.indexOf('|', start);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
211 if (end is -1) return;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
212 newData.lfUnderline = Byte.parseByte(string.substring(start, end));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
213 start = end + 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
214 end = string.indexOf('|', start);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
215 if (end is -1) return;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
216 newData.lfStrikeOut = Byte.parseByte(string.substring(start, end));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
217 start = end + 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
218 end = string.indexOf('|', start);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
219 if (end is -1) return;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
220 newData.lfCharSet = Byte.parseByte(string.substring(start, end));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
221 start = end + 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
222 end = string.indexOf('|', start);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
223 if (end is -1) return;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
224 newData.lfOutPrecision = Byte.parseByte(string.substring(start, end));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
225 start = end + 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
226 end = string.indexOf('|', start);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
227 if (end is -1) return;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
228 newData.lfClipPrecision = Byte.parseByte(string.substring(start, end));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
229 start = end + 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
230 end = string.indexOf('|', start);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
231 if (end is -1) return;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
232 newData.lfQuality = Byte.parseByte(string.substring(start, end));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
233 start = end + 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
234 end = string.indexOf('|', start);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
235 if (end is -1) return;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
236 newData.lfPitchAndFamily = Byte.parseByte(string.substring(start, end));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
237 start = end + 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
238 } catch (NumberFormatException e) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
239 setName(name);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
240 setHeight(height);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
241 setStyle(style);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
242 return;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
243 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
244 char[] buffer = string.substring(start);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
245 int len = Math.min(OS.LF_FACESIZE - 1, buffer.length);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
246 newData.lfFaceName[ 0 .. len ] = .StrToTCHARs(buffer)[ 0 .. len ];
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
247 data = newData;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
248 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
249 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
250
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
251 /**
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
252 * Constructs a new font data given a font name,
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
253 * the height of the desired font in points,
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
254 * and a font style.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
255 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
256 * @param name the name of the font (must not be null)
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
257 * @param height the font height in points
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
258 * @param style a bit or combination of NORMAL, BOLD, ITALIC
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
259 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
260 * @exception IllegalArgumentException <ul>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
261 * <li>ERROR_NULL_ARGUMENT - when the font name is null</li>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
262 * <li>ERROR_INVALID_ARGUMENT - if the height is negative</li>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
263 * </ul>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
264 */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
265 public this(char[] name, int height, int style) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
266 if (name is null) DWT.error(DWT.ERROR_NULL_ARGUMENT);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
267 setName(name);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
268 setHeight(height);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
269 setStyle(style);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
270 // We set the charset field so that
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
271 // wildcard searching will work properly
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
272 // out of the box
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
273 data.lfCharSet = cast(byte)OS.DEFAULT_CHARSET;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
274 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
275
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
276 /*public*/ this(char[] name, float height, int style) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
277 if (name is null) DWT.error(DWT.ERROR_NULL_ARGUMENT);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
278 setName(name);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
279 setHeight(height);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
280 setStyle(style);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
281 // We set the charset field so that
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
282 // wildcard searching will work properly
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
283 // out of the box
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
284 data.lfCharSet = cast(byte)OS.DEFAULT_CHARSET;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
285 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
286
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
287 /**
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
288 * Compares the argument to the receiver, and returns true
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
289 * if they represent the <em>same</em> object using a class
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
290 * specific comparison.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
291 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
292 * @param object the object to compare with this object
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
293 * @return <code>true</code> if the object is the same as this object and <code>false</code> otherwise
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
294 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
295 * @see #hashCode
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
296 */
48
9a64a7781bab Added override and alias, first chunk. Thanks torhu for doing this patch.
Frank Benoit <benoit@tionex.de>
parents: 23
diff changeset
297 override public int opEquals (Object object) {
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
298 if (object is this) return true;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
299 if( auto fd = cast(FontData)object ){
17
eca0c8261b9f minor fix
Frank Benoit <benoit@tionex.de>
parents: 15
diff changeset
300 LOGFONT* lf = &fd.data;
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
301 return data.lfCharSet is lf.lfCharSet &&
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
302 /*
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
303 * This code is intentionally commented. When creating
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
304 * a FontData, lfHeight is not necessarily set. Instead
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
305 * we check the height field which is always set.
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
306 */
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
307 // data.lfHeight is lf.lfHeight &&
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
308 height is fd.height &&
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
309 data.lfWidth is lf.lfWidth &&
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
310 data.lfEscapement is lf.lfEscapement &&
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
311 data.lfOrientation is lf.lfOrientation &&
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
312 data.lfWeight is lf.lfWeight &&
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
313 data.lfItalic is lf.lfItalic &&
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
314 data.lfUnderline is lf.lfUnderline &&
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
315 data.lfStrikeOut is lf.lfStrikeOut &&
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
316 data.lfCharSet is lf.lfCharSet &&
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
317 data.lfOutPrecision is lf.lfOutPrecision &&
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
318 data.lfClipPrecision is lf.lfClipPrecision &&
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
319 data.lfQuality is lf.lfQuality &&
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
320 data.lfPitchAndFamily is lf.lfPitchAndFamily &&
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
321 getName() ==/*eq*/ fd.getName();
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
322 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
323 return false;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
324 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
325
84
00a333240696 FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents: 48
diff changeset
326 extern (Windows) static int EnumLocalesProc(TCHAR* lpLocaleString) {
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
327
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
328 /* Get the locale ID */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
329 int length_ = 8;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
330 char[] str = .TCHARzToStr( cast(TCHAR*)lpLocaleString, length_);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
331 int lcid = Integer.parseInt(str, 16);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
332
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
333 TCHAR[] buffer = new TCHAR[length_];
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
334
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
335 /* Check the language */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
336 int size = OS.GetLocaleInfo(lcid, OS.LOCALE_SISO639LANGNAME, buffer.ptr, length_);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
337 if (size <= 0 || s_this.lang !=/*eq*/ .TCHARzToStr( buffer.ptr ).substring(0, size - 1)) return 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
338
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
339 /* Check the country */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
340 if (s_this.country !is null) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
341 size = OS.GetLocaleInfo(lcid, OS.LOCALE_SISO3166CTRYNAME, buffer.ptr, length_);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
342 if (size <= 0 || s_this.country !=/*eq*/ .TCHARzToStr( buffer.ptr ).substring(0, size - 1)) return 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
343 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
344
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
345 /* Get the charset */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
346 size = OS.GetLocaleInfo(lcid, OS.LOCALE_IDEFAULTANSICODEPAGE, buffer.ptr, length_);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
347 if (size <= 0) return 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
348 int cp = Integer.parseInt(.TCHARzToStr(buffer.ptr).substring(0, size - 1));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
349 CHARSETINFO lpCs;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
350 OS.TranslateCharsetInfo(cast(DWORD*)cp, &lpCs, OS.TCI_SRCCODEPAGE);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
351 s_this.data.lfCharSet = cast(BYTE)lpCs.ciCharset;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
352
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
353 return 0;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
354 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
355
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
356 /**
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
357 * Returns the height of the receiver in points.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
358 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
359 * @return the height of this FontData
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
360 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
361 * @see #setHeight(int)
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
362 */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
363 public int getHeight() {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
364 return cast(int)(0.5f + height);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
365 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
366
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
367 /*public*/ float getHeightF() {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
368 return height;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
369 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
370
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
371 /**
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
372 * Returns the locale of the receiver.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
373 * <p>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
374 * The locale determines which platform character set this
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
375 * font is going to use. Widgets and graphics operations that
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
376 * use this font will convert UNICODE strings to the platform
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
377 * character set of the specified locale.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
378 * </p>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
379 * <p>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
380 * On platforms where there are multiple character sets for a
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
381 * given language/country locale, the variant portion of the
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
382 * locale will determine the character set.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
383 * </p>
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
384 *
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
385 * @return the <code>String</code> representing a Locale object
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
386 * @since 3.0
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
387 */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
388 public char[] getLocale () {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
389 StringBuffer buffer = new StringBuffer ();
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
390 char sep = '_';
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
391 if (lang !is null) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
392 buffer.append (lang);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
393 buffer.append (sep);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
394 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
395 if (country !is null) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
396 buffer.append (country);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
397 buffer.append (sep);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
398 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
399 if (variant !is null) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
400 buffer.append (variant);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
401 }
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
402
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
403 char[] result = buffer.toString ();
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
404 int length_ = result.length;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
405 if (length_ > 0) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
406 if (result.charAt (length_ - 1) is sep) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
407 result = result.substring (0, length_ - 1);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
408 }
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
409 }
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
410 return result;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
411 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
412
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
413 /**
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
414 * Returns the name of the receiver.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
415 * On platforms that support font foundries, the return value will
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
416 * be the foundry followed by a dash ("-") followed by the face name.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
417 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
418 * @return the name of this <code>FontData</code>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
419 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
420 * @see #setName
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
421 */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
422 public char[] getName() {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
423 return .TCHARzToStr( data.lfFaceName.ptr, -1 );
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
424 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
425
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
426 /**
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
427 * Returns the style of the receiver which is a bitwise OR of
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
428 * one or more of the <code>DWT</code> constants NORMAL, BOLD
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
429 * and ITALIC.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
430 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
431 * @return the style of this <code>FontData</code>
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
432 *
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
433 * @see #setStyle
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
434 */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
435 public int getStyle() {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
436 int style = DWT.NORMAL;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
437 if (data.lfWeight is 700) style |= DWT.BOLD;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
438 if (data.lfItalic !is 0) style |= DWT.ITALIC;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
439 return style;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
440 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
441
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
442 /**
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
443 * Returns an integer hash code for the receiver. Any two
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
444 * objects that return <code>true</code> when passed to
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
445 * <code>equals</code> must return the same value for this
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
446 * method.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
447 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
448 * @return the receiver's hash
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
449 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
450 * @see #equals
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
451 */
48
9a64a7781bab Added override and alias, first chunk. Thanks torhu for doing this patch.
Frank Benoit <benoit@tionex.de>
parents: 23
diff changeset
452 override public hash_t toHash () {
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
453 char[] name = getName();
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
454 return data.lfCharSet ^ getHeight() ^ data.lfWidth ^ data.lfEscapement ^
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
455 data.lfOrientation ^ data.lfWeight ^ data.lfItalic ^data.lfUnderline ^
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
456 data.lfStrikeOut ^ data.lfCharSet ^ data.lfOutPrecision ^
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
457 data.lfClipPrecision ^ data.lfQuality ^ data.lfPitchAndFamily ^
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
458 typeid(char[]).getHash(&name);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
459 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
460
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
461 /**
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
462 * Sets the height of the receiver. The parameter is
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
463 * specified in terms of points, where a point is one
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
464 * seventy-second of an inch.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
465 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
466 * @param height the height of the <code>FontData</code>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
467 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
468 * @exception IllegalArgumentException <ul>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
469 * <li>ERROR_INVALID_ARGUMENT - if the height is negative</li>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
470 * </ul>
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
471 *
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
472 * @see #getHeight
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
473 */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
474 public void setHeight(int height) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
475 if (height < 0) DWT.error(DWT.ERROR_INVALID_ARGUMENT);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
476 this.height = height;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
477 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
478
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
479 /*public*/ void setHeight(float height) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
480 if (height < 0) DWT.error(DWT.ERROR_INVALID_ARGUMENT);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
481 this.height = height;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
482 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
483
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
484 /**
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
485 * Sets the locale of the receiver.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
486 * <p>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
487 * The locale determines which platform character set this
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
488 * font is going to use. Widgets and graphics operations that
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
489 * use this font will convert UNICODE strings to the platform
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
490 * character set of the specified locale.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
491 * </p>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
492 * <p>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
493 * On platforms where there are multiple character sets for a
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
494 * given language/country locale, the variant portion of the
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
495 * locale will determine the character set.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
496 * </p>
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
497 *
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
498 * @param locale the <code>String</code> representing a Locale object
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
499 * @see java.util.Locale#toString
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
500 */
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
501 public void setLocale(char[] locale) {
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
502 lang = country = variant = null;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
503 if (locale !is null) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
504 char sep = '_';
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
505 int length_ = locale.length;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
506 int firstSep, secondSep;
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
507
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
508 firstSep = locale.indexOf(sep);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
509 if (firstSep is -1) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
510 firstSep = secondSep = length_;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
511 } else {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
512 secondSep = locale.indexOf(sep, firstSep + 1);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
513 if (secondSep is -1) secondSep = length_;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
514 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
515 if (firstSep > 0) lang = locale.substring(0, firstSep);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
516 if (secondSep > firstSep + 1) country = locale.substring(firstSep + 1, secondSep);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
517 if (length_ > secondSep + 1) variant = locale.substring(secondSep + 1);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
518 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
519 if (lang is null) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
520 data.lfCharSet = cast(byte)OS.DEFAULT_CHARSET;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
521 } else {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
522 synchronized(this.classinfo){
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
523 s_this = this;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
524 OS.EnumSystemLocales(&EnumLocalesProc, OS.LCID_SUPPORTED);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
525 s_this = null;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
526 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
527 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
528 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
529
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
530 /**
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
531 * Sets the name of the receiver.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
532 * <p>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
533 * Some platforms support font foundries. On these platforms, the name
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
534 * of the font specified in setName() may have one of the following forms:
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
535 * <ol>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
536 * <li>a face name (for example, "courier")</li>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
537 * <li>a foundry followed by a dash ("-") followed by a face name (for example, "adobe-courier")</li>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
538 * </ol>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
539 * In either case, the name returned from getName() will include the
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
540 * foundry.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
541 * </p>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
542 * <p>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
543 * On platforms that do not support font foundries, only the face name
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
544 * (for example, "courier") is used in <code>setName()</code> and
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
545 * <code>getName()</code>.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
546 * </p>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
547 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
548 * @param name the name of the font data (must not be null)
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
549 * @exception IllegalArgumentException <ul>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
550 * <li>ERROR_NULL_ARGUMENT - when the font name is null</li>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
551 * </ul>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
552 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
553 * @see #getName
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
554 */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
555 public void setName(char[] name) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
556 if (name is null) DWT.error(DWT.ERROR_NULL_ARGUMENT);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
557
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
558 /* The field lfFaceName must be NULL terminated */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
559 int len = Math.min(OS.LF_FACESIZE - 1, name.length);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
560
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
561 data.lfFaceName[0 .. len] = .StrToTCHARs(name)[0 .. len];
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
562 data.lfFaceName[len] = 0;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
563 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
564
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
565 /**
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
566 * Sets the style of the receiver to the argument which must
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
567 * be a bitwise OR of one or more of the <code>DWT</code>
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
568 * constants NORMAL, BOLD and ITALIC. All other style bits are
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
569 * ignored.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
570 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
571 * @param style the new style for this <code>FontData</code>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
572 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
573 * @see #getStyle
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
574 */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
575 public void setStyle(int style) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
576 if ((style & DWT.BOLD) is DWT.BOLD) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
577 data.lfWeight = 700;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
578 } else {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
579 data.lfWeight = 0;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
580 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
581 if ((style & DWT.ITALIC) is DWT.ITALIC) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
582 data.lfItalic = 1;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
583 } else {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
584 data.lfItalic = 0;
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
585 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
586 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
587
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
588 /**
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
589 * Returns a string representation of the receiver which is suitable
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
590 * for constructing an equivalent instance using the
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
591 * <code>FontData(String)</code> constructor.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
592 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
593 * @return a string representation of the FontData
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
594 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
595 * @see FontData
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
596 */
48
9a64a7781bab Added override and alias, first chunk. Thanks torhu for doing this patch.
Frank Benoit <benoit@tionex.de>
parents: 23
diff changeset
597 override public char[] toString() {
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
598 StringBuffer buffer = new StringBuffer();
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
599 buffer.append("1|"); //$NON-NLS-1$
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
600 buffer.append(getName());
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
601 buffer.append("|"); //$NON-NLS-1$
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
602 buffer.append(to!(char[])(getHeightF()));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
603 buffer.append("|"); //$NON-NLS-1$
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
604 buffer.append(to!(char[])(getStyle()));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
605 buffer.append("|"); //$NON-NLS-1$
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
606 buffer.append("WINDOWS|1|"); //$NON-NLS-1$
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
607 buffer.append(to!(char[])(data.lfHeight));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
608 buffer.append("|"); //$NON-NLS-1$
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
609 buffer.append(to!(char[])(data.lfWidth));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
610 buffer.append("|"); //$NON-NLS-1$
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
611 buffer.append(to!(char[])(data.lfEscapement));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
612 buffer.append("|"); //$NON-NLS-1$
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
613 buffer.append(to!(char[])(data.lfOrientation));
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
614 buffer.append("|"); //$NON-NLS-1$
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
615 buffer.append(to!(char[])(data.lfWeight));
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
616 buffer.append("|"); //$NON-NLS-1$
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
617 buffer.append(to!(char[])(data.lfItalic));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
618 buffer.append("|"); //$NON-NLS-1$
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
619 buffer.append(to!(char[])(data.lfUnderline));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
620 buffer.append("|"); //$NON-NLS-1$
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
621 buffer.append(to!(char[])(data.lfStrikeOut));
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
622 buffer.append("|"); //$NON-NLS-1$
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
623 buffer.append(to!(char[])(data.lfCharSet));
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
624 buffer.append("|"); //$NON-NLS-1$
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
625 buffer.append(to!(char[])(data.lfOutPrecision));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
626 buffer.append("|"); //$NON-NLS-1$
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
627 buffer.append(to!(char[])(data.lfClipPrecision));
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
628 buffer.append("|"); //$NON-NLS-1$
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
629 buffer.append(to!(char[])(data.lfQuality));
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
630 buffer.append("|"); //$NON-NLS-1$
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
631 buffer.append(to!(char[])(data.lfPitchAndFamily));
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
632 buffer.append("|"); //$NON-NLS-1$
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
633 buffer.append(getName());
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
634 return buffer.toString();
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
635 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
636
23
f5482da87ed8 Image, ImageData
Frank Benoit <benoit@tionex.de>
parents: 17
diff changeset
637 /**
15
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
638 * Invokes platform specific functionality to allocate a new font data.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
639 * <p>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
640 * <b>IMPORTANT:</b> This method is <em>not</em> part of the public
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
641 * API for <code>FontData</code>. It is marked public only so that
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
642 * it can be shared within the packages provided by DWT. It is not
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
643 * available on all platforms, and should never be called from
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
644 * application code.
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
645 * </p>
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
646 *
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
647 * @param data the <code>LOGFONT</code> for the font data
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
648 * @param height the height of the font data
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
649 * @return a new font data object containing the specified <code>LOGFONT</code> and height
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
650 */
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
651 public static FontData win32_new(LOGFONT* data, float height) {
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
652 return new FontData(data, height);
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
653 }
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
654
1bea9f0c6f63 FontData, Font
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
655 }