Index: chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc |
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc |
index f9d00128f4a6a2be7c714291332c667413c50651..3a4d1f89550f02fcf5a8eca1c2ffe8c3ed60a5fa 100644 |
--- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc |
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc |
@@ -73,11 +73,8 @@ |
#include "ui/base/window_open_disposition.h" |
#include "ui/gfx/animation/slide_animation.h" |
#include "ui/gfx/canvas.h" |
-#include "ui/gfx/text_constants.h" |
#include "ui/gfx/text_elider.h" |
#include "ui/views/button_drag_utils.h" |
-#include "ui/views/controls/button/label_button.h" |
-#include "ui/views/controls/button/label_button_border.h" |
#include "ui/views/controls/button/menu_button.h" |
#include "ui/views/controls/label.h" |
#include "ui/views/drag_utils.h" |
@@ -93,7 +90,6 @@ |
using content::Referrer; |
using ui::DropTargetEvent; |
using views::CustomButton; |
-using views::LabelButtonBorder; |
using views::MenuButton; |
using views::View; |
@@ -141,13 +137,6 @@ |
// Tag for the 'Apps Shortcut' button. |
static const int kAppsShortcutButtonTag = 2; |
-// Preferred padding between text and edge. |
-// |
-// Note that the vertical padding is one pixel less than it was in TextButton; |
-// we clip the bottom of letters like 'g' or 'p' if we don't. |
-static const int kButtonPaddingHorizontal = 6; |
-static const int kButtonPaddingVertical = 4; |
- |
// Tag for the 'Managed bookmarks' button. |
static const int kManagedFolderButtonTag = 3; |
@@ -161,12 +150,11 @@ |
// Base class for text buttons used on the bookmark bar. |
-class BookmarkButtonBase : public views::LabelButton { |
+class BookmarkButtonBase : public views::TextButton { |
public: |
BookmarkButtonBase(views::ButtonListener* listener, |
const base::string16& title) |
- : LabelButton(listener, title) { |
- SetElideBehavior(gfx::FADE_TAIL); |
+ : TextButton(listener, title) { |
show_animation_.reset(new gfx::SlideAnimation(this)); |
if (!animations_enabled) { |
// For some reason during testing the events generated by animating |
@@ -183,16 +171,6 @@ |
event_utils::IsPossibleDispositionEvent(e); |
} |
- virtual scoped_ptr<LabelButtonBorder> CreateDefaultBorder() const OVERRIDE { |
- // We change the insets on the border to match the previous TextButton. |
- scoped_ptr<LabelButtonBorder> border = LabelButton::CreateDefaultBorder(); |
- border->set_insets(gfx::Insets(kButtonPaddingVertical, |
- kButtonPaddingHorizontal, |
- kButtonPaddingVertical, |
- kButtonPaddingHorizontal)); |
- return border.Pass(); |
- } |
- |
private: |
scoped_ptr<gfx::SlideAnimation> show_animation_; |
@@ -222,7 +200,7 @@ |
gfx::Point location(p); |
ConvertPointToScreen(this, &location); |
*tooltip = BookmarkBarView::CreateToolTipForURLAndTitle( |
- GetWidget(), location, url_, GetText(), profile_); |
+ GetWidget(), location, url_, text(), profile_); |
return !tooltip->empty(); |
} |
@@ -289,8 +267,8 @@ |
virtual bool GetTooltipText(const gfx::Point& p, |
base::string16* tooltip) const OVERRIDE { |
- if (label()->GetPreferredSize().width() > label()->size().width()) |
- *tooltip = GetText(); |
+ if (text_size_.width() > GetTextBounds().width()) |
+ *tooltip = text_; |
return !tooltip->empty(); |
} |
@@ -308,6 +286,10 @@ |
return false; |
} |
+ virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE { |
+ views::MenuButton::PaintButton(canvas, views::MenuButton::PB_NORMAL); |
+ } |
+ |
private: |
scoped_ptr<gfx::SlideAnimation> show_animation_; |
@@ -440,7 +422,7 @@ |
const int BookmarkBarView::kNewtabHorizontalPadding = 2; |
const int BookmarkBarView::kToolbarAttachedBookmarkBarOverlap = 3; |
-const gfx::ImageSkia& GetDefaultFavicon() { |
+static const gfx::ImageSkia& GetDefaultFavicon() { |
if (!kDefaultFavicon) { |
ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance(); |
kDefaultFavicon = rb->GetImageSkiaNamed(IDR_DEFAULT_FAVICON); |
@@ -448,7 +430,7 @@ |
return *kDefaultFavicon; |
} |
-const gfx::ImageSkia& GetFolderIcon() { |
+static const gfx::ImageSkia& GetFolderIcon() { |
if (!kFolderIcon) { |
ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance(); |
kFolderIcon = rb->GetImageSkiaNamed(IDR_BOOKMARK_BAR_FOLDER); |
@@ -1140,21 +1122,13 @@ |
for (int i = 0; i < GetBookmarkButtonCount(); ++i) { |
if (sender == GetBookmarkButton(i)) { |
- views::LabelButton* button = GetBookmarkButton(i); |
- const BookmarkNode* node = model_->bookmark_bar_node()->GetChild(i); |
- |
- const gfx::Image& image_from_model = model_->GetFavicon(node); |
- const gfx::ImageSkia& icon = image_from_model.IsEmpty() ? |
- (node->is_folder() ? GetFolderIcon() : GetDefaultFavicon()) : |
- *image_from_model.ToImageSkia(); |
- |
- button_drag_utils::SetDragImage( |
- node->url(), |
- node->GetTitle(), |
- icon, |
- &press_pt, |
- data, |
- button->GetWidget()); |
+ views::TextButton* button = GetBookmarkButton(i); |
+ scoped_ptr<gfx::Canvas> canvas( |
+ views::GetCanvasForDragImage(button->GetWidget(), button->size())); |
+ button->PaintButton(canvas.get(), views::TextButton::PB_FOR_DRAG); |
+ drag_utils::SetDragImageOnDataObject(*canvas, |
+ press_pt.OffsetFromOrigin(), |
+ data); |
WriteBookmarkDragData(model_->bookmark_bar_node()->GetChild(i), data); |
return; |
} |
@@ -1384,9 +1358,9 @@ |
return child_count() - 6; |
} |
-views::LabelButton* BookmarkBarView::GetBookmarkButton(int index) { |
+views::TextButton* BookmarkBarView::GetBookmarkButton(int index) { |
DCHECK(index >= 0 && index < GetBookmarkButtonCount()); |
- return static_cast<views::LabelButton*>(child_at(index)); |
+ return static_cast<views::TextButton*>(child_at(index)); |
} |
BookmarkLaunchLocation BookmarkBarView::GetBookmarkLaunchLocation() const { |
@@ -1408,7 +1382,7 @@ |
MenuButton* button = |
new BookmarkFolderButton(this, base::string16(), this, false); |
button->set_id(VIEW_ID_OTHER_BOOKMARKS); |
- button->SetImage(views::Button::STATE_NORMAL, GetFolderIcon()); |
+ button->SetIcon(GetFolderIcon()); |
button->set_context_menu_controller(this); |
button->set_tag(kOtherFolderButtonTag); |
return button; |
@@ -1421,7 +1395,7 @@ |
button->set_id(VIEW_ID_MANAGED_BOOKMARKS); |
// TODO(joaodasilva): replace with a "managed folder" icon. |
// http://crbug.com/49598 |
- button->SetImage(views::Button::STATE_NORMAL, GetFolderIcon()); |
+ button->SetIcon(GetFolderIcon()); |
button->set_context_menu_controller(this); |
button->set_tag(kManagedFolderButtonTag); |
return button; |
@@ -1430,8 +1404,7 @@ |
MenuButton* BookmarkBarView::CreateOverflowButton() { |
ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance(); |
MenuButton* button = new OverFlowButton(this); |
- button->SetImage(views::Button::STATE_NORMAL, |
- *rb->GetImageSkiaNamed(IDR_BOOKMARK_BAR_CHEVRONS)); |
+ button->SetIcon(*rb->GetImageSkiaNamed(IDR_BOOKMARK_BAR_CHEVRONS)); |
// The overflow button's image contains an arrow and therefore it is a |
// direction sensitive image and we need to flip it if the UI layout is |
@@ -1459,49 +1432,47 @@ |
} else { |
views::MenuButton* button = new BookmarkFolderButton( |
this, node->GetTitle(), this, false); |
- button->SetImage(views::Button::STATE_NORMAL, GetFolderIcon()); |
+ button->SetIcon(GetFolderIcon()); |
ConfigureButton(node, button); |
return button; |
} |
} |
-views::LabelButton* BookmarkBarView::CreateAppsPageShortcutButton() { |
- views::LabelButton* button = new ShortcutButton( |
+views::TextButton* BookmarkBarView::CreateAppsPageShortcutButton() { |
+ views::TextButton* button = new ShortcutButton( |
this, l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_APPS_SHORTCUT_NAME)); |
button->SetTooltipText(l10n_util::GetStringUTF16( |
IDS_BOOKMARK_BAR_APPS_SHORTCUT_TOOLTIP)); |
button->set_id(VIEW_ID_BOOKMARK_BAR_ELEMENT); |
ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance(); |
- button->SetImage(views::Button::STATE_NORMAL, |
- *rb->GetImageSkiaNamed(IDR_BOOKMARK_BAR_APPS_SHORTCUT)); |
+ button->SetIcon(*rb->GetImageSkiaNamed(IDR_BOOKMARK_BAR_APPS_SHORTCUT)); |
button->set_context_menu_controller(this); |
button->set_tag(kAppsShortcutButtonTag); |
return button; |
} |
void BookmarkBarView::ConfigureButton(const BookmarkNode* node, |
- views::LabelButton* button) { |
+ views::TextButton* button) { |
button->SetText(node->GetTitle()); |
button->SetAccessibleName(node->GetTitle()); |
button->set_id(VIEW_ID_BOOKMARK_BAR_ELEMENT); |
// We don't always have a theme provider (ui tests, for example). |
if (GetThemeProvider()) { |
- button->SetTextColor( |
- views::Button::STATE_NORMAL, |
- GetThemeProvider()->GetColor(ThemeProperties::COLOR_BOOKMARK_TEXT)); |
- } |
- |
- button->set_min_size(gfx::Size()); |
+ button->SetEnabledColor(GetThemeProvider()->GetColor( |
+ ThemeProperties::COLOR_BOOKMARK_TEXT)); |
+ } |
+ |
+ button->ClearMaxTextSize(); |
button->set_context_menu_controller(this); |
button->set_drag_controller(this); |
if (node->is_url()) { |
const gfx::Image& favicon = model_->GetFavicon(node); |
if (!favicon.IsEmpty()) |
- button->SetImage(views::Button::STATE_NORMAL, *favicon.ToImageSkia()); |
+ button->SetIcon(*favicon.ToImageSkia()); |
else |
- button->SetImage(views::Button::STATE_NORMAL, GetDefaultFavicon()); |
- } |
- button->set_max_size(gfx::Size(kMaxButtonWidth, 0)); |
+ button->SetIcon(GetDefaultFavicon()); |
+ } |
+ button->set_max_width(kMaxButtonWidth); |
} |
void BookmarkBarView::BookmarkNodeAddedImpl(BookmarkModel* model, |
@@ -1561,7 +1532,7 @@ |
} |
int index = model->bookmark_bar_node()->GetIndexOf(node); |
DCHECK_NE(-1, index); |
- views::LabelButton* button = GetBookmarkButton(index); |
+ views::TextButton* button = GetBookmarkButton(index); |
gfx::Size old_pref = button->GetPreferredSize(); |
ConfigureButton(node, button); |
gfx::Size new_pref = button->GetPreferredSize(); |
@@ -1656,7 +1627,7 @@ |
for (int i = 0; i < GetBookmarkButtonCount() && |
GetBookmarkButton(i)->visible() && !found; i++) { |
- views::LabelButton* button = GetBookmarkButton(i); |
+ views::TextButton* button = GetBookmarkButton(i); |
int button_x = mirrored_x - button->x(); |
int button_w = button->width(); |
if (button_x < button_w) { |
@@ -1795,14 +1766,14 @@ |
const ui::ThemeProvider* theme_provider = GetThemeProvider(); |
if (!theme_provider) |
return; |
- SkColor color = |
+ SkColor text_color = |
theme_provider->GetColor(ThemeProperties::COLOR_BOOKMARK_TEXT); |
for (int i = 0; i < GetBookmarkButtonCount(); ++i) |
- GetBookmarkButton(i)->SetTextColor(views::Button::STATE_NORMAL, color); |
- other_bookmarked_button_->SetTextColor(views::Button::STATE_NORMAL, color); |
- managed_bookmarks_button_->SetTextColor(views::Button::STATE_NORMAL, color); |
+ GetBookmarkButton(i)->SetEnabledColor(text_color); |
+ other_bookmarked_button_->SetEnabledColor(text_color); |
+ managed_bookmarks_button_->SetEnabledColor(text_color); |
if (apps_page_shortcut_->visible()) |
- apps_page_shortcut_->SetTextColor(views::Button::STATE_NORMAL, color); |
+ apps_page_shortcut_->SetEnabledColor(text_color); |
} |
void BookmarkBarView::UpdateButtonsVisibility() { |