Home | History | Annotate | Download | only in translate
      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 
     11 class 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).
     15 class 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