| Index: ui/aura_shell/launcher/tabbed_launcher_button.cc
|
| diff --git a/ui/aura_shell/launcher/tabbed_launcher_button.cc b/ui/aura_shell/launcher/tabbed_launcher_button.cc
|
| index f1a1e277c870e47a01f1f352148b2abbe3e5d2fa..aac9205d9f5761979c1379155abc8165288b9386 100644
|
| --- a/ui/aura_shell/launcher/tabbed_launcher_button.cc
|
| +++ b/ui/aura_shell/launcher/tabbed_launcher_button.cc
|
| @@ -32,23 +32,27 @@ const int kBgBottomInset = 12;
|
| const int kBgRightInset = 8;
|
|
|
| // static
|
| -SkBitmap* TabbedLauncherButton::bg_image_1_ = NULL;
|
| -SkBitmap* TabbedLauncherButton::bg_image_2_ = NULL;
|
| -SkBitmap* TabbedLauncherButton::bg_image_3_ = NULL;
|
| +TabbedLauncherButton::ImageSet* TabbedLauncherButton::bg_image_1_ = NULL;
|
| +TabbedLauncherButton::ImageSet* TabbedLauncherButton::bg_image_2_ = NULL;
|
| +TabbedLauncherButton::ImageSet* TabbedLauncherButton::bg_image_3_ = NULL;
|
|
|
| TabbedLauncherButton::TabbedLauncherButton(views::ButtonListener* listener,
|
| LauncherButtonHost* host)
|
| - : views::CustomButton(listener),
|
| + : views::ImageButton(listener),
|
| host_(host) {
|
| if (!bg_image_1_) {
|
| - ResourceBundle& rb = ResourceBundle::GetSharedInstance();
|
| - bg_image_1_ = new SkBitmap(
|
| - *rb.GetImageNamed(IDR_AURA_LAUNCHER_TABBED_BROWSER_1).ToSkBitmap());
|
| - bg_image_2_ = new SkBitmap(
|
| - *rb.GetImageNamed(IDR_AURA_LAUNCHER_TABBED_BROWSER_2).ToSkBitmap());
|
| - bg_image_3_ = new SkBitmap(
|
| - *rb.GetImageNamed(IDR_AURA_LAUNCHER_TABBED_BROWSER_3).ToSkBitmap());
|
| + bg_image_1_ = CreateImageSet(IDR_AURA_LAUNCHER_TABBED_BROWSER_1,
|
| + IDR_AURA_LAUNCHER_TABBED_BROWSER_1_PUSHED,
|
| + IDR_AURA_LAUNCHER_TABBED_BROWSER_1_HOT);
|
| + bg_image_2_ = CreateImageSet(IDR_AURA_LAUNCHER_TABBED_BROWSER_2,
|
| + IDR_AURA_LAUNCHER_TABBED_BROWSER_2_PUSHED,
|
| + IDR_AURA_LAUNCHER_TABBED_BROWSER_2_HOT);
|
| + bg_image_3_ = CreateImageSet(IDR_AURA_LAUNCHER_TABBED_BROWSER_3,
|
| + IDR_AURA_LAUNCHER_TABBED_BROWSER_3_PUSHED,
|
| + IDR_AURA_LAUNCHER_TABBED_BROWSER_3_HOT);
|
| }
|
| + SetImageAlignment(views::ImageButton::ALIGN_CENTER,
|
| + views::ImageButton::ALIGN_MIDDLE);
|
| }
|
|
|
| TabbedLauncherButton::~TabbedLauncherButton() {
|
| @@ -56,21 +60,20 @@ TabbedLauncherButton::~TabbedLauncherButton() {
|
|
|
| void TabbedLauncherButton::SetImages(const LauncherTabbedImages& images) {
|
| images_ = images;
|
| -}
|
| -
|
| -gfx::Size TabbedLauncherButton::GetPreferredSize() {
|
| - return gfx::Size(bg_image_1_->width(), bg_image_1_->height());
|
| -}
|
| -
|
| -void TabbedLauncherButton::OnPaint(gfx::Canvas* canvas) {
|
| - SkBitmap* bg_image = NULL;
|
| + ImageSet* set;
|
| if (images_.size() <= 1)
|
| - bg_image = bg_image_1_;
|
| + set = bg_image_1_;
|
| else if (images_.size() == 2)
|
| - bg_image = bg_image_2_;
|
| + set = bg_image_2_;
|
| else
|
| - bg_image = bg_image_3_;
|
| - canvas->DrawBitmapInt(*bg_image, 0, 0);
|
| + set = bg_image_3_;
|
| + SetImage(BS_NORMAL, set->normal_image);
|
| + SetImage(BS_HOT, set->hot_image);
|
| + SetImage(BS_PUSHED, set->pushed_image);
|
| +}
|
| +
|
| +void TabbedLauncherButton::OnPaint(gfx::Canvas* canvas) {
|
| + ImageButton::OnPaint(canvas);
|
|
|
| if (images_.empty())
|
| return;
|
| @@ -79,31 +82,44 @@ void TabbedLauncherButton::OnPaint(gfx::Canvas* canvas) {
|
| // TODO(sky): if we settle on just 1 icon, then we should simplify surrounding
|
| // code (don't use a vector of images).
|
| int x = (width() - images_[0].image.width()) / 2;
|
| - int y = (height() - images_[0].image.height()) / 2;
|
| + int y = (height() - images_[0].image.height()) / 2 + 1;
|
| canvas->DrawBitmapInt(images_[0].image, x, y);
|
| }
|
|
|
| bool TabbedLauncherButton::OnMousePressed(const views::MouseEvent& event) {
|
| - CustomButton::OnMousePressed(event);
|
| + ImageButton::OnMousePressed(event);
|
| host_->MousePressedOnButton(this, event);
|
| return true;
|
| }
|
|
|
| void TabbedLauncherButton::OnMouseReleased(const views::MouseEvent& event) {
|
| host_->MouseReleasedOnButton(this, false);
|
| - CustomButton::OnMouseReleased(event);
|
| + ImageButton::OnMouseReleased(event);
|
| }
|
|
|
| void TabbedLauncherButton::OnMouseCaptureLost() {
|
| host_->MouseReleasedOnButton(this, true);
|
| - CustomButton::OnMouseCaptureLost();
|
| + ImageButton::OnMouseCaptureLost();
|
| }
|
|
|
| bool TabbedLauncherButton::OnMouseDragged(const views::MouseEvent& event) {
|
| - CustomButton::OnMouseDragged(event);
|
| + ImageButton::OnMouseDragged(event);
|
| host_->MouseDraggedOnButton(this, event);
|
| return true;
|
| }
|
|
|
| +// static
|
| +TabbedLauncherButton::ImageSet* TabbedLauncherButton::CreateImageSet(
|
| + int normal_id,
|
| + int pushed_id,
|
| + int hot_id) {
|
| + ImageSet* set = new ImageSet;
|
| + ResourceBundle& rb = ResourceBundle::GetSharedInstance();
|
| + set->normal_image = new SkBitmap(*rb.GetImageNamed(normal_id).ToSkBitmap());
|
| + set->pushed_image = new SkBitmap(*rb.GetImageNamed(pushed_id).ToSkBitmap());
|
| + set->hot_image = new SkBitmap(*rb.GetImageNamed(hot_id).ToSkBitmap());
|
| + return set;
|
| +}
|
| +
|
| } // namespace internal
|
| } // namespace aura_shell
|
|
|