Chromium Code Reviews| 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 |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..4124e456a13541abd030a6d20a13a10320d335da |
| --- /dev/null |
| +++ b/chrome/browser/speech/speech_input_bubble.h |
| @@ -0,0 +1,61 @@ |
| +// Copyright (c) 2010 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 "gfx/rect.h" |
| + |
| +class TabContents; |
| + |
| +// 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 invoking the |Close| method. |
|
sky
2010/08/24 16:08:28
Update your comments.
|
| +class SpeechInputBubble { |
| + public: |
| + // Informs listeners of user actions in the bubble. |
| + class Delegate { |
| + public: |
| + // Invoked when the user cancels speech recognition by clicking on the |
| + // cancel button. The InfoBubble is still active and the caller should close |
| + // it if necessary. |
| + virtual void RecognitionCancelled() = 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. |
| + virtual void InfoBubbleClosed() = 0; |
|
sky
2010/08/24 16:08:28
You should mention this isn't invoked if the Speec
|
| + |
| + protected: |
| + virtual ~Delegate() { |
| + } |
| + }; |
| + |
| + // Factory method to create new instances. |
| + // Creates and displays the bubble. |
| + // |tab_contents| is the TabContents hosting the page. |
| + // |element_rect| is the display bounds of the html element requesting speech |
| + // input (in page coordinates). |
|
sky
2010/08/24 16:08:28
Seems like this should be in screen coordinates ot
Satish
2010/08/24 16:22:04
The callers get this rect from webkit hence know a
|
| + static SpeechInputBubble* Create(TabContents* tab_contents, |
| + Delegate* delegate, |
| + const gfx::Rect& element_rect); |
| + // Factory method definition useful for tests. |
| + typedef SpeechInputBubble* (FactoryMethod)(TabContents*, |
|
sky
2010/08/24 16:08:28
Is this needed?
Satish
2010/08/24 16:22:04
Yes, for unit testing the code using this object i
sky
2010/08/24 16:49:57
Can you add it when you need it then.
|
| + Delegate*, |
| + const gfx::Rect&); |
| + virtual ~SpeechInputBubble() {} |
| + |
| + // Indicates to the user that recognition is in progress. |
| + virtual void SetRecognizingMode() = 0; |
| +}; |
| + |
| +// 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_ |