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 |