All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.swt.graphics.Font Maven / Gradle / Ivy

Go to download

The Rich Ajax Platform lets you build rich, Ajax-enabled Web applications.

There is a newer version: 3.29.0
Show newest version
/*******************************************************************************
 * Copyright (c) 2002, 2013 Innoopract Informationssysteme GmbH 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:
 *    Innoopract Informationssysteme GmbH - initial API and implementation
 *    EclipseSource - ongoing development
 ******************************************************************************/
package org.eclipse.swt.graphics;

import static org.eclipse.rap.rwt.internal.service.ContextProvider.getApplicationContext;

import org.eclipse.swt.SWT;
import org.eclipse.swt.SWTError;
import org.eclipse.swt.SWTException;


/**
 * Instances of this class manage resources that define how text looks when it
 * is displayed.
 *
 * @see FontData
 * @since 1.0
 */
public final class Font extends Resource {

  private final FontData internalFontData;

  // used by ResourceFactory#getFont()
  private Font( FontData fontData ) {
    super( null );
    internalFontData = findFontData( fontData );
  }

  /**
   * Constructs a new font given a device and font data
   * which describes the desired font's appearance.
   * 

* You must dispose the font when it is no longer required. *

* * @param device the device to create the font on * @param fontData the FontData that describes the desired font (must not be null) * * @exception IllegalArgumentException
    *
  • ERROR_NULL_ARGUMENT - if device is null and there is no current device
  • *
  • ERROR_NULL_ARGUMENT - if the fontData argument is null
  • *
* @exception SWTError
    *
  • ERROR_NO_HANDLES - if a font could not be created from the given font data
  • *
* * @since 1.3 */ public Font( Device device, FontData fontData ) { super( checkDevice( device ) ); if( fontData == null ) { SWT.error( SWT.ERROR_NULL_ARGUMENT ); } internalFontData = findFontData( fontData ); } /** * Constructs a new font given a device and an array * of font data which describes the desired font's * appearance. *

* You must dispose the font when it is no longer required. *

* * @param device the device to create the font on * @param fontData the array of FontData that describes the desired font (must not be null) * * @exception IllegalArgumentException
    *
  • ERROR_NULL_ARGUMENT - if device is null and there is no current device
  • *
  • ERROR_NULL_ARGUMENT - if the fontData argument is null
  • *
  • ERROR_INVALID_ARGUMENT - if the length of fontData is zero
  • *
  • ERROR_NULL_ARGUMENT - if any font data in the array is null
  • *
* @exception SWTError
    *
  • ERROR_NO_HANDLES - if a font could not be created from the given font data
  • *
* * @since 1.3 */ public Font( Device device, FontData[] fontData ) { super( checkDevice( device ) ); if( fontData == null ) { SWT.error( SWT.ERROR_NULL_ARGUMENT ); } if( fontData.length == 0 ) { SWT.error( SWT.ERROR_INVALID_ARGUMENT ); } for( int i = 0; i < fontData.length; i++ ) { if( fontData[ i ] == null ) { SWT.error( SWT.ERROR_INVALID_ARGUMENT ); } } internalFontData = findFontData( fontData[ 0 ] ); } /** * Constructs a new font given a device, a font name, * the height of the desired font in points, and a font * style. *

* You must dispose the font when it is no longer required. *

* * @param device the device to create the font on * @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
    *
  • ERROR_NULL_ARGUMENT - if device is null and there is no current device
  • *
  • ERROR_NULL_ARGUMENT - if the name argument is null
  • *
  • ERROR_INVALID_ARGUMENT - if the height is negative
  • *
* @exception SWTError
    *
  • ERROR_NO_HANDLES - if a font could not be created from the given arguments
  • *
*/ public Font( Device device, String name, int height, int style ) { super( checkDevice( device ) ); if( name == null ) { SWT.error( SWT.ERROR_NULL_ARGUMENT ); } if( height < 0 ) { SWT.error( SWT.ERROR_INVALID_ARGUMENT ); } FontData fontData = new FontData( name, height, style ); internalFontData = findFontData( fontData ); } /** * Returns an array of FontDatas representing the receiver. * * * @return an array of font data objects describing the receiver * * @exception SWTException
    *
  • ERROR_GRAPHIC_DISPOSED - if the receiver has been disposed
  • *
*/ public FontData[] getFontData() { if( isDisposed() ) { SWT.error( SWT.ERROR_GRAPHIC_DISPOSED ); } FontData fontData = new FontData( internalFontData.getName(), internalFontData.getHeight(), internalFontData.getStyle() ); return new FontData[] { fontData }; } @Override public boolean equals( Object object ) { boolean result; if( object == this ) { result = true; } else if( object instanceof Font ) { Font font = ( Font )object; result = font.internalFontData.equals( internalFontData ); } else { result = false; } return result; } @Override public int hashCode() { return internalFontData.hashCode() * 7; } /** * Returns a string containing a concise, human-readable * description of the receiver. * * @return a string representation of the receiver */ @Override public String toString() { StringBuilder buffer = new StringBuilder(); buffer.append( "Font {" ); buffer.append( internalFontData.getName() ); buffer.append( "," ); buffer.append( internalFontData.getHeight() ); buffer.append( "," ); int style = internalFontData.getStyle(); String styleName; if( ( style & SWT.BOLD ) != 0 && ( style & SWT.ITALIC ) != 0 ) { styleName = "BOLD|ITALIC"; } else if( ( style & SWT.BOLD ) != 0 ) { styleName = "BOLD"; } else if( ( style & SWT.ITALIC ) != 0 ) { styleName = "ITALIC"; } else { styleName = "NORMAL"; } buffer.append( styleName ); buffer.append( "}" ); return buffer.toString(); } private static FontData findFontData( FontData fontData ) { return getApplicationContext().getFontDataFactory().findFontData( fontData ); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy