if ( iOS == WINDOWS ) { final FontData fda = new FontData( fd.getName( ), (int) Math.round( ( fd.getSize( ) ) * dScale ), iStyle );  try {   Field data = FontData.class.getField( "data" ); Object fieldInstance = data.get( fda ); Class LOGFONTClass = data.getType( ); if ( fd.isStrikethrough( ) ) { Field strikeOut = LOGFONTClass.getField( "lfStrikeOut" ); strikeOut.setByte( fieldInstance, (byte) 1 ); } if ( fd.isUnderline( ) ) { Field underline = LOGFONTClass.getField( "lfUnderline" ); underline.setByte( fieldInstance, (byte) 1 ); } Field quality = LOGFONTClass.getField( "lfQuality" ); quality.setByte( fieldInstance, (byte) 1 );  } catch ( Exception e ) { e.printStackTrace( ); }       return new Font( _d, fda ); } else  { return new Font( _d, fd.getName( ), Math.round( ( fd.getSize( ) ) ), iStyle ); }
return new Font( _d, fd.getName( ), (int) Math.round( ( fd.getSize( ) ) * dScale ), iStyle );
	public Object createFont( FontDefinition fd )	{		int iStyle = 0;		if ( fd.isBold( ) )		{			iStyle |= SWT.BOLD;		}		if ( fd.isItalic( ) )		{			iStyle |= SWT.ITALIC;		}		// OS SPECIFIC STUFF GOES HERE		if ( iOS == WINDOWS )		{			final FontData fda = new FontData( fd.getName( ),					(int) Math.round( ( fd.getSize( ) ) * dScale ),					iStyle );			try			{				// This must be done using reflection as the data field is only				// available on Windows				Field data = FontData.class.getField( "data" ); //$NON-NLS-1$				Object fieldInstance = data.get( fda );				Class LOGFONTClass = data.getType( );				if ( fd.isStrikethrough( ) )				{					Field strikeOut = LOGFONTClass.getField( "lfStrikeOut" ); //$NON-NLS-1$					strikeOut.setByte( fieldInstance, (byte) 1 );				}				if ( fd.isUnderline( ) )				{					Field underline = LOGFONTClass.getField( "lfUnderline" ); //$NON-NLS-1$					underline.setByte( fieldInstance, (byte) 1 );				}				Field quality = LOGFONTClass.getField( "lfQuality" ); //$NON-NLS-1$				quality.setByte( fieldInstance, (byte) 1 );// ANTIALIASED_QUALITY			}			catch ( Exception e )			{				e.printStackTrace( );			}			// IMPROVEMENTS PROVIDED IN ECLIPSE 3.1 M5			/*			 * org.eclipse.swt.internal.win32.LOGFONT lf = fda.data;			 * 			 * lf.lfQuality = 4; // ANTIALIASED_QUALITY if			 * (fd.isStrikethrough()) { lf.lfStrikeOut = 1; } if			 * (fd.isUnderline()) { lf.lfUnderline = 1; }			 */			// CAN'T DO THIS BECAUSE ROTATED TEXT GETS INTERNALLY CLIPPED IN SWT			// lf.lfOrientation = (int) (fd.getRotation() * 10);			// lf.lfEscapement = (int) (fd.getRotation() * 10);			return new Font( _d, fda );		}		else		// OTHER CASES		{			return new Font( _d,					fd.getName( ),					Math.round( ( fd.getSize( ) ) ),					iStyle );		}	}