History

My first initial commit with all of mine experimental changes.

Dmitry Kabak (userdima committed 13 years ago

Commit d37b88d1 parent 3f5b46618352 files · +2598093 −-8690Browse files

Showing the changes to java/pkg/java/awt/font/MultipleMaster.java (1 of 18352 files). Show all

Unified · Split

java/pkg/java/awt/font/MultipleMaster.java+106−0
@@ -0,0 +1,106 @@
1+/*
2+ * Copyright (c) 1997, 1998, Oracle and/or its affiliates. All rights reserved.
3+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4+ *
5+ * This code is free software; you can redistribute it and/or modify it
6+ * under the terms of the GNU General Public License version 2 only, as
7+ * published by the Free Software Foundation. Oracle designates this
8+ * particular file as subject to the "Classpath" exception as provided
9+ * by Oracle in the LICENSE file that accompanied this code.
10+ *
11+ * This code is distributed in the hope that it will be useful, but WITHOUT
12+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14+ * version 2 for more details (a copy is included in the LICENSE file that
15+ * accompanied this code).
16+ *
17+ * You should have received a copy of the GNU General Public License version
18+ * 2 along with this work; if not, write to the Free Software Foundation,
19+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20+ *
21+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22+ * or visit www.oracle.com if you need additional information or have any
23+ * questions.
24+ */
25+package java.awt.font;
26+
27+import java.awt.Font;
28+
29+/**
30+ * The <code>MultipleMaster</code> interface represents Type 1
31+ * Multiple Master fonts.
32+ * A particular {@link Font} object can implement this interface.
33+ */
34+public interface MultipleMaster {
35+
36+ /**
37+ * Returns the number of multiple master design controls.
38+ * Design axes include things like width, weight and optical scaling.
39+ * @return the number of multiple master design controls
40+ */
41+ public int getNumDesignAxes();
42+
43+ /**
44+ * Returns an array of design limits interleaved in the form [from->to]
45+ * for each axis. For example,
46+ * design limits for weight could be from 0.1 to 1.0. The values are
47+ * returned in the same order returned by
48+ * <code>getDesignAxisNames</code>.
49+ * @return an array of design limits for each axis.
50+ */
51+ public float[] getDesignAxisRanges();
52+
53+ /**
54+ * Returns an array of default design values for each axis. For example,
55+ * the default value for weight could be 1.6. The values are returned
56+ * in the same order returned by <code>getDesignAxisNames</code>.
57+ * @return an array of default design values for each axis.
58+ */
59+ public float[] getDesignAxisDefaults();
60+
61+ /**
62+ * Returns the name for each design axis. This also determines the order in
63+ * which the values for each axis are returned.
64+ * @return an array containing the names of each design axis.
65+ */
66+ public String[] getDesignAxisNames();
67+
68+ /**
69+ * Creates a new instance of a multiple master font based on the design
70+ * axis values contained in the specified array. The size of the array
71+ * must correspond to the value returned from
72+ * <code>getNumDesignAxes</code> and the values of the array elements
73+ * must fall within limits specified by
74+ * <code>getDesignAxesLimits</code>. In case of an error,
75+ * <code>null</code> is returned.
76+ * @param axes an array containing axis values
77+ * @return a {@link Font} object that is an instance of
78+ * <code>MultipleMaster</code> and is based on the design axis values
79+ * provided by <code>axes</code>.
80+ */
81+ public Font deriveMMFont(float[] axes);
82+
83+ /**
84+ * Creates a new instance of a multiple master font based on detailed metric
85+ * information. In case of an error, <code>null</code> is returned.
86+ * @param glyphWidths an array of floats representing the desired width
87+ * of each glyph in font space
88+ * @param avgStemWidth the average stem width for the overall font in
89+ * font space
90+ * @param typicalCapHeight the height of a typical upper case char
91+ * @param typicalXHeight the height of a typical lower case char
92+ * @param italicAngle the angle at which the italics lean, in degrees
93+ * counterclockwise from vertical
94+ * @return a <code>Font</code> object that is an instance of
95+ * <code>MultipleMaster</code> and is based on the specified metric
96+ * information.
97+ */
98+ public Font deriveMMFont(
99+ float[] glyphWidths,
100+ float avgStemWidth,
101+ float typicalCapHeight,
102+ float typicalXHeight,
103+ float italicAngle);
104+
105+
106+}