Font.java in  » Script » java2script » org » eclipse » swt » graphics » Java Source Code / Java Documentation 2Java Source Code and Java Documentation

Home
Java Source Code / Java Documentation 2
1.2D
2.3D
3.Ajax
4.Algebra
5.App Engine
6.Aspect
7.Assemble
8.Cache
9.Cassandra
10.Chat
11.Cloud
12.CMS
13.CouchDB
14.Crypt
15.Database
16.Distributed
17.Eclipse
18.Facebook
19.File
20.Forum
21.GAE
22.Game
23.Google tech
24.Graph
25.Graphic
26.GWT
27.Hibernate
28.HTML
29.HTTP
30.Image
31.IntelliJ
32.IRC
33.J2EE
34.J2ME
35.JDBC
36.JPA
37.JSON
38.JSR
39.JUnit
40.JVM
41.Language
42.Linux
43.Math
44.Maven
45.Media
46.Messenger
47.MiddleWare
48.Mobile
49.Mock
50.MongoDB
51.Mp3
52.Music
53.MVC
54.Network
55.OpenID
56.OSGi
57.Parse
58.Persist
59.Petri
60.Phone
61.Physics
62.REST
63.Robot
64.RPC
65.RSS
66.Ruby
67.Script
68.Search
69.Spring
70.SQL
71.SSH
72.Sudoku
73.Swing
74.Tapestry
75.Test
76.Text
77.Torrent
78.Twitter
79.UML
80.UnTagged
81.Utilities
82.Web
83.Wiki
84.XML
Java Source Code / Java Documentation 2 » Script » java2script » org.eclipse.swt.graphics 
Source Cross Referenced  Class Diagram Java Document (Java Doc) 


        /*******************************************************************************
         * Copyright (c) 2000, 2005 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;
        import org.eclipse.swt.SWTError;
        import org.eclipse.swt.SWTException;

        /**
         * Instances of this class manage operating system resources that
         * define how text looks when it is displayed. Fonts may be constructed
         * by providing a device and either name, size and style information
         * or a <code>FontData</code> object which encapsulates this data.
         * <p>
         * Application code must explicitly invoke the <code>Font.dispose()</code> 
         * method to release the operating system resources managed by each instance
         * when those instances are no longer required.
         * </p>
         *
         * @see FontData
         */

        public final class Font extends Resource {

            /**
             * the handle to the OS font resource
             * (Warning: This field is platform dependent)
             * <p>
             * <b>IMPORTANT:</b> This field is <em>not</em> part of the SWT
             * public API. It is marked public only so that it can be shared
             * within the packages provided by SWT. It is not available on all
             * platforms and should never be accessed from application code.
             * </p>
             */
            //public int handle;
            public FontData data;

            /**
             * Prevents uninitialized instances from being created outside the package.
             */
            Font() {
            }

            /**	 
             * Constructs a new font given a device and font data
             * which describes the desired font's appearance.
             * <p>
             * You must dispose the font when it is no longer required. 
             * </p>
             *
             * @param device the device to create the font on
             * @param fd the FontData that describes the desired font (must not be null)
             * 
             * @exception IllegalArgumentException <ul>
             *    <li>ERROR_NULL_ARGUMENT - if device is null and there is no current device</li>
             *    <li>ERROR_NULL_ARGUMENT - if the fd argument is null</li>
             * </ul>
             * @exception SWTError <ul>
             *    <li>ERROR_NO_HANDLES - if a font could not be created from the given font data</li>
             * </ul>
             */
            public Font(Device device, FontData fd) {
                if (device == null)
                    device = Device.getDevice();
                if (device == null)
                    SWT.error(SWT.ERROR_NULL_ARGUMENT);
                init(device, fd);
                //	if (device.tracking) device.new_Object(this);	
            }

            /**	 
             * Constructs a new font given a device and an array
             * of font data which describes the desired font's
             * appearance.
             * <p>
             * You must dispose the font when it is no longer required. 
             * </p>
             *
             * @param device the device to create the font on
             * @param fds the array of FontData that describes the desired font (must not be null)
             * 
             * @exception IllegalArgumentException <ul>
             *    <li>ERROR_NULL_ARGUMENT - if device is null and there is no current device</li>
             *    <li>ERROR_NULL_ARGUMENT - if the fds argument is null</li>
             *    <li>ERROR_INVALID_ARGUMENT - if the length of fds is zero</li>
             *    <li>ERROR_NULL_ARGUMENT - if any fd in the array is null</li>
             * </ul>
             * @exception SWTError <ul>
             *    <li>ERROR_NO_HANDLES - if a font could not be created from the given font data</li>
             * </ul>
             * 
             * @since 2.1
             */
            public Font(Device device, FontData[] fds) {
                if (device == null)
                    device = Device.getDevice();
                if (device == null)
                    SWT.error(SWT.ERROR_NULL_ARGUMENT);
                if (fds == null)
                    SWT.error(SWT.ERROR_NULL_ARGUMENT);
                if (fds.length == 0)
                    SWT.error(SWT.ERROR_INVALID_ARGUMENT);
                for (int i = 0; i < fds.length; i++) {
                    if (fds[i] == null)
                        SWT.error(SWT.ERROR_INVALID_ARGUMENT);
                }
                init(device, fds[0]);
                //if (device.tracking) device.new_Object(this);	
            }

            /**	 
             * Constructs a new font given a device, a font name,
             * the height of the desired font in points, and a font
             * style.
             * <p>
             * You must dispose the font when it is no longer required. 
             * </p>
             *
             * @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 <ul>
             *    <li>ERROR_NULL_ARGUMENT - if device is null and there is no current device</li>
             *    <li>ERROR_NULL_ARGUMENT - if the name argument is null</li>
             *    <li>ERROR_INVALID_ARGUMENT - if the height is negative</li>
             * </ul>
             * @exception SWTError <ul>
             *    <li>ERROR_NO_HANDLES - if a font could not be created from the given arguments</li>
             * </ul>
             */
            public Font(Device device, String name, int height, int style) {
                if (device == null)
                    device = Device.getDevice();
                if (device == null)
                    SWT.error(SWT.ERROR_NULL_ARGUMENT);
                if (name == null)
                    SWT.error(SWT.ERROR_NULL_ARGUMENT);
                init(device, new FontData(name, height, style));
                //	if (device.tracking) device.new_Object(this);	
            }

            /**
             * Disposes of the operating system resources associated with
             * the font. Applications must dispose of all fonts which
             * they allocate.
             */
            public void dispose() {
                data = null;
                /*
                if (handle == 0) return;
                if (device.isDisposed()) return;
                OS.DeleteObject(handle);
                handle = 0;
                if (device.tracking) device.dispose_Object(this);
                 */
                device = null;
            }

            /**
             * Compares the argument to the receiver, and returns true
             * if they represent the <em>same</em> object using a class
             * specific comparison.
             *
             * @param object the object to compare with this object
             * @return <code>true</code> if the object is the same as this object and <code>false</code> otherwise
             *
             * @see #hashCode
             */
            public boolean equals(Object object) {
                if (object == this )
                    return true;
                if (!(object instanceof  Font))
                    return false;
                Font font = (Font) object;
                return /*device == font.device && */font.data.equals(data);
            }

            /**
             * Returns an array of <code>FontData</code>s representing the receiver.
             * On Windows, only one FontData will be returned per font. On X however, 
             * a <code>Font</code> object <em>may</em> be composed of multiple X 
             * fonts. To support this case, we return an array of font data objects.
             *
             * @return an array of font data objects describing the receiver
             *
             * @exception SWTException <ul>
             *    <li>ERROR_GRAPHIC_DISPOSED - if the receiver has been disposed</li>
             * </ul>
             */
            public FontData[] getFontData() {
                if (isDisposed())
                    SWT.error(SWT.ERROR_GRAPHIC_DISPOSED);
                //	LOGFONT logFont = OS.IsUnicode ? (LOGFONT)new LOGFONTW() : new LOGFONTA();
                //	OS.GetObject(handle, LOGFONT.sizeof, logFont);
                //	return new FontData[] {FontData.win32_new(logFont, device.computePoints(logFont, handle))};
                //return null;
                FontData[] datum = new FontData[1];
                datum[0] = data;
                //return new FontData[] { data };
                return datum;
            }

            /**
             * Returns an integer hash code for the receiver. Any two 
             * objects that return <code>true</code> when passed to 
             * <code>equals</code> must return the same value for this
             * method.
             *
             * @return the receiver's hash
             *
             * @see #equals
             */
            public int hashCode() {
                return data.hashCode();
            }

            void init(Device device, FontData fd) {
                data = fd;
                if (fd == null)
                    SWT.error(SWT.ERROR_NULL_ARGUMENT);
                this .device = device;
                /*
                LOGFONT logFont = fd.data;
                int lfHeight = logFont.lfHeight;
                logFont.lfHeight = device.computePixels(fd.height);
                handle = OS.CreateFontIndirect(logFont);
                logFont.lfHeight = lfHeight;
                if (handle == 0) SWT.error(SWT.ERROR_NO_HANDLES);
                 */
            }

            /**
             * Returns <code>true</code> if the font has been disposed,
             * and <code>false</code> otherwise.
             * <p>
             * This method gets the dispose state for the font.
             * When a font has been disposed, it is an error to
             * invoke any other method using the font.
             *
             * @return <code>true</code> when the font is disposed and <code>false</code> otherwise
             */
            public boolean isDisposed() {
                //	return false;
                return data == null;
            }

            /**
             * Returns a string containing a concise, human-readable
             * description of the receiver.
             *
             * @return a string representation of the receiver
             */
            public String toString() {
                if (isDisposed())
                    return "Font {*DISPOSED*}";
                return "Font {" + data + "}";
            }

            /*
             /**	 
             * Invokes platform specific functionality to allocate a new font.
             * <p>
             * <b>IMPORTANT:</b> This method is <em>not</em> part of the public
             * API for <code>Font</code>. It is marked public only so that it
             * can be shared within the packages provided by SWT. It is not
             * available on all platforms, and should never be called from
             * application code.
             * </p>
             *
             * @param device the device on which to allocate the color
             * @param handle the handle for the font
             * @return a new font object containing the specified device and handle
             *-/
             public static Font win32_new(Device device, int handle) {
             if (device == null) device = Device.getDevice();
             Font font = new Font();
             //font.handle = handle;
             font.device = device;
             return font;
             }
             */
        }
ww__w___._ja_v_a__2__s___.___com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.