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::GetContextualLabel(int id
, base::string16
* out
) const {
71 bool MenuDelegate::ShouldCloseAllMenusOnExecute(int id
) {
75 void MenuDelegate::ExecuteCommand(int id
, int mouse_event_flags
) {
79 bool MenuDelegate::ShouldExecuteCommandWithoutClosingMenu(int id
,
84 bool MenuDelegate::IsTriggerableEvent(MenuItemView
* source
,
86 return e
.type() == ui::ET_GESTURE_TAP
||
87 e
.type() == ui::ET_GESTURE_TAP_DOWN
||
88 (e
.IsMouseEvent() && (e
.flags() &
89 (ui::EF_LEFT_MOUSE_BUTTON
| ui::EF_RIGHT_MOUSE_BUTTON
)));
92 bool MenuDelegate::CanDrop(MenuItemView
* menu
, const OSExchangeData
& data
) {
96 bool MenuDelegate::GetDropFormats(
99 std::set
<OSExchangeData::CustomFormat
>* custom_formats
) {
103 bool MenuDelegate::AreDropTypesRequired(MenuItemView
* menu
) {
107 int MenuDelegate::GetDropOperation(MenuItemView
* item
,
108 const ui::DropTargetEvent
& event
,
109 DropPosition
* position
) {
110 NOTREACHED() << "If you override CanDrop, you need to override this too";
111 return ui::DragDropTypes::DRAG_NONE
;
114 int MenuDelegate::OnPerformDrop(MenuItemView
* menu
,
115 DropPosition position
,
116 const ui::DropTargetEvent
& event
) {
117 NOTREACHED() << "If you override CanDrop, you need to override this too";
118 return ui::DragDropTypes::DRAG_NONE
;
121 bool MenuDelegate::CanDrag(MenuItemView
* menu
) {
125 void MenuDelegate::WriteDragData(MenuItemView
* sender
, OSExchangeData
* data
) {
126 NOTREACHED() << "If you override CanDrag, you must override this too.";
129 int MenuDelegate::GetDragOperations(MenuItemView
* sender
) {
130 NOTREACHED() << "If you override CanDrag, you must override this too.";
134 bool MenuDelegate::ShouldCloseOnDragComplete() {
138 MenuItemView
* MenuDelegate::GetSiblingMenu(MenuItemView
* menu
,
139 const gfx::Point
& screen_point
,
140 MenuAnchorPosition
* anchor
,
142 MenuButton
** button
) {
146 int MenuDelegate::GetMaxWidthForMenu(MenuItemView
* menu
) {
147 // NOTE: this needs to be large enough to accommodate the wrench menu with
152 void MenuDelegate::WillShowMenu(MenuItemView
* menu
) {
155 void MenuDelegate::WillHideMenu(MenuItemView
* menu
) {
158 void MenuDelegate::GetHorizontalIconMargins(int command_id
,
161 int* right_margin
) const {
166 bool MenuDelegate::ShouldReserveSpaceForSubmenuIndicator() const {