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