| Index: chrome/browser/speech/speech_input_bubble_controller.h
|
| diff --git a/chrome/browser/speech/speech_input_bubble_controller.h b/chrome/browser/speech/speech_input_bubble_controller.h
|
| deleted file mode 100644
|
| index 39a02935ee83c3680347a00a7e257e3bdfdb3262..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/speech/speech_input_bubble_controller.h
|
| +++ /dev/null
|
| @@ -1,151 +0,0 @@
|
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef CHROME_BROWSER_SPEECH_SPEECH_INPUT_BUBBLE_CONTROLLER_H_
|
| -#define CHROME_BROWSER_SPEECH_SPEECH_INPUT_BUBBLE_CONTROLLER_H_
|
| -
|
| -#include <map>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "chrome/browser/speech/speech_input_bubble.h"
|
| -#include "content/public/browser/notification_observer.h"
|
| -
|
| -namespace gfx {
|
| -class Rect;
|
| -}
|
| -
|
| -namespace content {
|
| -class NotificationRegistrar;
|
| -}
|
| -
|
| -namespace speech_input {
|
| -
|
| -// This class handles the speech input popup UI on behalf of SpeechInputManager.
|
| -// SpeechInputManager invokes methods in the IO thread and this class processes
|
| -// those requests in the UI thread. There could be multiple bubble objects alive
|
| -// at the same time but only one of them is visible to the user. User actions on
|
| -// that bubble are reported to the delegate.
|
| -class SpeechInputBubbleController
|
| - : public base::RefCountedThreadSafe<SpeechInputBubbleController>,
|
| - public SpeechInputBubbleDelegate,
|
| - public content::NotificationObserver {
|
| - public:
|
| - // All methods of this delegate are called in the IO thread.
|
| - class Delegate {
|
| - public:
|
| - // Invoked when the user clicks on a button in the speech input UI.
|
| - virtual void InfoBubbleButtonClicked(int caller_id,
|
| - SpeechInputBubble::Button button) = 0;
|
| -
|
| - // Invoked when the user clicks outside the speech input info bubble causing
|
| - // it to close and input focus to change.
|
| - virtual void InfoBubbleFocusChanged(int caller_id) = 0;
|
| -
|
| - protected:
|
| - virtual ~Delegate() {}
|
| - };
|
| -
|
| - explicit SpeechInputBubbleController(Delegate* delegate);
|
| - virtual ~SpeechInputBubbleController();
|
| -
|
| - // Creates a new speech input UI bubble. One of the SetXxxx methods below need
|
| - // to be called to specify what to display.
|
| - void CreateBubble(int caller_id,
|
| - int render_process_id,
|
| - int render_view_id,
|
| - const gfx::Rect& element_rect);
|
| -
|
| - // Indicates to the user that audio hardware is warming up. This also makes
|
| - // the bubble visible if not already visible.
|
| - void SetBubbleWarmUpMode(int caller_id);
|
| -
|
| - // Indicates to the user that audio recording is in progress. This also makes
|
| - // the bubble visible if not already visible.
|
| - void SetBubbleRecordingMode(int caller_id);
|
| -
|
| - // Indicates to the user that recognition is in progress. If the bubble is
|
| - // hidden, |Show| must be called to make it appear on screen.
|
| - void SetBubbleRecognizingMode(int caller_id);
|
| -
|
| - // Displays the given string with the 'Try again' and 'Cancel' buttons. If the
|
| - // bubble is hidden, |Show| must be called to make it appear on screen.
|
| - void SetBubbleMessage(int caller_id, const string16& text);
|
| -
|
| - // Updates the current captured audio volume displayed on screen.
|
| - void SetBubbleInputVolume(int caller_id, float volume, float noise_volume);
|
| -
|
| - void CloseBubble(int caller_id);
|
| -
|
| - // SpeechInputBubble::Delegate methods.
|
| - virtual void InfoBubbleButtonClicked(
|
| - SpeechInputBubble::Button button) OVERRIDE;
|
| - virtual void InfoBubbleFocusChanged() OVERRIDE;
|
| -
|
| - // content::NotificationObserver implementation.
|
| - virtual void Observe(int type,
|
| - const content::NotificationSource& source,
|
| - const content::NotificationDetails& details) OVERRIDE;
|
| -
|
| - private:
|
| - // The various calls received by this object and handled in the UI thread.
|
| - enum RequestType {
|
| - REQUEST_SET_WARM_UP_MODE,
|
| - REQUEST_SET_RECORDING_MODE,
|
| - REQUEST_SET_RECOGNIZING_MODE,
|
| - REQUEST_SET_MESSAGE,
|
| - REQUEST_SET_INPUT_VOLUME,
|
| - REQUEST_CLOSE,
|
| - };
|
| -
|
| - enum ManageSubscriptionAction {
|
| - BUBBLE_ADDED,
|
| - BUBBLE_REMOVED
|
| - };
|
| -
|
| - void InvokeDelegateButtonClicked(int caller_id,
|
| - SpeechInputBubble::Button button);
|
| - void InvokeDelegateFocusChanged(int caller_id);
|
| - void ProcessRequestInUiThread(int caller_id,
|
| - RequestType type,
|
| - const string16& text,
|
| - float volume,
|
| - float noise_volume);
|
| -
|
| - // Called whenever a bubble was added to or removed from the list. If the
|
| - // bubble was being added, this method registers for close notifications with
|
| - // the TabContents if this was the first bubble for the tab. Similarly if the
|
| - // bubble was being removed, this method unregisters from TabContents if this
|
| - // was the last bubble associated with that tab.
|
| - void UpdateTabContentsSubscription(int caller_id,
|
| - ManageSubscriptionAction action);
|
| -
|
| - // Only accessed in the IO thread.
|
| - Delegate* delegate_;
|
| -
|
| - // *** The following are accessed only in the UI thread.
|
| -
|
| - // The caller id for currently visible bubble (since only one bubble is
|
| - // visible at any time).
|
| - int current_bubble_caller_id_;
|
| -
|
| - // Map of caller-ids to bubble objects. The bubbles are weak pointers owned by
|
| - // this object and get destroyed by |CloseBubble|.
|
| - typedef std::map<int, SpeechInputBubble*> BubbleCallerIdMap;
|
| - BubbleCallerIdMap bubbles_;
|
| -
|
| - scoped_ptr<content::NotificationRegistrar> registrar_;
|
| -};
|
| -
|
| -// This typedef is to workaround the issue with certain versions of
|
| -// Visual Studio where it gets confused between multiple Delegate
|
| -// classes and gives a C2500 error. (I saw this error on the try bots -
|
| -// the workaround was not needed for my machine).
|
| -typedef SpeechInputBubbleController::Delegate
|
| - SpeechInputBubbleControllerDelegate;
|
| -
|
| -} // namespace speech_input
|
| -
|
| -#endif // CHROME_BROWSER_SPEECH_SPEECH_INPUT_BUBBLE_CONTROLLER_H_
|
|
|