Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(502)

Side by Side Diff: chrome/browser/ui/views/browser_action_view.cc

Issue 10703090: Turn pageAction.show -> browserAction.sensibleThing. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: views (incomplete) Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/ui/views/browser_action_view.h ('k') | chrome/chrome_common.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/views/browser_action_view.h" 5 #include "chrome/browser/ui/views/browser_action_view.h"
6 6
7 #include "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
8 #include "chrome/browser/extensions/api/commands/command_service.h" 8 #include "chrome/browser/extensions/api/commands/command_service.h"
9 #include "chrome/browser/extensions/api/commands/command_service_factory.h" 9 #include "chrome/browser/extensions/api/commands/command_service_factory.h"
10 #include "chrome/browser/extensions/extension_context_menu_model.h" 10 #include "chrome/browser/extensions/extension_context_menu_model.h"
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 keybinding_.reset(new ui::Accelerator( 93 keybinding_.reset(new ui::Accelerator(
94 browser_action_command.accelerator())); 94 browser_action_command.accelerator()));
95 panel_->GetFocusManager()->RegisterAccelerator( 95 panel_->GetFocusManager()->RegisterAccelerator(
96 *keybinding_.get(), ui::AcceleratorManager::kHighPriority, this); 96 *keybinding_.get(), ui::AcceleratorManager::kHighPriority, this);
97 } 97 }
98 } 98 }
99 99
100 MenuButton::ViewHierarchyChanged(is_add, parent, child); 100 MenuButton::ViewHierarchyChanged(is_add, parent, child);
101 } 101 }
102 102
103 bool BrowserActionButton::IsEnabled() const {
104 int tab_id = panel_->GetCurrentTabId();
105 if (tab_id < 0) {
106 // Default is "true" because disabled is the uncommon state.
107 return true;
108 }
109
110 return browser_action()->GetIsVisible(tab_id);
111 }
112
103 bool BrowserActionButton::CanHandleAccelerators() const { 113 bool BrowserActionButton::CanHandleAccelerators() const {
104 // View::CanHandleAccelerators() checks to see if the view is visible before 114 // View::CanHandleAccelerators() checks to see if the view is visible before
105 // allowing it to process accelerators. This is not appropriate for browser 115 // allowing it to process accelerators. This is not appropriate for browser
106 // actions buttons, which can be hidden inside the overflow area. 116 // actions buttons, which can be hidden inside the overflow area.
107 return true; 117 return true;
108 } 118 }
109 119
110 void BrowserActionButton::ButtonPressed(views::Button* sender, 120 void BrowserActionButton::ButtonPressed(views::Button* sender,
111 const views::Event& event) { 121 const views::Event& event) {
112 panel_->OnBrowserActionExecuted(this); 122 panel_->OnBrowserActionExecuted(this);
113 } 123 }
114 124
115 void BrowserActionButton::OnImageLoaded(const gfx::Image& image, 125 void BrowserActionButton::OnImageLoaded(const gfx::Image& image,
116 const std::string& extension_id, 126 const std::string& extension_id,
117 int index) { 127 int index) {
118 if (!image.IsEmpty()) 128 if (!image.IsEmpty())
119 default_icon_ = *image.ToSkBitmap(); 129 default_icon_ = *image.ToSkBitmap();
120 130
121 // Call back to UpdateState() because a more specific icon might have been set 131 // Call back to UpdateState() because a more specific icon might have been set
122 // while the load was outstanding. 132 // while the load was outstanding.
123 UpdateState(); 133 UpdateState();
124 } 134 }
125 135
126 void BrowserActionButton::UpdateState() { 136 void BrowserActionButton::UpdateState() {
127 int tab_id = panel_->GetCurrentTabId(); 137 int tab_id = panel_->GetCurrentTabId();
128 if (tab_id < 0) 138 if (tab_id < 0)
129 return; 139 return;
130 140
141 // XXX: this needs to cooperate with SetButton(Not)Pushed.
142 SetState(IsEnabled() ?
143 views::CustomButton::BS_NORMAL :
144 views::CustomButton::BS_DISABLED);
145
131 SkBitmap icon(browser_action()->GetIcon(tab_id)); 146 SkBitmap icon(browser_action()->GetIcon(tab_id));
132 if (icon.isNull()) 147 if (icon.isNull())
133 icon = default_icon_; 148 icon = default_icon_;
134 if (!icon.isNull()) { 149 if (!icon.isNull()) {
150 icon = browser_action()->RenderIconVisibility(icon, tab_id);
151
135 SkPaint paint; 152 SkPaint paint;
136 paint.setXfermode(SkXfermode::Create(SkXfermode::kSrcOver_Mode)); 153 paint.setXfermode(SkXfermode::Create(SkXfermode::kSrcOver_Mode));
137 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); 154 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
138 155
139 SkBitmap bg; 156 SkBitmap bg;
140 rb.GetBitmapNamed(IDR_BROWSER_ACTION)->copyTo(&bg, 157 rb.GetBitmapNamed(IDR_BROWSER_ACTION)->copyTo(&bg,
141 SkBitmap::kARGB_8888_Config); 158 SkBitmap::kARGB_8888_Config);
142 SkCanvas bg_canvas(bg); 159 SkCanvas bg_canvas(bg);
143 bg_canvas.drawBitmap(icon, SkIntToScalar((bg.width() - icon.width()) / 2), 160 bg_canvas.drawBitmap(icon, SkIntToScalar((bg.width() - icon.width()) / 2),
144 SkIntToScalar((bg.height() - icon.height()) / 2), &paint); 161 SkIntToScalar((bg.height() - icon.height()) / 2), &paint);
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 state->role = ui::AccessibilityTypes::ROLE_GROUPING; 356 state->role = ui::AccessibilityTypes::ROLE_GROUPING;
340 } 357 }
341 358
342 void BrowserActionView::PaintChildren(gfx::Canvas* canvas) { 359 void BrowserActionView::PaintChildren(gfx::Canvas* canvas) {
343 View::PaintChildren(canvas); 360 View::PaintChildren(canvas);
344 ExtensionAction* action = button()->browser_action(); 361 ExtensionAction* action = button()->browser_action();
345 int tab_id = panel_->GetCurrentTabId(); 362 int tab_id = panel_->GetCurrentTabId();
346 if (tab_id >= 0) 363 if (tab_id >= 0)
347 action->PaintBadge(canvas, gfx::Rect(width(), height()), tab_id); 364 action->PaintBadge(canvas, gfx::Rect(width(), height()), tab_id);
348 } 365 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/browser_action_view.h ('k') | chrome/chrome_common.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698