1424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#ifndef ASH_SHELF_OVERFLOW_BUTTON_H_
6424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#define ASH_SHELF_OVERFLOW_BUTTON_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ash/shelf/shelf_types.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h"
11ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#include "ui/gfx/image/image_skia.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/views/controls/button/custom_button.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ash {
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Shelf overflow chevron button.
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class OverflowButton : public views::CustomButton {
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  explicit OverflowButton(views::ButtonListener* listener);
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual ~OverflowButton();
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  void OnShelfAlignmentChanged();
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void PaintBackground(gfx::Canvas* canvas, int alpha);
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // views::View overrides:
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE;
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
30ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  // Left and right images are rotations of bottom_image and are
31ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  // owned by the overflow button.
32ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  gfx::ImageSkia left_image_;
33ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  gfx::ImageSkia right_image_;
34ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  // Bottom image is owned by the resource bundle.
35ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  const gfx::ImageSkia* bottom_image_;
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(OverflowButton);
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace ash
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#endif  // ASH_SHELF_OVERFLOW_BUTTON_H_
43