146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#ifndef COMPONENTS_TRANSLATE_CORE_BROWSER_OPTIONS_MENU_MODEL_H_
646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define COMPONENTS_TRANSLATE_CORE_BROWSER_OPTIONS_MENU_MODEL_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/base/models/simple_menu_model.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class TranslateInfoBarDelegate;
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// A menu model that builds the contents of the options menu in the translate
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// infobar. This menu has only one level (no submenus).
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class OptionsMenuModel : public ui::SimpleMenuModel,
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         public ui::SimpleMenuModel::Delegate {
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
1746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  // Command IDs of the items in this menu; exposed for testing.
1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  enum CommandID {
1946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    ABOUT_TRANSLATE = 0,
2046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    ALWAYS_TRANSLATE,
2146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    NEVER_TRANSLATE_LANGUAGE,
2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    NEVER_TRANSLATE_SITE,
2346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    REPORT_BAD_DETECTION
2446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  };
2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  explicit OptionsMenuModel(TranslateInfoBarDelegate* translate_delegate);
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual ~OptionsMenuModel();
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // ui::SimpleMenuModel::Delegate implementation:
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool IsCommandIdChecked(int command_id) const OVERRIDE;
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE;
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool GetAcceleratorForCommandId(
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      int command_id,
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ui::Accelerator* accelerator) OVERRIDE;
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void ExecuteCommand(int command_id, int event_flags) OVERRIDE;
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TranslateInfoBarDelegate* translate_infobar_delegate_;
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(OptionsMenuModel);
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif  // COMPONENTS_TRANSLATE_CORE_BROWSER_OPTIONS_MENU_MODEL_H_
44