| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/infobars/extension_infobar.h" | 5 #include "chrome/browser/ui/views/infobars/extension_infobar.h" |
| 6 | 6 |
| 7 #include "chrome/browser/extensions/extension_context_menu_model.h" | 7 #include "chrome/browser/extensions/extension_context_menu_model.h" |
| 8 #include "chrome/browser/extensions/extension_host.h" | 8 #include "chrome/browser/extensions/extension_host.h" |
| 9 #include "chrome/browser/extensions/extension_infobar_delegate.h" | 9 #include "chrome/browser/extensions/extension_infobar_delegate.h" |
| 10 #include "chrome/browser/platform_util.h" | 10 #include "chrome/browser/platform_util.h" |
| (...skipping 25 matching lines...) Expand all Loading... |
| 36 | 36 |
| 37 ExtensionInfoBar::ExtensionInfoBar(ExtensionInfoBarDelegate* delegate) | 37 ExtensionInfoBar::ExtensionInfoBar(ExtensionInfoBarDelegate* delegate) |
| 38 : InfoBarView(delegate), | 38 : InfoBarView(delegate), |
| 39 delegate_(delegate), | 39 delegate_(delegate), |
| 40 menu_(NULL), | 40 menu_(NULL), |
| 41 ALLOW_THIS_IN_INITIALIZER_LIST(tracker_(this)) { | 41 ALLOW_THIS_IN_INITIALIZER_LIST(tracker_(this)) { |
| 42 delegate->set_observer(this); | 42 delegate->set_observer(this); |
| 43 | 43 |
| 44 ExtensionView* extension_view = delegate->extension_host()->view(); | 44 ExtensionView* extension_view = delegate->extension_host()->view(); |
| 45 int height = extension_view->GetPreferredSize().height(); | 45 int height = extension_view->GetPreferredSize().height(); |
| 46 set_target_height((height > 0) ? | 46 SetTargetHeight((height > 0) ? |
| 47 (height + InfoBarBackground::kSeparatorLineHeight) : height); | 47 (height + InfoBarBackground::kSeparatorLineHeight) : height); |
| 48 | 48 |
| 49 // Get notified of resize events for the ExtensionView. | 49 // Get notified of resize events for the ExtensionView. |
| 50 extension_view->SetContainer(this); | 50 extension_view->SetContainer(this); |
| 51 } | 51 } |
| 52 | 52 |
| 53 ExtensionInfoBar::~ExtensionInfoBar() { | 53 ExtensionInfoBar::~ExtensionInfoBar() { |
| 54 if (GetDelegate()) { | 54 if (GetDelegate()) { |
| 55 GetDelegate()->extension_host()->view()->SetContainer(NULL); | 55 GetDelegate()->extension_host()->view()->SetContainer(NULL); |
| 56 GetDelegate()->set_observer(NULL); | 56 GetDelegate()->set_observer(NULL); |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 // infobar view). | 123 // infobar view). |
| 124 if (delegate->closing()) | 124 if (delegate->closing()) |
| 125 return; | 125 return; |
| 126 | 126 |
| 127 view->SetVisible(true); | 127 view->SetVisible(true); |
| 128 | 128 |
| 129 if (height() == 0) | 129 if (height() == 0) |
| 130 animation()->Reset(0.0); | 130 animation()->Reset(0.0); |
| 131 | 131 |
| 132 // Clamp height to a min and a max size of between 1 and 2 InfoBars. | 132 // Clamp height to a min and a max size of between 1 and 2 InfoBars. |
| 133 set_target_height(std::min(2 * kDefaultTargetHeight, | 133 SetTargetHeight(std::min(2 * kDefaultTargetHeight, |
| 134 std::max(kDefaultTargetHeight, view->GetPreferredSize().height()))); | 134 std::max(kDefaultTargetHeight, view->GetPreferredSize().height()))); |
| 135 | 135 |
| 136 animation()->Show(); | 136 animation()->Show(); |
| 137 } | 137 } |
| 138 | 138 |
| 139 void ExtensionInfoBar::OnImageLoaded(SkBitmap* image, | 139 void ExtensionInfoBar::OnImageLoaded(SkBitmap* image, |
| 140 const ExtensionResource& resource, | 140 const ExtensionResource& resource, |
| 141 int index) { | 141 int index) { |
| 142 if (!GetDelegate()) | 142 if (!GetDelegate()) |
| 143 return; // The delegate can go away while we asynchronously load images. | 143 return; // The delegate can go away while we asynchronously load images. |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 184 NULL); | 184 NULL); |
| 185 } | 185 } |
| 186 | 186 |
| 187 options_menu_menu_.reset(new views::Menu2(options_menu_contents_.get())); | 187 options_menu_menu_.reset(new views::Menu2(options_menu_contents_.get())); |
| 188 options_menu_menu_->RunMenuAt(pt, views::Menu2::ALIGN_TOPLEFT); | 188 options_menu_menu_->RunMenuAt(pt, views::Menu2::ALIGN_TOPLEFT); |
| 189 } | 189 } |
| 190 | 190 |
| 191 ExtensionInfoBarDelegate* ExtensionInfoBar::GetDelegate() { | 191 ExtensionInfoBarDelegate* ExtensionInfoBar::GetDelegate() { |
| 192 return delegate_ ? delegate_->AsExtensionInfoBarDelegate() : NULL; | 192 return delegate_ ? delegate_->AsExtensionInfoBarDelegate() : NULL; |
| 193 } | 193 } |
| OLD | NEW |