Home | History | Annotate | Download | only in renderer_context_menu
      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 CHROME_BROWSER_RENDERER_CONTEXT_MENU_SPELLCHECKER_SUBMENU_OBSERVER_H_
      6 #define CHROME_BROWSER_RENDERER_CONTEXT_MENU_SPELLCHECKER_SUBMENU_OBSERVER_H_
      7 
      8 #include <string>
      9 #include <vector>
     10 
     11 #include "base/basictypes.h"
     12 #include "base/compiler_specific.h"
     13 #include "components/renderer_context_menu/render_view_context_menu_observer.h"
     14 #include "ui/base/models/simple_menu_model.h"
     15 
     16 class RenderViewContextMenuProxy;
     17 
     18 // A class that implements the 'spell-checker options' submenu. This class
     19 // creates the submenu, add it to the parent menu, and handles events.
     20 class SpellCheckerSubMenuObserver : public RenderViewContextMenuObserver {
     21  public:
     22   SpellCheckerSubMenuObserver(RenderViewContextMenuProxy* proxy,
     23                               ui::SimpleMenuModel::Delegate* delegate,
     24                               int group);
     25   virtual ~SpellCheckerSubMenuObserver();
     26 
     27   // RenderViewContextMenuObserver implementation.
     28   virtual void InitMenu(const content::ContextMenuParams& params) OVERRIDE;
     29   virtual bool IsCommandIdSupported(int command_id) OVERRIDE;
     30   virtual bool IsCommandIdChecked(int command_id) OVERRIDE;
     31   virtual bool IsCommandIdEnabled(int command_id) OVERRIDE;
     32   virtual void ExecuteCommand(int command_id) OVERRIDE;
     33 
     34  private:
     35   // The interface for adding a submenu to the parent.
     36   RenderViewContextMenuProxy* proxy_;
     37 
     38   // The submenu of the 'spell-checker options'. This class adds items to this
     39   // submenu and add it to the parent menu.
     40   ui::SimpleMenuModel submenu_model_;
     41 
     42 #if !defined(OS_MACOSX)
     43   // Hunspell spelling submenu.
     44   // The radio items representing languages available for spellchecking.
     45   int language_group_;
     46   int language_selected_;
     47   std::vector<std::string> languages_;
     48 #endif  // !OS_MACOSX
     49 
     50   DISALLOW_COPY_AND_ASSIGN(SpellCheckerSubMenuObserver);
     51 };
     52 
     53 #endif  // CHROME_BROWSER_RENDERER_CONTEXT_MENU_SPELLCHECKER_SUBMENU_OBSERVER_H_
     54