// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/views/controls/menu/menu_delegate.h"
#include "ui/events/event.h"
#include "ui/views/controls/menu/menu_config.h"
namespace views {
MenuDelegate::~MenuDelegate() {}
bool MenuDelegate::IsItemChecked(int id) const {
return false;
}
base::string16 MenuDelegate::GetLabel(int id) const {
return base::string16();
}
const gfx::FontList* MenuDelegate::GetLabelFontList(int id) const {
return NULL;
}
bool MenuDelegate::GetShouldUseDisabledEmphasizedForegroundColor(
int command_id) const {
return false;
}
bool MenuDelegate::GetBackgroundColor(int command_id,
bool is_hovered,
SkColor* override_color) const {
return false;
}
bool MenuDelegate::GetForegroundColor(int command_id,
bool is_hovered,
SkColor* override_color) const {
return false;
}
base::string16 MenuDelegate::GetTooltipText(int id,
const gfx::Point& screen_loc) const {
return base::string16();
}
bool MenuDelegate::GetAccelerator(int id, ui::Accelerator* accelerator) const {
return false;
}
bool MenuDelegate::ShowContextMenu(MenuItemView* source,
int id,
const gfx::Point& p,
ui::MenuSourceType source_type) {
return false;
}
bool MenuDelegate::SupportsCommand(int id) const {
return true;
}
bool MenuDelegate::IsCommandEnabled(int id) const {
return true;
}
bool MenuDelegate::IsCommandVisible(int id) const {
return true;
}
bool MenuDelegate::GetContextualLabel(int id, base::string16* out) const {
return false;
}
bool MenuDelegate::ShouldCloseAllMenusOnExecute(int id) {
return true;
}
void MenuDelegate::ExecuteCommand(int id, int mouse_event_flags) {
ExecuteCommand(id);
}
bool MenuDelegate::ShouldExecuteCommandWithoutClosingMenu(int id,
const ui::Event& e) {
return false;
}
bool MenuDelegate::IsTriggerableEvent(MenuItemView* source,
const ui::Event& e) {
return e.type() == ui::ET_GESTURE_TAP ||
e.type() == ui::ET_GESTURE_TAP_DOWN ||
(e.IsMouseEvent() && (e.flags() &
(ui::EF_LEFT_MOUSE_BUTTON | ui::EF_RIGHT_MOUSE_BUTTON)));
}
bool MenuDelegate::CanDrop(MenuItemView* menu, const OSExchangeData& data) {
return false;
}
bool MenuDelegate::GetDropFormats(
MenuItemView* menu,
int* formats,
std::set<OSExchangeData::CustomFormat>* custom_formats) {
return false;
}
bool MenuDelegate::AreDropTypesRequired(MenuItemView* menu) {
return false;
}
int MenuDelegate::GetDropOperation(MenuItemView* item,
const ui::DropTargetEvent& event,
DropPosition* position) {
NOTREACHED() << "If you override CanDrop, you need to override this too";
return ui::DragDropTypes::DRAG_NONE;
}
int MenuDelegate::OnPerformDrop(MenuItemView* menu,
DropPosition position,
const ui::DropTargetEvent& event) {
NOTREACHED() << "If you override CanDrop, you need to override this too";
return ui::DragDropTypes::DRAG_NONE;
}
bool MenuDelegate::CanDrag(MenuItemView* menu) {
return false;
}
void MenuDelegate::WriteDragData(MenuItemView* sender, OSExchangeData* data) {
NOTREACHED() << "If you override CanDrag, you must override this too.";
}
int MenuDelegate::GetDragOperations(MenuItemView* sender) {
NOTREACHED() << "If you override CanDrag, you must override this too.";
return 0;
}
MenuItemView* MenuDelegate::GetSiblingMenu(MenuItemView* menu,
const gfx::Point& screen_point,
MenuAnchorPosition* anchor,
bool* has_mnemonics,
MenuButton** button) {
return NULL;
}
int MenuDelegate::GetMaxWidthForMenu(MenuItemView* menu) {
// NOTE: this needs to be large enough to accommodate the wrench menu with
// big fonts.
return 800;
}
void MenuDelegate::WillShowMenu(MenuItemView* menu) {
}
void MenuDelegate::WillHideMenu(MenuItemView* menu) {
}
void MenuDelegate::GetHorizontalIconMargins(int command_id,
int icon_size,
int* left_margin,
int* right_margin) const {
*left_margin = 0;
*right_margin = 0;
}
bool MenuDelegate::ShouldReserveSpaceForSubmenuIndicator() const {
return true;
}
} // namespace views