Index: chrome/browser/speech/speech_input_bubble_views.cc |
diff --git a/chrome/browser/speech/speech_input_bubble_views.cc b/chrome/browser/speech/speech_input_bubble_views.cc |
index 3027da3bf626959f0dd605f07ea20b6e4af80e8f..2140ef47d2012ea47229a648f64ec0e5c4c30e39 100644 |
--- a/chrome/browser/speech/speech_input_bubble_views.cc |
+++ b/chrome/browser/speech/speech_input_bubble_views.cc |
@@ -13,10 +13,6 @@ |
#include "chrome/browser/tab_contents/tab_contents_view.h" |
#include "chrome/browser/ui/browser.h" |
#include "chrome/browser/views/info_bubble.h" |
-#include "chrome/common/notification_observer.h" |
-#include "chrome/common/notification_registrar.h" |
-#include "chrome/common/notification_source.h" |
-#include "chrome/common/notification_type.h" |
#include "gfx/canvas.h" |
#include "grit/generated_resources.h" |
#include "grit/theme_resources.h" |
@@ -200,8 +196,7 @@ void ContentView::Layout() { |
// Implementation of SpeechInputBubble. |
class SpeechInputBubbleImpl |
: public SpeechInputBubbleBase, |
- public InfoBubbleDelegate, |
- public NotificationObserver { |
+ public InfoBubbleDelegate { |
public: |
SpeechInputBubbleImpl(TabContents* tab_contents, |
Delegate* delegate, |
@@ -220,11 +215,6 @@ class SpeechInputBubbleImpl |
// |element_rect| is the html element's bounds in page coordinates. |
gfx::Rect GetInfoBubbleTarget(const gfx::Rect& element_rect); |
- // NotificationObserver implementation. |
- virtual void Observe(NotificationType type, |
- const NotificationSource& source, |
- const NotificationDetails& details); |
- |
// InfoBubbleDelegate |
virtual void InfoBubbleClosing(InfoBubble* info_bubble, |
bool closed_by_escape); |
@@ -234,9 +224,7 @@ class SpeechInputBubbleImpl |
private: |
Delegate* delegate_; |
InfoBubble* info_bubble_; |
- TabContents* tab_contents_; |
ContentView* bubble_content_; |
- NotificationRegistrar registrar_; |
gfx::Rect element_rect_; |
// Set to true if the object is being destroyed normally instead of the |
@@ -249,9 +237,9 @@ class SpeechInputBubbleImpl |
SpeechInputBubbleImpl::SpeechInputBubbleImpl(TabContents* tab_contents, |
Delegate* delegate, |
const gfx::Rect& element_rect) |
- : delegate_(delegate), |
+ : SpeechInputBubbleBase(tab_contents), |
+ delegate_(delegate), |
info_bubble_(NULL), |
- tab_contents_(tab_contents), |
bubble_content_(NULL), |
element_rect_(element_rect), |
did_invoke_close_(false) { |
@@ -265,26 +253,14 @@ SpeechInputBubbleImpl::~SpeechInputBubbleImpl() { |
gfx::Rect SpeechInputBubbleImpl::GetInfoBubbleTarget( |
const gfx::Rect& element_rect) { |
gfx::Rect container_rect; |
- tab_contents_->GetContainerBounds(&container_rect); |
+ tab_contents()->GetContainerBounds(&container_rect); |
return gfx::Rect( |
container_rect.x() + element_rect.x() + kBubbleTargetOffsetX, |
container_rect.y() + element_rect.y() + element_rect.height(), 1, 1); |
} |
-void SpeechInputBubbleImpl::Observe(NotificationType type, |
- const NotificationSource& source, |
- const NotificationDetails& details) { |
- if (type == NotificationType::TAB_CONTENTS_DESTROYED) { |
- delegate_->InfoBubbleButtonClicked(SpeechInputBubble::BUTTON_CANCEL); |
- } else { |
- NOTREACHED() << "Unknown notification"; |
- } |
-} |
- |
void SpeechInputBubbleImpl::InfoBubbleClosing(InfoBubble* info_bubble, |
bool closed_by_escape) { |
- registrar_.Remove(this, NotificationType::TAB_CONTENTS_DESTROYED, |
- Source<TabContents>(tab_contents_)); |
info_bubble_ = NULL; |
bubble_content_ = NULL; |
if (!did_invoke_close_) |
@@ -307,7 +283,7 @@ void SpeechInputBubbleImpl::Show() { |
UpdateLayout(); |
views::Widget* parent = views::Widget::GetWidgetFromNativeWindow( |
- tab_contents_->view()->GetTopLevelNativeWindow()); |
+ tab_contents()->view()->GetTopLevelNativeWindow()); |
info_bubble_ = InfoBubble::Show(parent, |
GetInfoBubbleTarget(element_rect_), |
BubbleBorder::TOP_LEFT, bubble_content_, |
@@ -319,9 +295,6 @@ void SpeechInputBubbleImpl::Show() { |
// to end so the caller can manage this object's life cycle like a normal |
// stack based or member variable object. |
info_bubble_->set_fade_away_on_close(false); |
- |
- registrar_.Add(this, NotificationType::TAB_CONTENTS_DESTROYED, |
- Source<TabContents>(tab_contents_)); |
} |
void SpeechInputBubbleImpl::Hide() { |