15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// found in the LICENSE file.
45f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#ifndef MOJO_SERVICES_PUBLIC_CPP_VIEW_MANAGER_WINDOW_MANAGER_DELEGATE_H_
65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#define MOJO_SERVICES_PUBLIC_CPP_VIEW_MANAGER_WINDOW_MANAGER_DELEGATE_H_
75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
86e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "mojo/public/interfaces/application/service_provider.mojom.h"
95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "mojo/services/public/interfaces/input_events/input_events.mojom.h"
105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace mojo {
125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class View;
145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// A WindowManagerDelegate is provided by the application embedded at the
166e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// service root view.
175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class WindowManagerDelegate {
185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public:
196e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  // Create an appropriate view to embed |url|.
206e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual void Embed(const String& url,
216e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)                     InterfaceRequest<ServiceProvider> service_provider) {}
225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  // Dispatch the supplied input event to the appropriate view (taking into
245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  // account focus, activation, modality, etc.).
256e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual void DispatchEvent(EventPtr event) = 0;
265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) protected:
285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  virtual ~WindowManagerDelegate() {}
295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)};
305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}  // namespace mojo
325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#endif  // MOJO_SERVICES_PUBLIC_CPP_VIEW_MANAGER_WINDOW_MANAGER_DELEGATE_H_
34