1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5package org.chromium.ui;
6import android.content.Context;
7import android.graphics.Canvas;
8import android.graphics.Color;
9import android.graphics.Paint;
10import android.graphics.Paint.Style;
11import android.util.AttributeSet;
12import android.widget.Button;
13
14/**
15 * Simple class that draws a white border around a button, purely for a UI change.
16 */
17public class ColorPickerMoreButton extends Button {
18
19    // A cache for the paint used to draw the border, so it doesn't have to be created in
20    // every onDraw() call.
21    private Paint mBorderPaint;
22
23    public ColorPickerMoreButton(Context context, AttributeSet attrs) {
24        super(context, attrs);
25        init();
26    }
27
28    public ColorPickerMoreButton(Context context, AttributeSet attrs, int defStyle) {
29        super(context, attrs, defStyle);
30        init();
31    }
32
33    /**
34     * Sets up the paint to use for drawing the border.
35     */
36    public void init() {
37        mBorderPaint = new Paint();
38        mBorderPaint.setStyle(Paint.Style.STROKE);
39        mBorderPaint.setColor(Color.WHITE);
40        // Set the width to one pixel.
41        mBorderPaint.setStrokeWidth(1.0f);
42        // And make sure the border doesn't bleed into the outside.
43        mBorderPaint.setAntiAlias(false);
44    }
45
46    /**
47     * Draws the border around the edge of the button.
48     *
49     * @param canvas The canvas to draw on.
50     */
51    @Override
52    protected void onDraw(Canvas canvas) {
53        canvas.drawRect(0.5f, 0.5f, getWidth() - 1.5f, getHeight() - 1.5f, mBorderPaint);
54        super.onDraw(canvas);
55    }
56}
57