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 {