/* * Copyright (C) 2006 The Android Open Source Project * * Licensed 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. */ package android.text.style; import android.graphics.Canvas; import android.graphics.Paint; import android.os.Parcel; import android.text.Layout; import android.text.ParcelableSpan; import android.text.Spanned; import android.text.TextUtils; public class BulletSpan implements LeadingMarginSpan, ParcelableSpan { private final int mGapWidth; private final boolean mWantColor; private final int mColor; private static final int BULLET_RADIUS = 3; public static final int STANDARD_GAP_WIDTH = 2; public BulletSpan() { mGapWidth = STANDARD_GAP_WIDTH; mWantColor = false; mColor = 0; } public BulletSpan(int gapWidth) { mGapWidth = gapWidth; mWantColor = false; mColor = 0; } public BulletSpan(int gapWidth, int color) { mGapWidth = gapWidth; mWantColor = true; mColor = color; } public BulletSpan(Parcel src) { mGapWidth = src.readInt(); mWantColor = src.readInt() != 0; mColor = src.readInt(); } public int getSpanTypeId() { return TextUtils.BULLET_SPAN; } public int describeContents() { return 0; } public void writeToParcel(Parcel dest, int flags) { dest.writeInt(mGapWidth); dest.writeInt(mWantColor ? 1 : 0); dest.writeInt(mColor); } public int getLeadingMargin(boolean first) { return 2 * BULLET_RADIUS + mGapWidth; } public void drawLeadingMargin(Canvas c, Paint p, int x, int dir, int top, int baseline, int bottom, CharSequence text, int start, int end, boolean first, Layout l) { } }