1// Copyright (c) 2010 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_TRANSLATE_LANGUAGES_MENU_MODEL_H_
6#define CHROME_BROWSER_TRANSLATE_LANGUAGES_MENU_MODEL_H_
7#pragma once
8
9#include "ui/base/models/simple_menu_model.h"
10
11class TranslateInfoBarDelegate;
12
13// A menu model that builds the contents of the language menus in the translate
14// infobar. This menu has only one level (no submenus).
15class LanguagesMenuModel : public ui::SimpleMenuModel,
16                           public ui::SimpleMenuModel::Delegate {
17 public:
18  enum LanguageType {
19    ORIGINAL,
20    TARGET
21  };
22  LanguagesMenuModel(TranslateInfoBarDelegate* translate_delegate,
23                     LanguageType language_type);
24  virtual ~LanguagesMenuModel();
25
26  // ui::SimpleMenuModel::Delegate implementation:
27  virtual bool IsCommandIdChecked(int command_id) const;
28  virtual bool IsCommandIdEnabled(int command_id) const;
29  virtual bool GetAcceleratorForCommandId(int command_id,
30                                          ui::Accelerator* accelerator);
31  virtual void ExecuteCommand(int command_id);
32
33 private:
34  TranslateInfoBarDelegate* translate_infobar_delegate_;
35  LanguageType language_type_;
36
37  DISALLOW_COPY_AND_ASSIGN(LanguagesMenuModel);
38};
39
40#endif  // CHROME_BROWSER_TRANSLATE_LANGUAGES_MENU_MODEL_H_
41