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_CHROMEOS_LOGIN_KEYBOARD_SWITCH_MENU_H_ 6 #define CHROME_BROWSER_CHROMEOS_LOGIN_KEYBOARD_SWITCH_MENU_H_ 7 #pragma once 8 9 #include <string> 10 11 #include "base/memory/scoped_ptr.h" 12 #include "chrome/browser/chromeos/status/input_method_menu.h" 13 #include "chrome/browser/chromeos/status/status_area_host.h" 14 15 namespace chromeos { 16 17 // A class for the button in the OOBE network configuration screen which expands 18 // a dropdown menu for switching keyboard layout. Note that the InputMethodMenu 19 // class implements the views::ViewMenuDelegate interface. 20 class KeyboardSwitchMenu : public InputMethodMenu { 21 public: 22 KeyboardSwitchMenu(); 23 virtual ~KeyboardSwitchMenu() {} 24 25 // InputMethodMenu::InputMethodMenuHost implementation. 26 virtual void UpdateUI(const std::string& input_method_id, 27 const std::wstring& name, 28 const std::wstring& tooltip, 29 size_t num_active_input_methods); 30 virtual bool ShouldSupportConfigUI() { return false; } 31 virtual void OpenConfigUI() {} 32 33 // views::ViewMenuDelegate implementation which overrides the implementation 34 // in InputMethodMenu. 35 virtual void RunMenu(views::View* source, const gfx::Point& pt); 36 37 // Returns current keyboard name to be placed on the keyboard menu-button. 38 string16 GetCurrentKeyboardName() const; 39 40 private: 41 DISALLOW_COPY_AND_ASSIGN(KeyboardSwitchMenu); 42 }; 43 44 } // namespace chromeos 45 46 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_KEYBOARD_SWITCH_MENU_H_ 47