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 15namespace 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. 20class 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