1// Copyright 2014 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.
4
5#include "ui/views/controls/menu/menu_message_loop_mac.h"
6
7#include "base/logging.h"
8#include "base/message_loop/message_loop.h"
9#include "base/run_loop.h"
10#include "ui/gfx/geometry/point.h"
11
12namespace views {
13
14// static
15MenuMessageLoop* MenuMessageLoop::Create() {
16  return new MenuMessageLoopMac;
17}
18
19MenuMessageLoopMac::MenuMessageLoopMac() {
20}
21
22MenuMessageLoopMac::~MenuMessageLoopMac() {
23}
24
25void MenuMessageLoopMac::RepostEventToWindow(const ui::LocatedEvent& event,
26                                             gfx::NativeWindow window,
27                                             const gfx::Point& screen_loc) {
28  NOTIMPLEMENTED();
29}
30
31void MenuMessageLoopMac::Run(MenuController* controller,
32                             Widget* owner,
33                             bool nested_menu) {
34  base::MessageLoopForUI* loop = base::MessageLoopForUI::current();
35  base::MessageLoop::ScopedNestableTaskAllower allow(loop);
36  base::RunLoop run_loop;
37  run_loop.Run();
38}
39
40bool MenuMessageLoopMac::ShouldQuitNow() const {
41  return true;
42}
43
44void MenuMessageLoopMac::QuitNow() {
45  base::MessageLoop::current()->QuitNow();
46}
47
48void MenuMessageLoopMac::ClearOwner() {
49}
50
51}  // namespace views
52