// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_MESSAGE_CENTER_VIEWS_NOTIFICATION_BUTTON_H_ #define UI_MESSAGE_CENTER_VIEWS_NOTIFICATION_BUTTON_H_ #include "ui/gfx/image/image_skia.h" #include "ui/views/controls/button/custom_button.h" #include "ui/views/painter.h" #include "ui/views/view.h" namespace views { class ImageView; class Label; } namespace message_center { // NotificationButtons render the action buttons of notifications. class NotificationButton : public views::CustomButton { public: NotificationButton(views::ButtonListener* listener); virtual ~NotificationButton(); void SetIcon(const gfx::ImageSkia& icon); void SetTitle(const base::string16& title); // Overridden from views::View: virtual gfx::Size GetPreferredSize() const OVERRIDE; virtual int GetHeightForWidth(int width) const OVERRIDE; virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE; virtual void OnFocus() OVERRIDE; virtual void OnBlur() OVERRIDE; virtual void ViewHierarchyChanged( const ViewHierarchyChangedDetails& details) OVERRIDE; // Overridden from views::CustomButton: virtual void StateChanged() OVERRIDE; private: views::ImageView* icon_; views::Label* title_; scoped_ptr<views::Painter> focus_painter_; DISALLOW_COPY_AND_ASSIGN(NotificationButton); }; } // namespace message_center #endif // UI_MESSAGE_CENTER_VIEWS_NOTIFICATION_BUTTON_H_