/*******************************************************************************
* Copyright (c) 2000, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.swt.graphics;
import org.eclipse.swt.SWT;
/**
* Instances of this class describe operating system fonts.
* <p>
* For platform-independent behaviour, use the get and set methods corresponding
* to the following properties:
* <dl>
* <dt>height</dt>
* <dd>the height of the font in points</dd>
* <dt>name</dt>
* <dd>the face name of the font, which may include the foundry</dd>
* <dt>style</dt>
* <dd>A bitwise combination of NORMAL, ITALIC and BOLD</dd>
* </dl>
* If extra, platform-dependent functionality is required:
* <ul>
* <li>On <em>Windows</em>, the data member of the <code>FontData</code>
* corresponds to a Windows <code>LOGFONT</code> structure whose fields may be
* retrieved and modified.</li>
* <li>On <em>X</em>, the fields of the <code>FontData</code> correspond to the
* entries in the font's XLFD name and may be retrieved and modified.
* </ul>
* Application code does <em>not</em> need to explicitly release the resources
* managed by each instance when those instances are no longer required, and
* thus no <code>dispose()</code> method is provided.
*
* @see Font
* @see <a href="http://www.eclipse.org/swt/">Sample code and further
* information</a>
*/
public final class FontData {
/**
* Constructs a new uninitialized font data.
*/
public FontData() {
this("", 12, SWT.NORMAL);
}
/**
* Constructs a new FontData given a string representation in the form
* generated by the <code>FontData.toString</code> method.
* <p>
* Note that the representation varies between platforms, and a FontData can
* only be created from a string that was generated on the same platform.
* </p>
*
* @param string
* the string representation of a <code>FontData</code> (must not
* be null)
*
* @exception IllegalArgumentException
* <ul>
* <li>ERROR_NULL_ARGUMENT - if the argument is null</li>
* <li>ERROR_INVALID_ARGUMENT - if the argument does not
* represent a valid description</li>
* </ul>
*
* @see #toString
*/
public FontData(String string) {
// TODO
}
/**
* Constructs a new font data given a font name, the height of the desired
* font in points, and a font style.
*
* @param name
* the name of the font (must not be null)
* @param height
* the font height in points
* @param style
* a bit or combination of NORMAL, BOLD, ITALIC
*
* @exception IllegalArgumentException
* <ul>
* <li>ERROR_NULL_ARGUMENT - when the font name is null</li>
* <li>ERROR_INVALID_ARGUMENT - if the height is negative</li>
* </ul>
*/
public FontData(String name, int height, int style) {
setName(name);
setHeight(height);
setStyle(style);
}
/**
* Returns the height of the receiver in points.
*
* @return the height of this FontData
*
* @see #setHeight(int)
*/
public int getHeight() {
// TODO
return 0;
}
/**
* Returns the locale of the receiver.
* <p>
* The locale determines which platform character set this font is going to
* use. Widgets and graphics operations that use this font will convert
* UNICODE strings to the platform character set of the specified locale.
* </p>
* <p>
* On platforms where there are multiple character sets for a given
* language/country locale, the variant portion of the locale will determine
* the character set.
* </p>
*
* @return the <code>String</code> representing a Locale object
* @since 3.0
*/
public String getLocale() {
// TODO
return null;
}
/**
* Returns the name of the receiver. On platforms that support font
* foundries, the return value will be the foundry followed by a dash ("-")
* followed by the face name.
*
* @return the name of this <code>FontData</code>
*
* @see #setName
*/
public String getName() {
// TODO
return null;
}
/**
* Returns the style of the receiver which is a bitwise OR of one or more of
* the <code>SWT</code> constants NORMAL, BOLD and ITALIC.
*
* @return the style of this <code>FontData</code>
*
* @see #setStyle
*/
public int getStyle() {
// TODO
return 0;
}
/**
* Sets the height of the receiver. The parameter is specified in terms of
* points, where a point is one seventy-second of an inch.
*
* @param height
* the height of the <code>FontData</code>
*
* @exception IllegalArgumentException
* <ul>
* <li>ERROR_INVALID_ARGUMENT - if the height is negative</li>
* </ul>
*
* @see #getHeight
*/
public void setHeight(int height) {
// TODO
}
/**
* Sets the locale of the receiver.
* <p>
* The locale determines which platform character set this font is going to
* use. Widgets and graphics operations that use this font will convert
* UNICODE strings to the platform character set of the specified locale.
* </p>
* <p>
* On platforms where there are multiple character sets for a given
* language/country locale, the variant portion of the locale will determine
* the character set.
* </p>
*
* @param locale
* the <code>String</code> representing a Locale object
* @see java.util.Locale#toString
*/
public void setLocale(String locale) {
// TODO
}
/**
* Sets the name of the receiver.
* <p>
* Some platforms support font foundries. On these platforms, the name of
* the font specified in setName() may have one of the following forms:
* <ol>
* <li>a face name (for example, "courier")</li>
* <li>a foundry followed by a dash ("-") followed by a face name (for
* example, "adobe-courier")</li>
* </ol>
* In either case, the name returned from getName() will include the
* foundry.
* </p>
* <p>
* On platforms that do not support font foundries, only the face name (for
* example, "courier") is used in <code>setName()</code> and
* <code>getName()</code>.
* </p>
*
* @param name
* the name of the font data (must not be null)
* @exception IllegalArgumentException
* <ul>
* <li>ERROR_NULL_ARGUMENT - when the font name is null</li>
* </ul>
*
* @see #getName
*/
public void setName(String name) {
// TODO
}
/**
* Sets the style of the receiver to the argument which must be a bitwise OR
* of one or more of the <code>SWT</code> constants NORMAL, BOLD and ITALIC.
* All other style bits are ignored.
*
* @param style
* the new style for this <code>FontData</code>
*
* @see #getStyle
*/
public void setStyle(int style) {
// TODO
}
/**
* Returns a string representation of the receiver which is suitable for
* constructing an equivalent instance using the
* <code>FontData(String)</code> constructor.
*
* @return a string representation of the FontData
*
* @see FontData
*/
@Override
public String toString() {
// TODO
return null;
}
}