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