1558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
2558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch// found in the LICENSE file.
4558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
5558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochpackage org.chromium.ui;
6558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochimport android.content.Context;
7558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochimport android.graphics.Canvas;
8558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochimport android.graphics.Color;
9558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochimport android.graphics.Paint;
10558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochimport android.graphics.Paint.Style;
11558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochimport android.util.AttributeSet;
12558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochimport android.widget.Button;
13558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
14558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch/**
15558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch * Simple class that draws a white border around a button, purely for a UI change.
16558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch */
17558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochpublic class ColorPickerMoreButton extends Button {
18558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
19558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    // A cache for the paint used to draw the border, so it doesn't have to be created in
20558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    // every onDraw() call.
21558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    private Paint mBorderPaint;
22558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
23558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    public ColorPickerMoreButton(Context context, AttributeSet attrs) {
24558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch        super(context, attrs);
25558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch        init();
26558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    }
27558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
28558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    public ColorPickerMoreButton(Context context, AttributeSet attrs, int defStyle) {
29558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch        super(context, attrs, defStyle);
30558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch        init();
31558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    }
32558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
33558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    /**
34558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch     * Sets up the paint to use for drawing the border.
35558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch     */
36558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    public void init() {
37558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch        mBorderPaint = new Paint();
38558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch        mBorderPaint.setStyle(Paint.Style.STROKE);
39558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch        mBorderPaint.setColor(Color.WHITE);
40558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch        // Set the width to one pixel.
41558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch        mBorderPaint.setStrokeWidth(1.0f);
42558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch        // And make sure the border doesn't bleed into the outside.
43558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch        mBorderPaint.setAntiAlias(false);
44558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    }
45558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
46558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    /**
47558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch     * Draws the border around the edge of the button.
48558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch     *
49558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch     * @param canvas The canvas to draw on.
50558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch     */
51558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    @Override
52558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    protected void onDraw(Canvas canvas) {
53558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch        canvas.drawRect(0.5f, 0.5f, getWidth() - 1.5f, getHeight() - 1.5f, mBorderPaint);
54558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch        super.onDraw(canvas);
55558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    }
56558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch}
57