Home | History | Annotate | Download | only in menu
      1 // Copyright (c) 2012 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 #include "ui/views/controls/menu/menu_delegate.h"
      6 
      7 #include "ui/events/event.h"
      8 #include "ui/views/controls/menu/menu_config.h"
      9 
     10 namespace views {
     11 
     12 MenuDelegate::~MenuDelegate() {}
     13 
     14 bool MenuDelegate::IsItemChecked(int id) const {
     15   return false;
     16 }
     17 
     18 base::string16 MenuDelegate::GetLabel(int id) const {
     19   return base::string16();
     20 }
     21 
     22 const gfx::FontList* MenuDelegate::GetLabelFontList(int id) const {
     23   return NULL;
     24 }
     25 
     26 bool MenuDelegate::GetShouldUseDisabledEmphasizedForegroundColor(
     27     int command_id) const {
     28   return false;
     29 }
     30 
     31 bool MenuDelegate::GetBackgroundColor(int command_id,
     32                                       bool is_hovered,
     33                                       SkColor* override_color) const {
     34   return false;
     35 }
     36 
     37 bool MenuDelegate::GetForegroundColor(int command_id,
     38                                       bool is_hovered,
     39                                       SkColor* override_color) const {
     40   return false;
     41 }
     42 
     43 base::string16 MenuDelegate::GetTooltipText(int id,
     44                                       const gfx::Point& screen_loc) const {
     45   return base::string16();
     46 }
     47 
     48 bool MenuDelegate::GetAccelerator(int id, ui::Accelerator* accelerator) const {
     49   return false;
     50 }
     51 
     52 bool MenuDelegate::ShowContextMenu(MenuItemView* source,
     53                                    int id,
     54                                    const gfx::Point& p,
     55                                    ui::MenuSourceType source_type) {
     56   return false;
     57 }
     58 
     59 bool MenuDelegate::SupportsCommand(int id) const {
     60   return true;
     61 }
     62 
     63 bool MenuDelegate::IsCommandEnabled(int id) const {
     64   return true;
     65 }
     66 
     67 bool MenuDelegate::IsCommandVisible(int id) const {
     68   return true;
     69 }
     70 
     71 bool MenuDelegate::GetContextualLabel(int id, base::string16* out) const {
     72   return false;
     73 }
     74 
     75 bool MenuDelegate::ShouldCloseAllMenusOnExecute(int id) {
     76   return true;
     77 }
     78 
     79 void MenuDelegate::ExecuteCommand(int id, int mouse_event_flags) {
     80   ExecuteCommand(id);
     81 }
     82 
     83 bool MenuDelegate::ShouldExecuteCommandWithoutClosingMenu(int id,
     84                                                           const ui::Event& e) {
     85   return false;
     86 }
     87 
     88 bool MenuDelegate::IsTriggerableEvent(MenuItemView* source,
     89                                       const ui::Event& e) {
     90   return e.type() == ui::ET_GESTURE_TAP ||
     91          e.type() == ui::ET_GESTURE_TAP_DOWN ||
     92          (e.IsMouseEvent() && (e.flags() &
     93               (ui::EF_LEFT_MOUSE_BUTTON | ui::EF_RIGHT_MOUSE_BUTTON)));
     94 }
     95 
     96 bool MenuDelegate::CanDrop(MenuItemView* menu, const OSExchangeData& data) {
     97   return false;
     98 }
     99 
    100 bool MenuDelegate::GetDropFormats(
    101     MenuItemView* menu,
    102     int* formats,
    103     std::set<OSExchangeData::CustomFormat>* custom_formats) {
    104   return false;
    105 }
    106 
    107 bool MenuDelegate::AreDropTypesRequired(MenuItemView* menu) {
    108   return false;
    109 }
    110 
    111 int MenuDelegate::GetDropOperation(MenuItemView* item,
    112                                    const ui::DropTargetEvent& event,
    113                                    DropPosition* position) {
    114   NOTREACHED() << "If you override CanDrop, you need to override this too";
    115   return ui::DragDropTypes::DRAG_NONE;
    116 }
    117 
    118 int MenuDelegate::OnPerformDrop(MenuItemView* menu,
    119                                 DropPosition position,
    120                                 const ui::DropTargetEvent& event) {
    121   NOTREACHED() << "If you override CanDrop, you need to override this too";
    122   return ui::DragDropTypes::DRAG_NONE;
    123 }
    124 
    125 bool MenuDelegate::CanDrag(MenuItemView* menu) {
    126   return false;
    127 }
    128 
    129 void MenuDelegate::WriteDragData(MenuItemView* sender, OSExchangeData* data) {
    130   NOTREACHED() << "If you override CanDrag, you must override this too.";
    131 }
    132 
    133 int MenuDelegate::GetDragOperations(MenuItemView* sender) {
    134   NOTREACHED() << "If you override CanDrag, you must override this too.";
    135   return 0;
    136 }
    137 
    138 MenuItemView* MenuDelegate::GetSiblingMenu(MenuItemView* menu,
    139                                            const gfx::Point& screen_point,
    140                                            MenuAnchorPosition* anchor,
    141                                            bool* has_mnemonics,
    142                                            MenuButton** button) {
    143   return NULL;
    144 }
    145 
    146 int MenuDelegate::GetMaxWidthForMenu(MenuItemView* menu) {
    147   // NOTE: this needs to be large enough to accommodate the wrench menu with
    148   // big fonts.
    149   return 800;
    150 }
    151 
    152 void MenuDelegate::WillShowMenu(MenuItemView* menu) {
    153 }
    154 
    155 void MenuDelegate::WillHideMenu(MenuItemView* menu) {
    156 }
    157 
    158 void MenuDelegate::GetHorizontalIconMargins(int command_id,
    159                                             int icon_size,
    160                                             int* left_margin,
    161                                             int* right_margin) const {
    162   *left_margin = 0;
    163   *right_margin = 0;
    164 }
    165 
    166 bool MenuDelegate::ShouldReserveSpaceForSubmenuIndicator() const {
    167   return true;
    168 }
    169 
    170 }  // namespace views
    171