// Copyright (c) 2013 GitHub, Inc. All rights reserved. // Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by the MIT license that can be // found in the LICENSE file. #include "atom/browser/ui/win/menu_2.h" #include "ui/base/models/menu_model.h" #include "ui/views/controls/menu/menu_listener.h" // Really bad hack here, renaming all class names would be too much work. using namespace views; // NOLINT namespace atom { Menu2::Menu2(ui::MenuModel* model, bool as_window_menu) : model_(model), wrapper_(new NativeMenuWin(model, NULL)) { wrapper_->set_create_as_window_menu(as_window_menu); Rebuild(); } Menu2::~Menu2() {} HMENU Menu2::GetNativeMenu() const { return wrapper_->GetNativeMenu(); } void Menu2::RunMenuAt(const gfx::Point& point, Alignment alignment) { wrapper_->RunMenuAt(point, alignment); } void Menu2::RunContextMenuAt(const gfx::Point& point) { RunMenuAt(point, ALIGN_TOPLEFT); } void Menu2::CancelMenu() { wrapper_->CancelMenu(); } void Menu2::Rebuild() { wrapper_->Rebuild(NULL); } void Menu2::UpdateStates() { wrapper_->UpdateStates(); } NativeMenuWin::MenuAction Menu2::GetMenuAction() const { return wrapper_->GetMenuAction(); } void Menu2::AddMenuListener(MenuListener* listener) { wrapper_->AddMenuListener(listener); } void Menu2::RemoveMenuListener(MenuListener* listener) { wrapper_->RemoveMenuListener(listener); } void Menu2::SetMinimumWidth(int width) { wrapper_->SetMinimumWidth(width); } } // namespace atom