liyujie
2025-08-28 d9927380ed7c8366f762049be9f3fee225860833
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// Copyright 2016 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
 
library fuchsia.ui.policy;
 
using fuchsia.ui.gfx;
using fuchsia.ui.viewsv1token;
 
// The Presenter service provides a way for applications to ask that a
// specified view be added to a view tree, leaving any window management
// concerns up to the discretion of the presenter implementation.
//
// TODO(SCN-599): this will be replaced by Presenter2
[Discoverable]
interface Presenter {
    1: Present2(handle<eventpair> view_owner_token, request<Presentation>? presentation_request);
 
    // Sets new default renderer params and forces them on for the duration of the
    // presenter's lifetime. Only applies to any subsequent calls to Present().
    // Used for testing.
    2: HACK_SetRendererParams(bool enable_clipping, vector<fuchsia.ui.gfx.RendererParam> params);
 
    // Set the input path. Root presenter will send to ViewManager (legacy) or Scenic.
    3: HACK_SetInputPath(bool use_legacy);
 
    // Query the input path. Return true if ViewManager receives input.
    4: HACK_QueryInputPath() -> (bool use_legacy);
};
 
// The Presenter service provides a way for applications to ask that a
// specified view be added to a view tree, leaving any window management
// concerns up to the discretion of the presenter implementation.
//
// TODO(SCN-595): this is the new presenter interface, which will be renamed
// to Presenter after the original is deleted.
[Discoverable]
interface Presenter2 {
    // Usage: the client creates a pair of eventpairs and uses one to create a
    // View in their Scenic session.  The other eventpair is passed to this
    // method as |view_holder_token|; the Presenter2 service will use this to
    // create a ViewHolder which is embedded within an appropriate Scenic scene,
    // such that the client View it will receive input events, etc.
    1: PresentView(handle<eventpair> view_holder_token, request<Presentation>? presentation_request);
};