summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/toolbar_view.cc
diff options
context:
space:
mode:
authorglen@chromium.org <glen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-09 01:07:42 +0000
committerglen@chromium.org <glen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-09 01:07:42 +0000
commit4a19063d1459a4c9c8c4c50ed86eb9048f69ea3f (patch)
tree69a1e9f78b3a5fa8b909cfab336826b09c44235f /chrome/browser/views/toolbar_view.cc
parent5085ee0b4bfbe4625e63ee6975bb95702e13e0aa (diff)
downloadchromium_src-4a19063d1459a4c9c8c4c50ed86eb9048f69ea3f.zip
chromium_src-4a19063d1459a4c9c8c4c50ed86eb9048f69ea3f.tar.gz
chromium_src-4a19063d1459a4c9c8c4c50ed86eb9048f69ea3f.tar.bz2
This is the first pass at themes.
This CL is paired with http://codereview.chromium.org/67284 This CL (for commit purposes) includes http://codereview.chromium.org/67284 BUG=4463,11232,11233,11234,11235 Review URL: http://codereview.chromium.org/99030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15704 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/toolbar_view.cc')
-rw-r--r--chrome/browser/views/toolbar_view.cc199
1 files changed, 114 insertions, 85 deletions
diff --git a/chrome/browser/views/toolbar_view.cc b/chrome/browser/views/toolbar_view.cc
index c3c98d2..333dcf4 100644
--- a/chrome/browser/views/toolbar_view.cc
+++ b/chrome/browser/views/toolbar_view.cc
@@ -23,6 +23,7 @@
#include "chrome/browser/profile.h"
#include "chrome/browser/tab_contents/navigation_controller.h"
#include "chrome/browser/tab_contents/navigation_entry.h"
+#include "chrome/browser/browser_theme_provider.h"
#include "chrome/browser/user_data_manager.h"
#include "chrome/browser/views/bookmark_menu_button.h"
#include "chrome/browser/views/dom_view.h"
@@ -138,86 +139,49 @@ void BrowserToolbarView::SetProfile(Profile* profile) {
}
void BrowserToolbarView::CreateLeftSideControls() {
- ResourceBundle &rb = ResourceBundle::GetSharedInstance();
-
back_ = new views::ButtonDropDown(this, back_menu_model_.get());
back_->set_triggerable_event_flags(views::Event::EF_LEFT_BUTTON_DOWN |
views::Event::EF_MIDDLE_BUTTON_DOWN);
back_->set_tag(IDC_BACK);
back_->SetImageAlignment(views::ImageButton::ALIGN_RIGHT,
views::ImageButton::ALIGN_TOP);
- back_->SetImage(views::CustomButton::BS_NORMAL, rb.GetBitmapNamed(IDR_BACK));
- back_->SetImage(views::CustomButton::BS_HOT, rb.GetBitmapNamed(IDR_BACK_H));
- back_->SetImage(views::CustomButton::BS_PUSHED,
- rb.GetBitmapNamed(IDR_BACK_P));
- back_->SetImage(views::CustomButton::BS_DISABLED,
- rb.GetBitmapNamed(IDR_BACK_D));
back_->SetTooltipText(l10n_util::GetString(IDS_TOOLTIP_BACK));
back_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_BACK));
back_->SetID(VIEW_ID_BACK_BUTTON);
- AddChildView(back_);
forward_ = new views::ButtonDropDown(this, forward_menu_model_.get());
forward_->set_triggerable_event_flags(views::Event::EF_LEFT_BUTTON_DOWN |
- views::Event::EF_MIDDLE_BUTTON_DOWN);
+ views::Event::EF_MIDDLE_BUTTON_DOWN);
forward_->set_tag(IDC_FORWARD);
- forward_->SetImage(views::CustomButton::BS_NORMAL,
- rb.GetBitmapNamed(IDR_FORWARD));
- forward_->SetImage(views::CustomButton::BS_HOT,
- rb.GetBitmapNamed(IDR_FORWARD_H));
- forward_->SetImage(views::CustomButton::BS_PUSHED,
- rb.GetBitmapNamed(IDR_FORWARD_P));
- forward_->SetImage(views::CustomButton::BS_DISABLED,
- rb.GetBitmapNamed(IDR_FORWARD_D));
forward_->SetTooltipText(l10n_util::GetString(IDS_TOOLTIP_FORWARD));
forward_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_FORWARD));
forward_->SetID(VIEW_ID_FORWARD_BUTTON);
- AddChildView(forward_);
reload_ = new views::ImageButton(this);
reload_->set_tag(IDC_RELOAD);
- reload_->SetImage(views::CustomButton::BS_NORMAL,
- rb.GetBitmapNamed(IDR_RELOAD));
- reload_->SetImage(views::CustomButton::BS_HOT,
- rb.GetBitmapNamed(IDR_RELOAD_H));
- reload_->SetImage(views::CustomButton::BS_PUSHED,
- rb.GetBitmapNamed(IDR_RELOAD_P));
reload_->SetTooltipText(l10n_util::GetString(IDS_TOOLTIP_RELOAD));
reload_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_RELOAD));
reload_->SetID(VIEW_ID_RELOAD_BUTTON);
- AddChildView(reload_);
home_ = new views::ImageButton(this);
home_->set_triggerable_event_flags(views::Event::EF_LEFT_BUTTON_DOWN |
views::Event::EF_MIDDLE_BUTTON_DOWN);
home_->set_tag(IDC_HOME);
- home_->SetImage(views::CustomButton::BS_NORMAL, rb.GetBitmapNamed(IDR_HOME));
- home_->SetImage(views::CustomButton::BS_HOT, rb.GetBitmapNamed(IDR_HOME_H));
- home_->SetImage(views::CustomButton::BS_PUSHED,
- rb.GetBitmapNamed(IDR_HOME_P));
home_->SetTooltipText(l10n_util::GetString(IDS_TOOLTIP_HOME));
home_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_HOME));
home_->SetID(VIEW_ID_HOME_BUTTON);
+
+ LoadLeftSideControlsImages();
+
+ AddChildView(back_);
+ AddChildView(forward_);
+ AddChildView(reload_);
AddChildView(home_);
}
void BrowserToolbarView::CreateCenterStack(Profile *profile) {
- ResourceBundle &rb = ResourceBundle::GetSharedInstance();
-
star_ = new ToolbarStarToggle(this, this);
star_->set_tag(IDC_STAR);
- star_->SetImage(views::CustomButton::BS_NORMAL, rb.GetBitmapNamed(IDR_STAR));
- star_->SetImage(views::CustomButton::BS_HOT, rb.GetBitmapNamed(IDR_STAR_H));
- star_->SetImage(views::CustomButton::BS_PUSHED,
- rb.GetBitmapNamed(IDR_STAR_P));
- star_->SetImage(views::CustomButton::BS_DISABLED,
- rb.GetBitmapNamed(IDR_STAR_D));
- star_->SetToggledImage(views::CustomButton::BS_NORMAL,
- rb.GetBitmapNamed(IDR_STARRED));
- star_->SetToggledImage(views::CustomButton::BS_HOT,
- rb.GetBitmapNamed(IDR_STARRED_H));
- star_->SetToggledImage(views::CustomButton::BS_PUSHED,
- rb.GetBitmapNamed(IDR_STARRED_P));
star_->SetDragController(this);
star_->SetTooltipText(l10n_util::GetString(IDS_TOOLTIP_STAR));
star_->SetToggledTooltipText(l10n_util::GetString(IDS_TOOLTIP_STARRED));
@@ -229,68 +193,37 @@ void BrowserToolbarView::CreateCenterStack(Profile *profile) {
model_, this,
display_mode_ == DISPLAYMODE_LOCATION,
this);
- AddChildView(location_bar_);
- location_bar_->Init();
// The Go button.
go_ = new GoButton(location_bar_, browser_);
- go_->SetImage(views::CustomButton::BS_NORMAL, rb.GetBitmapNamed(IDR_GO));
- go_->SetImage(views::CustomButton::BS_HOT, rb.GetBitmapNamed(IDR_GO_H));
- go_->SetImage(views::CustomButton::BS_PUSHED, rb.GetBitmapNamed(IDR_GO_P));
- go_->SetToggledImage(views::CustomButton::BS_NORMAL,
- rb.GetBitmapNamed(IDR_STOP));
- go_->SetToggledImage(views::CustomButton::BS_HOT,
- rb.GetBitmapNamed(IDR_STOP_H));
- go_->SetToggledImage(views::CustomButton::BS_PUSHED,
- rb.GetBitmapNamed(IDR_STOP_P));
go_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_GO));
go_->SetID(VIEW_ID_GO_BUTTON);
- AddChildView(go_);
-}
-
-void BrowserToolbarView::Update(TabContents* tab, bool should_restore_state) {
- tab_ = tab;
- if (!location_bar_)
- return;
+ LoadCenterStackImages();
- location_bar_->Update(should_restore_state ? tab : NULL);
-}
-
-void BrowserToolbarView::OnInputInProgress(bool in_progress) {
- // The edit should make sure we're only notified when something changes.
- DCHECK(model_->input_in_progress() != in_progress);
-
- model_->set_input_in_progress(in_progress);
- location_bar_->Update(NULL);
+ AddChildView(location_bar_);
+ location_bar_->Init();
+ AddChildView(go_);
}
void BrowserToolbarView::CreateRightSideControls(Profile* profile) {
- ResourceBundle &rb = ResourceBundle::GetSharedInstance();
+ ThemeProvider* tp = GetThemeProvider();
page_menu_ = new views::MenuButton(NULL, std::wstring(), this, false);
-
- // We use different menu button images if the locale is right-to-left.
- if (UILayoutIsRightToLeft())
- page_menu_->SetIcon(*rb.GetBitmapNamed(IDR_MENU_PAGE_RTL));
- else
- page_menu_->SetIcon(*rb.GetBitmapNamed(IDR_MENU_PAGE));
-
page_menu_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_PAGE));
page_menu_->SetTooltipText(l10n_util::GetString(IDS_PAGEMENU_TOOLTIP));
page_menu_->SetID(VIEW_ID_PAGE_MENU);
- AddChildView(page_menu_);
- app_menu_ = new views::MenuButton(NULL, std::wstring(), this, false);
- if (UILayoutIsRightToLeft())
- app_menu_->SetIcon(*rb.GetBitmapNamed(IDR_MENU_CHROME_RTL));
- else
- app_menu_->SetIcon(*rb.GetBitmapNamed(IDR_MENU_CHROME));
+ app_menu_ = new views::MenuButton(NULL, std::wstring(), this, false);
app_menu_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_APP));
app_menu_->SetTooltipText(l10n_util::GetStringF(IDS_APPMENU_TOOLTIP,
l10n_util::GetString(IDS_PRODUCT_NAME)));
app_menu_->SetID(VIEW_ID_APP_MENU);
+
+ LoadRightSideControlsImages();
+
+ AddChildView(page_menu_);
AddChildView(app_menu_);
if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kBookmarkMenu)) {
@@ -301,6 +234,96 @@ void BrowserToolbarView::CreateRightSideControls(Profile* profile) {
}
}
+void BrowserToolbarView::LoadLeftSideControlsImages() {
+ ThemeProvider* tp = GetThemeProvider();
+
+ back_->SetImage(views::CustomButton::BS_NORMAL, tp->GetBitmapNamed(IDR_BACK));
+ back_->SetImage(views::CustomButton::BS_HOT, tp->GetBitmapNamed(IDR_BACK_H));
+ back_->SetImage(views::CustomButton::BS_PUSHED,
+ tp->GetBitmapNamed(IDR_BACK_P));
+ back_->SetImage(views::CustomButton::BS_DISABLED,
+ tp->GetBitmapNamed(IDR_BACK_D));
+
+ forward_->SetImage(views::CustomButton::BS_NORMAL,
+ tp->GetBitmapNamed(IDR_FORWARD));
+ forward_->SetImage(views::CustomButton::BS_HOT,
+ tp->GetBitmapNamed(IDR_FORWARD_H));
+ forward_->SetImage(views::CustomButton::BS_PUSHED,
+ tp->GetBitmapNamed(IDR_FORWARD_P));
+ forward_->SetImage(views::CustomButton::BS_DISABLED,
+ tp->GetBitmapNamed(IDR_FORWARD_D));
+
+ reload_->SetImage(views::CustomButton::BS_NORMAL,
+ tp->GetBitmapNamed(IDR_RELOAD));
+ reload_->SetImage(views::CustomButton::BS_HOT,
+ tp->GetBitmapNamed(IDR_RELOAD_H));
+ reload_->SetImage(views::CustomButton::BS_PUSHED,
+ tp->GetBitmapNamed(IDR_RELOAD_P));
+
+ home_->SetImage(views::CustomButton::BS_NORMAL, tp->GetBitmapNamed(IDR_HOME));
+ home_->SetImage(views::CustomButton::BS_HOT, tp->GetBitmapNamed(IDR_HOME_H));
+ home_->SetImage(views::CustomButton::BS_PUSHED,
+ tp->GetBitmapNamed(IDR_HOME_P));
+}
+
+void BrowserToolbarView::LoadCenterStackImages() {
+ ThemeProvider* tp = GetThemeProvider();
+
+ star_->SetImage(views::CustomButton::BS_NORMAL, tp->GetBitmapNamed(IDR_STAR));
+ star_->SetImage(views::CustomButton::BS_HOT, tp->GetBitmapNamed(IDR_STAR_H));
+ star_->SetImage(views::CustomButton::BS_PUSHED,
+ tp->GetBitmapNamed(IDR_STAR_P));
+ star_->SetImage(views::CustomButton::BS_DISABLED,
+ tp->GetBitmapNamed(IDR_STAR_D));
+ star_->SetToggledImage(views::CustomButton::BS_NORMAL,
+ tp->GetBitmapNamed(IDR_STARRED));
+ star_->SetToggledImage(views::CustomButton::BS_HOT,
+ tp->GetBitmapNamed(IDR_STARRED_H));
+ star_->SetToggledImage(views::CustomButton::BS_PUSHED,
+ tp->GetBitmapNamed(IDR_STARRED_P));
+
+ go_->SetImage(views::CustomButton::BS_NORMAL, tp->GetBitmapNamed(IDR_GO));
+ go_->SetImage(views::CustomButton::BS_HOT, tp->GetBitmapNamed(IDR_GO_H));
+ go_->SetImage(views::CustomButton::BS_PUSHED, tp->GetBitmapNamed(IDR_GO_P));
+ go_->SetToggledImage(views::CustomButton::BS_NORMAL,
+ tp->GetBitmapNamed(IDR_STOP));
+ go_->SetToggledImage(views::CustomButton::BS_HOT,
+ tp->GetBitmapNamed(IDR_STOP_H));
+ go_->SetToggledImage(views::CustomButton::BS_PUSHED,
+ tp->GetBitmapNamed(IDR_STOP_P));
+}
+
+void BrowserToolbarView::LoadRightSideControlsImages() {
+ ThemeProvider* tp = GetThemeProvider();
+
+ // We use different menu button images if the locale is right-to-left.
+ if (UILayoutIsRightToLeft())
+ page_menu_->SetIcon(*tp->GetBitmapNamed(IDR_MENU_PAGE_RTL));
+ else
+ page_menu_->SetIcon(*tp->GetBitmapNamed(IDR_MENU_PAGE));
+ if (UILayoutIsRightToLeft())
+ app_menu_->SetIcon(*tp->GetBitmapNamed(IDR_MENU_CHROME_RTL));
+ else
+ app_menu_->SetIcon(*tp->GetBitmapNamed(IDR_MENU_CHROME));
+}
+
+void BrowserToolbarView::Update(TabContents* tab, bool should_restore_state) {
+ tab_ = tab;
+
+ if (!location_bar_)
+ return;
+
+ location_bar_->Update(should_restore_state ? tab : NULL);
+}
+
+void BrowserToolbarView::OnInputInProgress(bool in_progress) {
+ // The edit should make sure we're only notified when something changes.
+ DCHECK(model_->input_in_progress() != in_progress);
+
+ model_->set_input_in_progress(in_progress);
+ location_bar_->Update(NULL);
+}
+
void BrowserToolbarView::Layout() {
// If we have not been initialized yet just do nothing.
if (back_ == NULL)
@@ -758,6 +781,12 @@ void BrowserToolbarView::SetAccessibleName(const std::wstring& name) {
accessible_name_.assign(name);
}
+void BrowserToolbarView::ThemeChanged() {
+ LoadLeftSideControlsImages();
+ LoadCenterStackImages();
+ LoadRightSideControlsImages();
+}
+
int BrowserToolbarView::GetNextAccessibleViewIndex(int view_index,
bool nav_left) {
int modifier = 1;