1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file.
4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "ui/views/controls/menu/menu_message_loop_mac.h"
6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/logging.h"
8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/message_loop/message_loop.h"
9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/run_loop.h"
10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "ui/gfx/geometry/point.h"
11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace views {
13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// static
15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)MenuMessageLoop* MenuMessageLoop::Create() {
16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  return new MenuMessageLoopMac;
17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)MenuMessageLoopMac::MenuMessageLoopMac() {
20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)MenuMessageLoopMac::~MenuMessageLoopMac() {
23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void MenuMessageLoopMac::RepostEventToWindow(const ui::LocatedEvent& event,
26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                                             gfx::NativeWindow window,
27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                                             const gfx::Point& screen_loc) {
28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  NOTIMPLEMENTED();
29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void MenuMessageLoopMac::Run(MenuController* controller,
32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                             Widget* owner,
33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                             bool nested_menu) {
34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  base::MessageLoopForUI* loop = base::MessageLoopForUI::current();
35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  base::MessageLoop::ScopedNestableTaskAllower allow(loop);
36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  base::RunLoop run_loop;
37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  run_loop.Run();
38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
40cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)bool MenuMessageLoopMac::ShouldQuitNow() const {
41cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  return true;
42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void MenuMessageLoopMac::QuitNow() {
45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  base::MessageLoop::current()->QuitNow();
46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
48cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void MenuMessageLoopMac::ClearOwner() {
49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
50cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}  // namespace views
52