1c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// Use of this source code is governed by a BSD-style license that can be
3c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// found in the LICENSE file.
4c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
5c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include "ui/views/controls/menu/menu_2.h"
6c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
7c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include "ui/base/models/menu_model.h"
8c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include "ui/views/controls/menu/menu_listener.h"
9c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
10c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathnamespace views {
11c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
12c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathMenu2::Menu2(ui::MenuModel* model)
13c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    : model_(model),
14c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      wrapper_(MenuWrapper::CreateWrapper(model)) {
15c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  Rebuild();
16c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath}
17c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
18c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathMenu2::~Menu2() {}
19c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
20c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathHMENU Menu2::GetNativeMenu() const {
21c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  return wrapper_->GetNativeMenu();
22c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath}
23c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
24c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathvoid Menu2::RunMenuAt(const gfx::Point& point, Alignment alignment) {
25c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  wrapper_->RunMenuAt(point, alignment);
26c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath}
27c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
28c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathvoid Menu2::RunContextMenuAt(const gfx::Point& point) {
29c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  RunMenuAt(point, ALIGN_TOPLEFT);
30c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath}
31c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
32c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathvoid Menu2::CancelMenu() {
33c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  wrapper_->CancelMenu();
34c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath}
35c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
36c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathvoid Menu2::Rebuild() {
37c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  wrapper_->Rebuild(NULL);
38c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath}
39c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
40c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathvoid Menu2::UpdateStates() {
41c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  wrapper_->UpdateStates();
42c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath}
43c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
44c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathMenuWrapper::MenuAction Menu2::GetMenuAction() const {
45c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  return wrapper_->GetMenuAction();
46c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath}
47c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
48c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathvoid Menu2::AddMenuListener(MenuListener* listener) {
49c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  wrapper_->AddMenuListener(listener);
50c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath}
51c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
52c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathvoid Menu2::RemoveMenuListener(MenuListener* listener) {
53c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  wrapper_->RemoveMenuListener(listener);
54c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath}
55c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
56c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathvoid Menu2::SetMinimumWidth(int width) {
57c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  wrapper_->SetMinimumWidth(width);
58c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath}
59c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
60c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath}  // namespace
61c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath