19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2006 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.text;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.graphics.Paint;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * TextPaint is an extension of Paint that leaves room for some extra
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * data used during text measuring and drawing.
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class TextPaint extends Paint {
26e6d368218918f911b1954296dab25bf84147b4c6Luca Zanolin
27dd8f5ed79c7baed35b3f04e4778aff7867653255Gilles Debunne    // Special value 0 means no background paint
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int bgColor;
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int baselineShift;
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int linkColor;
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int[] drawableState;
32a9f1dd021f8f6ee777bc4d27913bd40c42e753afEric Fischer    public float density = 1.0f;
33dd8f5ed79c7baed35b3f04e4778aff7867653255Gilles Debunne    /**
34dd8f5ed79c7baed35b3f04e4778aff7867653255Gilles Debunne     * Special value 0 means no custom underline
35dd8f5ed79c7baed35b3f04e4778aff7867653255Gilles Debunne     * @hide
36dd8f5ed79c7baed35b3f04e4778aff7867653255Gilles Debunne     */
37c9fd978da60f76c0576150c55629a034e1fa19fbGilles Debunne    public int underlineColor = 0;
38dd8f5ed79c7baed35b3f04e4778aff7867653255Gilles Debunne    /**
39dd8f5ed79c7baed35b3f04e4778aff7867653255Gilles Debunne     * Defined as a multiplier of the default underline thickness. Use 1.0f for default thickness.
40dd8f5ed79c7baed35b3f04e4778aff7867653255Gilles Debunne     * @hide
41dd8f5ed79c7baed35b3f04e4778aff7867653255Gilles Debunne     */
42c9fd978da60f76c0576150c55629a034e1fa19fbGilles Debunne    public float underlineThickness;
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public TextPaint() {
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super();
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public TextPaint(int flags) {
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super(flags);
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public TextPaint(Paint p) {
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super(p);
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Copy the fields from tp into this TextPaint, including the
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * fields inherited from Paint.
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void set(TextPaint tp) {
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super.set(tp);
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        bgColor = tp.bgColor;
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        baselineShift = tp.baselineShift;
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        linkColor = tp.linkColor;
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        drawableState = tp.drawableState;
67a9f1dd021f8f6ee777bc4d27913bd40c42e753afEric Fischer        density = tp.density;
68c9fd978da60f76c0576150c55629a034e1fa19fbGilles Debunne        underlineColor = tp.underlineColor;
69c9fd978da60f76c0576150c55629a034e1fa19fbGilles Debunne        underlineThickness = tp.underlineThickness;
70dd8f5ed79c7baed35b3f04e4778aff7867653255Gilles Debunne    }
71dd8f5ed79c7baed35b3f04e4778aff7867653255Gilles Debunne
72dd8f5ed79c7baed35b3f04e4778aff7867653255Gilles Debunne    /**
73dd8f5ed79c7baed35b3f04e4778aff7867653255Gilles Debunne     * Defines a custom underline for this Paint.
74dd8f5ed79c7baed35b3f04e4778aff7867653255Gilles Debunne     * @param color underline solid color
75e6d368218918f911b1954296dab25bf84147b4c6Luca Zanolin     * @param thickness underline thickness
76dd8f5ed79c7baed35b3f04e4778aff7867653255Gilles Debunne     * @hide
77dd8f5ed79c7baed35b3f04e4778aff7867653255Gilles Debunne     */
78e6d368218918f911b1954296dab25bf84147b4c6Luca Zanolin    public void setUnderlineText(int color, float thickness) {
79c9fd978da60f76c0576150c55629a034e1fa19fbGilles Debunne        underlineColor = color;
80c9fd978da60f76c0576150c55629a034e1fa19fbGilles Debunne        underlineThickness = thickness;
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
83