summaryrefslogtreecommitdiffstats
path: root/awt/org/apache/harmony/awt/gl/font/LineMetricsImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'awt/org/apache/harmony/awt/gl/font/LineMetricsImpl.java')
-rw-r--r--awt/org/apache/harmony/awt/gl/font/LineMetricsImpl.java412
1 files changed, 0 insertions, 412 deletions
diff --git a/awt/org/apache/harmony/awt/gl/font/LineMetricsImpl.java b/awt/org/apache/harmony/awt/gl/font/LineMetricsImpl.java
deleted file mode 100644
index 370146d..0000000
--- a/awt/org/apache/harmony/awt/gl/font/LineMetricsImpl.java
+++ /dev/null
@@ -1,412 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * @author Ilya S. Okomin
- * @version $Revision$
- */
-package org.apache.harmony.awt.gl.font;
-
-import java.awt.font.LineMetrics;
-
-import org.apache.harmony.awt.internal.nls.Messages;
-
-/**
- *
- * LineMetrics implementation class.
- */
-
-public class LineMetricsImpl extends LineMetrics implements Cloneable{
-
- // array of baseline offsets
- float[] baselineOffsets;
-
- // the number of characters to measure
- int numChars;
-
- // baseline index of the font corresponding to this line metrics
- int baseLineIndex;
-
- // underline thickness
- float underlineThickness;
-
- // underline offset
- float underlineOffset;
-
- // strikethrough thickness
- float strikethroughThickness;
-
- // strikethrough offset
- float strikethroughOffset;
-
- // External leading
- float leading;
-
- // Height of the font ( == (ascent+descent+leading))
- float height;
-
- // Ascent of the font
- float ascent;
-
- // Descent of the font
- float descent;
-
- // Width of the widest char in the font
- float maxCharWidth;
-
- // underline thickness (in pixels)
- int lUnderlineThickness;
-
- // underline offset (in pixels)
- int lUnderlineOffset;
-
- // strikethrough thickness (in pixels)
- int lStrikethroughThickness;
-
- // strikethrough offset (in pixels)
- int lStrikethroughOffset;
-
- // External leading (in pixels)
- int lLeading;
-
- // Height of the font ( == (ascent+descent+leading)) (in pixels)
- int lHeight;
-
- // Ascent of the font (in pixels)
- int lAscent;
-
- // Descent of the font (in pixels)
- int lDescent;
-
- // Width of the widest char in the font (in pixels)
- int lMaxCharWidth;
-
- // units per EM square in font value
- int units_per_EM = 0;
-
- /**
- * Creates LineMetricsImpl object from specified parameters. If baseline data parameter
- * is null than {0, (-ascent+descent)/2, -ascent} values are used for baseline offsets.
- *
- * @param len a number of characters
- * @param metrics an array of 16 elements with metrics values that can be
- * initialized in native code.<p>
- * metrics[0] - ascent<p>
- * metrics[1] - descent<p>
- * metrics[2] - external leading<p>
- * metrics[3] - underline thickness<p>
- * -metrics[4] - underline offset<p>
- * metrics[5] - strikethrough thickness<p>
- * -metrics[6] - strikethrough offset<p>
- * metrics[7] - maximum char width<p>
- * metrics[8] - ascent in pixels<p>
- * metrics[9] - descent in pixles<p>
- * metrics[10] - external leading in pixels<p>
- * metrics[11] - underline thickness in pixels<p>
- * -metrics[12] - underline offset in pixels<p>
- * metrics[13] - strikethrough thickness in pixels<p>
- * -metrics[14] - strikethrough offset in pixels<p>
- * metrics[15] - maximum char width in pixels<p>
-
- * @param _baselineData an array of 3 elements with baseline offsets metrics<p>
- * _baselineData[0] - roman baseline offset<p>
- * _baselineData[1] - center baseline offset<p>
- * _baselineData[2] - hanging baseline offset<p>
- */
- public LineMetricsImpl(int len, float[] metrics, float[] _baselineData){
- numChars = len;
-
- ascent = metrics[0]; // Ascent of the font
- descent = metrics[1]; // Descent of the font
- leading = metrics[2]; // External leading
- height = metrics[0] + metrics[1] + metrics[2]; // Height of the font ( == (ascent + descent + leading))
- }
-
- /**
- * Creates LineMetricsImpl object from specified parameters. If baseline data parameter
- * is null than {0, (-ascent+descent)/2, -ascent} values are used for baseline offsets.
- *
- * @param _numChars number of chars
- * @param _baseLineIndex index of the baseline offset
- * @param _baselineOffsets an array of baseline offsets
- * @param _underlineThickness underline thickness
- * @param _underlineOffset underline offset
- * @param _strikethroughThickness strikethrough thickness
- * @param _strikethroughOffset strinkethrough offset
- * @param _leading leading of the font
- * @param _height font height
- * @param _ascent ascent of the font
- * @param _descent descent of the font
- * @param _maxCharWidth max char width
- */
- public LineMetricsImpl(int _numChars, int _baseLineIndex,
- float[] _baselineOffsets, float _underlineThickness,
- float _underlineOffset, float _strikethroughThickness,
- float _strikethroughOffset, float _leading, float _height,
- float _ascent, float _descent, float _maxCharWidth) {
-
- numChars = _numChars;
- baseLineIndex = _baseLineIndex;
- underlineThickness = _underlineThickness;
- underlineOffset = _underlineOffset;
- strikethroughThickness = _strikethroughThickness;
- strikethroughOffset = _strikethroughOffset;
- leading = _leading;
- height = _height;
- ascent = _ascent;
- descent = _descent;
- baselineOffsets = _baselineOffsets;
- lUnderlineThickness = (int) underlineThickness;
- lUnderlineOffset = (int) underlineOffset;
- lStrikethroughThickness = (int) strikethroughThickness;
- lStrikethroughOffset = (int) strikethroughOffset;
- lLeading = (int) leading;
- lHeight = (int) height;
- lAscent = (int) ascent;
- lDescent = (int) descent;
- maxCharWidth = _maxCharWidth;
- }
-
- public LineMetricsImpl(){
-
- }
-
- /**
- * All metrics are scaled according to scaleX and scaleY values.
- * This function helps to recompute metrics according to the scale factors
- * of desired AffineTransform.
- *
- * @param scaleX scale X factor
- * @param scaleY scale Y factor
- */
- public void scale(float scaleX, float scaleY){
- float absScaleX = Math.abs(scaleX);
- float absScaleY = Math.abs(scaleY);
-
- underlineThickness *= absScaleY;
- underlineOffset *= scaleY;
- strikethroughThickness *= absScaleY;
- strikethroughOffset *= scaleY;
- leading *= absScaleY;
- height *= absScaleY;
- ascent *= absScaleY;
- descent *= absScaleY;
-
- if(baselineOffsets == null) {
- getBaselineOffsets();
- }
-
- for (int i=0; i< baselineOffsets.length; i++){
- baselineOffsets[i] *= scaleY;
- }
-
- lUnderlineThickness *= absScaleY;
- lUnderlineOffset *= scaleY;
- lStrikethroughThickness *= absScaleY;
- lStrikethroughOffset *= scaleY;
- lLeading *= absScaleY;
- lHeight *= absScaleY;
- lAscent *= absScaleY;
- lDescent *= absScaleY;
- maxCharWidth *= absScaleX;
-
- }
-
-
- /**
- * Returns offset of the baseline.
- */
- @Override
- public float[] getBaselineOffsets() {
- // XXX: at the moment there only horizontal metrics are taken into
- // account. If there is no baseline information in TrueType font
- // file default values used: {0, -ascent, (-ascent+descent)/2}
-
- return baselineOffsets;
- }
-
- /**
- * Returns a number of chars in specified text
- */
- @Override
- public int getNumChars() {
- return numChars;
- }
-
- /**
- * Returns index of the baseline, one of predefined constants.
- */
- @Override
- public int getBaselineIndex() {
- // Baseline index is the deafult baseline index value
- // taken from the TrueType table "BASE".
- return baseLineIndex;
- }
-
- /**
- * Returns thickness of the Underline.
- */
- @Override
- public float getUnderlineThickness() {
- return underlineThickness;
- }
-
- /**
- * Returns offset of the Underline.
- */
- @Override
- public float getUnderlineOffset() {
- return underlineOffset;
- }
-
- /**
- * Returns thickness of the Strikethrough line.
- */
- @Override
- public float getStrikethroughThickness() {
- return strikethroughThickness;
- }
-
- /**
- * Returns offset of the Strikethrough line.
- */
- @Override
- public float getStrikethroughOffset() {
- return strikethroughOffset;
- }
-
- /**
- * Returns the leading.
- */
- @Override
- public float getLeading() {
- return leading;
- }
-
- /**
- * Returns the height of the font.
- */
- @Override
- public float getHeight() {
- //return height; // equals to (ascent + descent + leading);
- return ascent + descent + leading;
- }
-
- /**
- * Returns the descent.
- */
- @Override
- public float getDescent() {
- return descent;
- }
-
- /**
- * Returns the ascent.
- */
- @Override
- public float getAscent() {
- return ascent;
- }
-
- /**
- * Returns logical thickness of the Underline.
- */
- public int getLogicalUnderlineThickness() {
- return lUnderlineThickness;
- }
-
- /**
- * Returns logical offset of the Underline.
- */
- public int getLogicalUnderlineOffset() {
- return lUnderlineOffset;
- }
-
- /**
- * Returns logical thickness of the Strikethrough line.
- */
- public int getLogicalStrikethroughThickness() {
- return lStrikethroughThickness;
- }
-
- /**
- * Returns logical offset of the Strikethrough line.
- */
- public int getLogicalStrikethroughOffset() {
- return lStrikethroughOffset;
- }
-
- /**
- * Returns the logical leading.
- */
- public int getLogicalLeading() {
- return lLeading;
- }
-
- /**
- * Returns the logical height of the font.
- */
- public int getLogicalHeight() {
- return lHeight; // equals to (ascent + descent + leading);
- }
-
- /**
- * Returns the logical descent.
- */
- public int getLogicalDescent() {
- return lDescent;
- }
-
- /**
- * Returns the logical ascent.
- */
- public int getLogicalAscent() {
- return lAscent;
- }
-
- /**
- * Returns the logical size of the widest char.
- */
- public int getLogicalMaxCharWidth() {
- return lMaxCharWidth;
- }
-
- /**
- * Returns the size of the widest char.
- */
- public float getMaxCharWidth() {
- return maxCharWidth;
- }
-
- /**
- * Set num chars to the desired value.
- *
- * @param num specified number of chars
- */
- public void setNumChars(int num){
- numChars = num;
- }
-
- @Override
- public Object clone(){
- try{
- return super.clone();
- }catch (CloneNotSupportedException e){
- return null;
- }
- }
-
-} \ No newline at end of file