| Index: chrome/browser/views/toolbar_view.cc
|
| ===================================================================
|
| --- chrome/browser/views/toolbar_view.cc (revision 12533)
|
| +++ chrome/browser/views/toolbar_view.cc (working copy)
|
| @@ -66,6 +66,7 @@
|
| model_(browser->toolbar_model()),
|
| back_(NULL),
|
| forward_(NULL),
|
| + threedee_(NULL),
|
| reload_(NULL),
|
| home_(NULL),
|
| star_(NULL),
|
| @@ -84,9 +85,18 @@
|
| display_mode_ = DISPLAYMODE_NORMAL;
|
| else
|
| display_mode_ = DISPLAYMODE_LOCATION;
|
| +
|
| + NotificationService::current()->AddObserver(
|
| + this,
|
| + NOTIFY_THREEDEE_TOGGLED,
|
| + NotificationService::AllSources());
|
| }
|
|
|
| BrowserToolbarView::~BrowserToolbarView() {
|
| + NotificationService::current()->RemoveObserver(
|
| + this,
|
| + NOTIFY_THREEDEE_TOGGLED,
|
| + NotificationService::AllSources());
|
| }
|
|
|
| void BrowserToolbarView::Init(Profile* profile) {
|
| @@ -135,6 +145,19 @@
|
| AddChildView(forward_);
|
| controller_->AddManagedButton(forward_, IDC_FORWARD);
|
|
|
| + threedee_ = new views::ToggleButton();
|
| + threedee_->SetListener(this, IDC_THREEDEE);
|
| + threedee_->SetImage(views::BaseButton::BS_NORMAL,
|
| + rb.GetBitmapNamed(IDR_3D));
|
| + threedee_->SetImage(views::BaseButton::BS_HOT,
|
| + rb.GetBitmapNamed(IDR_3D_H));
|
| + threedee_->SetImage(views::BaseButton::BS_PUSHED,
|
| + rb.GetBitmapNamed(IDR_3D_P));
|
| + threedee_->SetToggledImage(views::BaseButton::BS_NORMAL,
|
| + rb.GetBitmapNamed(IDR_3D_C));
|
| + threedee_->SetID(VIEW_ID_3D_BUTTON);
|
| + AddChildView(threedee_);
|
| +
|
| reload_ = new views::Button();
|
| reload_->SetImage(views::Button::BS_NORMAL, rb.GetBitmapNamed(IDR_RELOAD));
|
| reload_->SetImage(views::Button::BS_HOT, rb.GetBitmapNamed(IDR_RELOAD_H));
|
| @@ -264,11 +287,22 @@
|
| forward_->SetBounds(back_->x() + back_->width(), kControlVertOffset,
|
| sz.width(), sz.height());
|
|
|
| - sz = reload_->GetPreferredSize();
|
| - reload_->SetBounds(forward_->x() + forward_->width() +
|
| - kControlHorizOffset,
|
| - kControlVertOffset, sz.width(), sz.height());
|
| + if (threedee_) {
|
| + sz = threedee_->GetPreferredSize();
|
| + threedee_->SetBounds(forward_->x() + forward_->width() + kControlHorizOffset,
|
| + kControlVertOffset, reload_->GetPreferredSize().width(),
|
| + sz.height());
|
|
|
| + reload_->SetBounds(threedee_->x() + threedee_->width() + kControlHorizOffset,
|
| + kControlVertOffset, reload_->GetPreferredSize().width(),
|
| + sz.height());
|
| + } else {
|
| + sz = reload_->GetPreferredSize();
|
| + reload_->SetBounds(forward_->x() + forward_->width() +
|
| + kControlHorizOffset,
|
| + kControlVertOffset, sz.width(), sz.height());
|
| + }
|
| +
|
| int offset = 0;
|
| if (show_home_button_.GetValue()) {
|
| sz = home_->GetPreferredSize();
|
| @@ -697,9 +731,27 @@
|
| Layout();
|
| SchedulePaint();
|
| }
|
| + } else if (type == NOTIFY_THREEDEE_TOGGLED) {
|
| + // Redraw the window when the user changes this setting.
|
| + threedee_->SetToggled(g_threedee_enabled);
|
| }
|
| }
|
|
|
| +void BrowserToolbarView::ButtonPressed(views::BaseButton* sender) {
|
| + if (sender->GetTag() == IDC_THREEDEE) {
|
| + g_threedee_enabled = !g_threedee_enabled;
|
| + // The toggle state of the button will get changed in our observer (to keep
|
| + // all toolbars in sync).
|
| +
|
| + NotificationService::current()->Notify(
|
| + NOTIFY_THREEDEE_TOGGLED,
|
| + NotificationService::AllSources(),
|
| + NotificationService::NoDetails());
|
| +
|
| + return;
|
| + }
|
| +}
|
| +
|
| bool BrowserToolbarView::GetAcceleratorInfo(int id,
|
| views::Accelerator* accel) {
|
| // The standard Ctrl-X, Ctrl-V and Ctrl-C are not defined as accelerators
|
|
|