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 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_UI_COCOA_SPEECH_INPUT_WINDOW_CONTROLLER_H_ 6 #define CHROME_BROWSER_UI_COCOA_SPEECH_INPUT_WINDOW_CONTROLLER_H_ 7 #pragma once 8 9 #import <Cocoa/Cocoa.h> 10 11 #include "chrome/browser/speech/speech_input_bubble.h" 12 #include "chrome/browser/ui/cocoa/base_bubble_controller.h" 13 14 // Controller for the speech input bubble window. This bubble window gets 15 // displayed when the user starts speech input in a html input element. 16 @interface SpeechInputWindowController : BaseBubbleController { 17 @private 18 SpeechInputBubble::Delegate* delegate_; // weak. 19 SpeechInputBubbleBase::DisplayMode displayMode_; 20 21 // References below are weak, being obtained from the nib. 22 IBOutlet NSImageView* iconImage_; 23 IBOutlet NSTextField* instructionLabel_; 24 IBOutlet NSButton* cancelButton_; 25 IBOutlet NSButton* tryAgainButton_; 26 IBOutlet NSButton* micSettingsButton_; 27 } 28 29 // Initialize the window. |anchoredAt| is in screen coordinates. 30 - (id)initWithParentWindow:(NSWindow*)parentWindow 31 delegate:(SpeechInputBubbleDelegate*)delegate 32 anchoredAt:(NSPoint)anchoredAt; 33 34 // Handler for the cancel button. 35 - (IBAction)cancel:(id)sender; 36 37 // Handler for the try again button. 38 - (IBAction)tryAgain:(id)sender; 39 40 // Handler for the mic settings button. 41 - (IBAction)micSettings:(id)sender; 42 43 // Updates the UI with data related to the given display mode. 44 - (void)updateLayout:(SpeechInputBubbleBase::DisplayMode)mode 45 messageText:(const string16&)messageText 46 iconImage:(NSImage*)iconImage; 47 48 // Makes the speech input bubble visible on screen. 49 - (void)show; 50 51 // Hides the speech input bubble away from screen. This does NOT release the 52 // controller and the window. 53 - (void)hide; 54 55 // Sets the image to be displayed in the bubble's status ImageView. A future 56 // call to updateLayout may change the image. 57 // TODO(satish): Clean that up and move it into the platform independent 58 // SpeechInputBubbleBase class. 59 - (void)setImage:(NSImage*)image; 60 61 @end 62 63 #endif // CHROME_BROWSER_UI_COCOA_SPEECH_INPUT_WINDOW_CONTROLLER_H_ 64