// Copyright (c) 2011 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_CHROMEOS_LOGIN_KEYBOARD_SWITCH_MENU_H_
#define CHROME_BROWSER_CHROMEOS_LOGIN_KEYBOARD_SWITCH_MENU_H_
#pragma once
#include <string>
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/chromeos/status/input_method_menu.h"
#include "chrome/browser/chromeos/status/status_area_host.h"
namespace chromeos {
// A class for the button in the OOBE network configuration screen which expands
// a dropdown menu for switching keyboard layout. Note that the InputMethodMenu
// class implements the views::ViewMenuDelegate interface.
class KeyboardSwitchMenu : public InputMethodMenu {
public:
KeyboardSwitchMenu();
virtual ~KeyboardSwitchMenu() {}
// InputMethodMenu::InputMethodMenuHost implementation.
virtual void UpdateUI(const std::string& input_method_id,
const std::wstring& name,
const std::wstring& tooltip,
size_t num_active_input_methods);
virtual bool ShouldSupportConfigUI() { return false; }
virtual void OpenConfigUI() {}
// views::ViewMenuDelegate implementation which overrides the implementation
// in InputMethodMenu.
virtual void RunMenu(views::View* source, const gfx::Point& pt);
// Returns current keyboard name to be placed on the keyboard menu-button.
string16 GetCurrentKeyboardName() const;
private:
DISALLOW_COPY_AND_ASSIGN(KeyboardSwitchMenu);
};
} // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_LOGIN_KEYBOARD_SWITCH_MENU_H_