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)#ifndef UI_VIEWS_CONTROLS_MENU_MENU_MESSAGE_LOOP_AURA_H_ 6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define UI_VIEWS_CONTROLS_MENU_MENU_MESSAGE_LOOP_AURA_H_ 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/callback.h" 9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/compiler_specific.h" 10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "ui/views/controls/menu/menu_message_loop.h" 12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace base { 14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class MessagePumpDispatcher; 15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace ui { 18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class ScopedEventDispatcher; 19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace views { 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class MenuMessageLoopAura : public MenuMessageLoop { 24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public: 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) MenuMessageLoopAura(); 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual ~MenuMessageLoopAura(); 27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Overridden from MenuMessageLoop: 29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void Run(MenuController* controller, 30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) Widget* owner, 31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) bool nested_menu) OVERRIDE; 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual bool ShouldQuitNow() const OVERRIDE; 33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void QuitNow() OVERRIDE; 34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void RepostEventToWindow(const ui::LocatedEvent& event, 35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) gfx::NativeWindow window, 36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) const gfx::Point& screen_loc) OVERRIDE; 37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void ClearOwner() OVERRIDE; 38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) private: 40cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Owner of child windows. 41cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // WARNING: this may be NULL. 42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) Widget* owner_; 43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) scoped_ptr<ui::ScopedEventDispatcher> nested_dispatcher_; 45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) base::Closure message_loop_quit_; 46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MenuMessageLoopAura); 48cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 50cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} // namespace views 51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 52cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif // UI_VIEWS_CONTROLS_MENU_MENU_MESSAGE_LOOP_AURA_H_ 53