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 5 #ifndef ASH_SHELF_OVERFLOW_BUTTON_H_ 6 #define ASH_SHELF_OVERFLOW_BUTTON_H_ 7 8 #include "ash/shelf/shelf_types.h" 9 #include "base/basictypes.h" 10 #include "base/compiler_specific.h" 11 #include "ui/gfx/image/image_skia.h" 12 #include "ui/views/controls/button/custom_button.h" 13 14 namespace ash { 15 16 // Shelf overflow chevron button. 17 class OverflowButton : public views::CustomButton { 18 public: 19 explicit OverflowButton(views::ButtonListener* listener); 20 virtual ~OverflowButton(); 21 22 void OnShelfAlignmentChanged(); 23 24 private: 25 void PaintBackground(gfx::Canvas* canvas, int alpha); 26 27 // views::View overrides: 28 virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE; 29 30 // Left and right images are rotations of bottom_image and are 31 // owned by the overflow button. 32 gfx::ImageSkia left_image_; 33 gfx::ImageSkia right_image_; 34 // Bottom image is owned by the resource bundle. 35 const gfx::ImageSkia* bottom_image_; 36 37 DISALLOW_COPY_AND_ASSIGN(OverflowButton); 38 }; 39 40 } // namespace ash 41 42 #endif // ASH_SHELF_OVERFLOW_BUTTON_H_ 43