blob: c8c7b0bece2fefced6ac759c10c8caf6e7ca2309 [file] [log] [blame]
// 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.views;
/// The Presenter service provides a way for applications to ask that a view be
/// added to a view tree, leaving any window management concerns up to the
/// discretion of the presenter implementation.
@discoverable
@available(deprecated=10, removed=14, note="Instead, use fuchsia.element.GraphicalPresenter")
closed protocol Presenter {
/// Request that the View's contents be displayed on the screen as a `Presentation`.
/// Each call to `PresentView` creates a new `Presentation`. Having more than one simultaneous
/// `Presentation` (i.e. calling `PresentView` more than once) is not allowed and will result
// in an error and channel closure.
strict PresentView(resource struct {
view_holder_token fuchsia.ui.views.ViewHolderToken;
presentation_request server_end:<Presentation, optional>;
});
/// Request that the View's contents be displayed on the screen as a `Presentation`.
/// Destroys any existing presentations and replaces them with the new one.
/// This is true whether the existing view was created by a call to
/// PresentView, PresentOrReplaceView or PresentOrReplaceView2.
strict PresentOrReplaceView(resource struct {
view_holder_token fuchsia.ui.views.ViewHolderToken;
presentation_request server_end:<Presentation, optional>;
});
// Same as PresentOrReplaceView, except it also takes a ViewRef.
// The ViewRef should be referring to the same View as the ViewHolderToken.
// The ViewRef is used for transfering focus the View after initialization.
strict PresentOrReplaceView2(resource struct {
view_holder_token fuchsia.ui.views.ViewHolderToken;
view_ref fuchsia.ui.views.ViewRef;
presentation_request server_end:<Presentation, optional>;
});
};