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.
5 #include "ui/views/controls/menu/menu_delegate.h"
7 #include "ui/events/event.h"
8 #include "ui/views/controls/menu/menu_config.h"
12 MenuDelegate::~MenuDelegate() {}
14 bool MenuDelegate::IsItemChecked(int id) const {
18 base::string16 MenuDelegate::GetLabel(int id) const {
19 return base::string16();
22 const gfx::FontList* MenuDelegate::GetLabelFontList(int id) const {
26 bool MenuDelegate::GetShouldUseDisabledEmphasizedForegroundColor(
27 int command_id) const {
31 bool MenuDelegate::GetBackgroundColor(int command_id,
33 SkColor* override_color) const {
37 bool MenuDelegate::GetForegroundColor(int command_id,
39 SkColor* override_color) const {
43 base::string16 MenuDelegate::GetTooltipText(int id,
44 const gfx::Point& screen_loc) const {
45 return base::string16();
48 bool MenuDelegate::GetAccelerator(int id, ui::Accelerator* accelerator) const {
52 bool MenuDelegate::ShowContextMenu(MenuItemView* source,
55 ui::MenuSourceType source_type) {
59 bool MenuDelegate::SupportsCommand(int id) const {
63 bool MenuDelegate::IsCommandEnabled(int id) const {
67 bool MenuDelegate::IsCommandVisible(int id) const {
71 bool MenuDelegate::GetContextualLabel(int id, base::string16* out) const {
75 bool MenuDelegate::ShouldCloseAllMenusOnExecute(int id) {
79 void MenuDelegate::ExecuteCommand(int id, int mouse_event_flags) {
83 bool MenuDelegate::ShouldExecuteCommandWithoutClosingMenu(int id,
88 bool MenuDelegate::IsTriggerableEvent(MenuItemView* source,
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)));
96 bool MenuDelegate::CanDrop(MenuItemView* menu, const OSExchangeData& data) {
100 bool MenuDelegate::GetDropFormats(
103 std::set<OSExchangeData::CustomFormat>* custom_formats) {
107 bool MenuDelegate::AreDropTypesRequired(MenuItemView* menu) {
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;
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;
125 bool MenuDelegate::CanDrag(MenuItemView* menu) {
129 void MenuDelegate::WriteDragData(MenuItemView* sender, OSExchangeData* data) {
130 NOTREACHED() << "If you override CanDrag, you must override this too.";
133 int MenuDelegate::GetDragOperations(MenuItemView* sender) {
134 NOTREACHED() << "If you override CanDrag, you must override this too.";
138 bool MenuDelegate::ShouldCloseOnDragComplete() {
142 MenuItemView* MenuDelegate::GetSiblingMenu(MenuItemView* menu,
143 const gfx::Point& screen_point,
144 MenuAnchorPosition* anchor,
146 MenuButton** button) {
150 int MenuDelegate::GetMaxWidthForMenu(MenuItemView* menu) {
151 // NOTE: this needs to be large enough to accommodate the wrench menu with
156 void MenuDelegate::WillShowMenu(MenuItemView* menu) {
159 void MenuDelegate::WillHideMenu(MenuItemView* menu) {
162 void MenuDelegate::GetHorizontalIconMargins(int command_id,
165 int* right_margin) const {
170 bool MenuDelegate::ShouldReserveSpaceForSubmenuIndicator() const {