summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/location_bar_view_mac.mm
diff options
context:
space:
mode:
authormirandac@chromium.org <mirandac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-31 21:45:17 +0000
committermirandac@chromium.org <mirandac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-31 21:45:17 +0000
commit54bc0925f6430d3fd94fbfc8cabff0a41128701a (patch)
tree0596552395a069054716171e111bb5c971367290 /chrome/browser/cocoa/location_bar_view_mac.mm
parent007cb731cd1d0af76a0688faa5d1e125c6f57db3 (diff)
downloadchromium_src-54bc0925f6430d3fd94fbfc8cabff0a41128701a.zip
chromium_src-54bc0925f6430d3fd94fbfc8cabff0a41128701a.tar.gz
chromium_src-54bc0925f6430d3fd94fbfc8cabff0a41128701a.tar.bz2
ExtensionInstalledBubble for Mac.
Adds ExtensionInstalledBubble.xib, which contains the framework for the bubble itself (icon view, close button, and three message fields). BUG= 26974 TEST= Install an extension. Bubble should show same information as windows bubble. Review URL: http://codereview.chromium.org/527012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37671 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa/location_bar_view_mac.mm')
-rw-r--r--chrome/browser/cocoa/location_bar_view_mac.mm65
1 files changed, 65 insertions, 0 deletions
diff --git a/chrome/browser/cocoa/location_bar_view_mac.mm b/chrome/browser/cocoa/location_bar_view_mac.mm
index 52a28b2..ec592cb 100644
--- a/chrome/browser/cocoa/location_bar_view_mac.mm
+++ b/chrome/browser/cocoa/location_bar_view_mac.mm
@@ -328,6 +328,54 @@ int LocationBarViewMac::PageActionVisibleCount() {
return static_cast<int>(page_action_views_->VisibleCount());
}
+void LocationBarViewMac::SetPreviewEnabledPageAction(
+ ExtensionAction* page_action, bool preview_enabled) {
+ DCHECK(page_action);
+ Browser* browser = BrowserList::GetLastActive();
+ // GetLastActive returns NULL in current unit testing.
+ if (!browser)
+ return;
+ TabContents* contents = browser->GetSelectedTabContents();
+ DCHECK(contents);
+ page_action_views_->RefreshViews();
+
+ LocationBarViewMac::PageActionImageView* page_action_image_view =
+ GetPageActionImageView(page_action);
+ DCHECK(page_action_image_view);
+ if (!page_action_image_view)
+ return;
+
+ page_action_image_view->set_preview_enabled(preview_enabled);
+ page_action_image_view->UpdateVisibility(contents,
+ GURL(WideToUTF8(toolbar_model_->GetText())));
+
+ NotificationService::current()->Notify(
+ NotificationType::EXTENSION_PAGE_ACTION_VISIBILITY_CHANGED,
+ Source<ExtensionAction>(page_action),
+ Details<TabContents>(contents));
+}
+
+size_t LocationBarViewMac::GetPageActionIndex(ExtensionAction* page_action) {
+ DCHECK(page_action);
+ for (size_t i = 0; i < page_action_views_->Count(); ++i) {
+ if (page_action_views_->ViewAt(i)->page_action() == page_action)
+ return i;
+ }
+ NOTREACHED();
+ return 0;
+}
+
+LocationBarViewMac::PageActionImageView*
+ LocationBarViewMac::GetPageActionImageView(ExtensionAction* page_action) {
+ DCHECK(page_action);
+ for (size_t i = 0; i < page_action_views_->Count(); ++i) {
+ if (page_action_views_->ViewAt(i)->page_action() == page_action)
+ return page_action_views_->ViewAt(i);
+ }
+ NOTREACHED();
+ return NULL;
+}
+
ExtensionAction* LocationBarViewMac::GetPageAction(size_t index) {
if (index < page_action_views_->Count())
return page_action_views_->ViewAt(index)->page_action();
@@ -544,6 +592,19 @@ LocationBarViewMac::PageActionImageView::~PageActionImageView() {
tracker_->StopTrackingImageLoad();
}
+NSSize LocationBarViewMac::PageActionImageView::GetImageSize() {
+ NSImage* image = GetImage();
+ if (preview_enabled_ && !image) {
+ return NSMakeSize(Extension::kPageActionIconMaxSize,
+ Extension::kPageActionIconMaxSize);
+ } else if (image) {
+ return [image size];
+ }
+ // Default value for image size is undefined when preview is not enabled.
+ NOTREACHED();
+ return NSMakeSize(0, 0);
+}
+
// Overridden from LocationBarImageView. Either notify listeners or show a
// popup depending on the Page Action.
bool LocationBarViewMac::PageActionImageView::OnMousePressed(NSRect bounds) {
@@ -603,6 +664,9 @@ void LocationBarViewMac::PageActionImageView::OnImageLoaded(SkBitmap* image,
tracker_ = NULL;
owner_->UpdatePageActions();
+
+ if (preview_enabled_)
+ [owner_->GetAutocompleteTextField() display];
}
void LocationBarViewMac::PageActionImageView::UpdateVisibility(
@@ -781,3 +845,4 @@ void LocationBarViewMac::PageActionViewList::OnMousePressed(NSRect iconFrame,
size_t index) {
ViewAt(index)->OnMousePressed(iconFrame);
}
+