Index: chrome/browser/speech/speech_input_bubble.h |
diff --git a/chrome/browser/speech/speech_input_bubble.h b/chrome/browser/speech/speech_input_bubble.h |
deleted file mode 100644 |
index 2ebfe56bf0872b7e55f0853d1bc6c07a888897d4..0000000000000000000000000000000000000000 |
--- a/chrome/browser/speech/speech_input_bubble.h |
+++ /dev/null |
@@ -1,194 +0,0 @@ |
-// Copyright (c) 2012 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_H_ |
-#define CHROME_BROWSER_SPEECH_SPEECH_INPUT_BUBBLE_H_ |
-#pragma once |
- |
-#include <vector> |
- |
-#include "base/memory/scoped_ptr.h" |
-#include "base/memory/weak_ptr.h" |
-#include "base/string16.h" |
- |
-class SkBitmap; |
-class SkCanvas; |
- |
-namespace content { |
-class WebContents; |
-} |
- |
-namespace gfx { |
-class Canvas; |
-class Rect; |
-} |
- |
-// SpeechInputBubble displays a popup info bubble during speech recognition, |
-// points to the html element which requested speech input and shows recognition |
-// progress events. The popup is closed by the user clicking anywhere outside |
-// the popup window, or by the caller destroying this object. |
-class SpeechInputBubble { |
- public: |
- // The various buttons which may be part of the bubble. |
- enum Button { |
- BUTTON_TRY_AGAIN, |
- BUTTON_CANCEL |
- }; |
- |
- // Informs listeners of user actions in the bubble. |
- class Delegate { |
- public: |
- // Invoked when the user selects a button in the info bubble. The InfoBubble |
- // is still active and the caller should close it if necessary. |
- virtual void InfoBubbleButtonClicked(Button button) = 0; |
- |
- // Invoked when the user clicks outside the InfoBubble causing it to close. |
- // The InfoBubble window is no longer visible on screen and the caller can |
- // free the InfoBubble instance. This callback is not issued if the bubble |
- // got closed because the object was destroyed by the caller. |
- virtual void InfoBubbleFocusChanged() = 0; |
- |
- protected: |
- virtual ~Delegate() { |
- } |
- }; |
- |
- // Factory method to create new instances. |
- // Creates the bubble, call |Show| to display it on screen. |
- // |web_contents| is the WebContents hosting the page. |
- // |element_rect| is the display bounds of the html element requesting speech |
- // input (in page coordinates). |
- static SpeechInputBubble* Create(content::WebContents* web_contents, |
- Delegate* delegate, |
- const gfx::Rect& element_rect); |
- |
- // This is implemented by platform specific code to create the underlying |
- // bubble window. Not to be called directly by users of this class. |
- static SpeechInputBubble* CreateNativeBubble( |
- content::WebContents* web_contents, |
- Delegate* delegate, |
- const gfx::Rect& element_rect); |
- |
- // |Create| uses the currently registered FactoryMethod to create the |
- // SpeechInputBubble instances. FactoryMethod is intended for testing. |
- typedef SpeechInputBubble* (*FactoryMethod)(content::WebContents*, |
- Delegate*, |
- const gfx::Rect&); |
- // Sets the factory used by the static method Create. SpeechInputBubble does |
- // not take ownership of |factory|. A value of NULL results in a |
- // SpeechInputBubble being created directly. |
-#if defined(UNIT_TEST) |
- static void set_factory(FactoryMethod factory) { factory_ = factory; } |
-#endif |
- |
- virtual ~SpeechInputBubble() {} |
- |
- // Indicates to the user that audio hardware is initializing. If the bubble is |
- // hidden, |Show| must be called to make it appear on screen. |
- virtual void SetWarmUpMode() = 0; |
- |
- // Indicates to the user that audio recording is in progress. If the bubble is |
- // hidden, |Show| must be called to make it appear on screen. |
- virtual void SetRecordingMode() = 0; |
- |
- // Indicates to the user that recognition is in progress. If the bubble is |
- // hidden, |Show| must be called to make it appear on screen. |
- virtual void SetRecognizingMode() = 0; |
- |
- // 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. |
- virtual void SetMessage(const string16& text) = 0; |
- |
- // Brings up the bubble on screen. |
- virtual void Show() = 0; |
- |
- // Hides the info bubble, resulting in a call to |
- // |Delegate::InfoBubbleFocusChanged| as well. |
- virtual void Hide() = 0; |
- |
- // Updates and draws the current captured audio volume displayed on screen. |
- virtual void SetInputVolume(float volume, float noise_volume) = 0; |
- |
- // Returns the WebContents for which this bubble gets displayed. |
- virtual content::WebContents* web_contents() = 0; |
- |
- // The horizontal distance between the start of the html widget and the speech |
- // bubble's arrow. |
- static const int kBubbleTargetOffsetX; |
- |
- private: |
- static FactoryMethod factory_; |
-}; |
- |
-// Base class for the platform specific bubble implementations, this contains |
-// the platform independent code for SpeechInputBubble. |
-class SpeechInputBubbleBase : public SpeechInputBubble { |
- public: |
- // The current display mode of the bubble, useful only for the platform |
- // specific implementation. |
- enum DisplayMode { |
- DISPLAY_MODE_WARM_UP, |
- DISPLAY_MODE_RECORDING, |
- DISPLAY_MODE_RECOGNIZING, |
- DISPLAY_MODE_MESSAGE |
- }; |
- |
- explicit SpeechInputBubbleBase(content::WebContents* web_contents); |
- virtual ~SpeechInputBubbleBase(); |
- |
- // SpeechInputBubble methods |
- virtual void SetWarmUpMode() OVERRIDE; |
- virtual void SetRecordingMode() OVERRIDE; |
- virtual void SetRecognizingMode() OVERRIDE; |
- virtual void SetMessage(const string16& text) OVERRIDE; |
- virtual void SetInputVolume(float volume, float noise_volume) OVERRIDE; |
- virtual content::WebContents* web_contents() OVERRIDE; |
- |
- protected: |
- // Updates the platform specific UI layout for the current display mode. |
- virtual void UpdateLayout() = 0; |
- |
- // Overridden by subclasses to copy |icon_image()| to the screen. |
- virtual void UpdateImage() = 0; |
- |
- DisplayMode display_mode() const { return display_mode_; } |
- |
- const string16& message_text() const { return message_text_; } |
- |
- SkBitmap icon_image(); |
- |
- private: |
- void DoRecognizingAnimationStep(); |
- void DoWarmingUpAnimationStep(); |
- void SetImage(const SkBitmap& image); |
- |
- void DrawVolumeOverlay(SkCanvas* canvas, |
- const SkBitmap& bitmap, |
- float volume); |
- |
- // Task factory used for animation timer. |
- base::WeakPtrFactory<SpeechInputBubbleBase> weak_factory_; |
- int animation_step_; // Current index/step of the animation. |
- std::vector<SkBitmap> animation_frames_; |
- std::vector<SkBitmap> warming_up_frames_; |
- |
- DisplayMode display_mode_; |
- string16 message_text_; // Text displayed in DISPLAY_MODE_MESSAGE |
- // The current microphone image with volume level indication. |
- scoped_ptr<SkBitmap> mic_image_; |
- // A temporary buffer image used in creating the above mic image. |
- scoped_ptr<SkBitmap> buffer_image_; |
- // WebContents in which this this bubble gets displayed. |
- content::WebContents* web_contents_; |
- // The current image displayed in the bubble's icon widget. |
- scoped_ptr<SkBitmap> icon_image_; |
-}; |
- |
-// 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 SpeechInputBubble::Delegate SpeechInputBubbleDelegate; |
- |
-#endif // CHROME_BROWSER_SPEECH_SPEECH_INPUT_BUBBLE_H_ |