1 // Copyright 2014 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 COMPONENTS_TRANSLATE_CORE_BROWSER_OPTIONS_MENU_MODEL_H_ 6 #define COMPONENTS_TRANSLATE_CORE_BROWSER_OPTIONS_MENU_MODEL_H_ 7 8 #include "ui/base/models/simple_menu_model.h" 9 10 namespace translate { 11 12 class TranslateInfoBarDelegate; 13 14 // A menu model that builds the contents of the options menu in the translate 15 // infobar. This menu has only one level (no submenus). 16 class OptionsMenuModel : public ui::SimpleMenuModel, 17 public ui::SimpleMenuModel::Delegate { 18 public: 19 // Command IDs of the items in this menu; exposed for testing. 20 enum CommandID { 21 ABOUT_TRANSLATE = 0, 22 ALWAYS_TRANSLATE, 23 NEVER_TRANSLATE_LANGUAGE, 24 NEVER_TRANSLATE_SITE, 25 REPORT_BAD_DETECTION 26 }; 27 28 explicit OptionsMenuModel(TranslateInfoBarDelegate* translate_delegate); 29 virtual ~OptionsMenuModel(); 30 31 // ui::SimpleMenuModel::Delegate implementation: 32 virtual bool IsCommandIdChecked(int command_id) const OVERRIDE; 33 virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE; 34 virtual bool GetAcceleratorForCommandId( 35 int command_id, 36 ui::Accelerator* accelerator) OVERRIDE; 37 virtual void ExecuteCommand(int command_id, int event_flags) OVERRIDE; 38 39 private: 40 TranslateInfoBarDelegate* translate_infobar_delegate_; 41 42 DISALLOW_COPY_AND_ASSIGN(OptionsMenuModel); 43 }; 44 45 } // namespace translate 46 47 #endif // COMPONENTS_TRANSLATE_CORE_BROWSER_OPTIONS_MENU_MODEL_H_ 48