| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| [DartPackage="mojo_services"] |
| module mojo; |
| |
| import "input_events/interfaces/input_events.mojom"; |
| import "mojo/public/interfaces/application/service_provider.mojom"; |
| |
| [ServiceName="mojo::WindowManager"] |
| interface WindowManager { |
| // Requests the WindowManager to embed the app for |url| at an appropriate |
| // View. See ViewMangerService::Embed() for details on |services| and |
| // |exposed_services|. |
| Embed(string url, |
| ServiceProvider&? services, |
| ServiceProvider? exposed_services); |
| |
| SetCapture(uint32 view_id) => (bool success); |
| FocusWindow(uint32 view_id) => (bool success); |
| ActivateWindow(uint32 view_id) => (bool success); |
| |
| // Requests the current focus and activation state and an interface to observe |
| // future changes. |
| // If |observer| is not null capture, focus and activation updates will be |
| // sent to it. |
| GetFocusedAndActiveViews(WindowManagerObserver? observer) |
| => (uint32 capture_view_id, |
| uint32 focused_view_id, |
| uint32 active_view_id); |
| }; |
| |
| interface WindowManagerObserver { |
| OnCaptureChanged(uint32 capture_view_id); |
| OnFocusChanged(uint32 focused_view_id); |
| OnActiveWindowChanged(uint32 focused_view_id); |
| }; |