class CreateView

Defined at line 368 of file fidling/gen/sdk/fidl/fuchsia.ui.composition/fuchsia.ui.composition/cpp/fidl/fuchsia.ui.composition/cpp/markers.h

Two Flatland instances may be connected in a parent-child relationship. The parent endpoint

is held in a Viewport, and the child endpoint is held in a View. The parent Flatland

instance that creates a Viewport has control over how the child's View is integrated into

its own View.

The lifecycle of a parent-child connection starts with two endpoints of a channel object:

a ViewportCreationToken and a ViewCreationToken. Out-of-band protocols pass the

ViewportCreationToken to the parent, which calls [`CreateViewport`], and the

ViewCreationToken to the child, which calls [`CreateView`].

Only nodes connected to the Root Transform in this Flatland instance will be rendered into

the parent's Viewport.

Calling [`CreateView`] a second time will disconnect the Root Transform from the existing

parent's Viewport, and attach it to a new parent's Viewport. In other words, each View can

only have one parent.

This function is queued, meaning that the Root Transform will not be attached to the

parent Viewport until [`Present`] is called. However, clients will receive information

through their ParentViewportWatcher (e.g., LayoutInfo) immediately after calling this

function, even if they have not called [`Present`] or [`SetRootTransform`]. This allows

clients to wait for layout information from their parent before calling [`Present`].

Any illegal operations on ParentViewportWatcher will cause both ParentViewportWatcher

channel and this Flatland channel to be torn down.

Lifecycle note. The lifetime of the ParentViewportWatcher channel is bound by the peer

ViewportCreationToken. When the ViewportCreationToken dies, this ParentViewportWatcher

channel is destroyed.

Views and subgraphs of Views created using `CreateView` will not be represented in the

ViewTree, and hence will not be able to participate in any ViewTree-dependent interactions

such as touch, mouse or focus.

The Flatland protocol provides no way for Views in the subgraph of a View created with

`CreateView` to know that they are excluded from the ViewTree.

Public Members

static const bool kHasClientToServer
static const bool kHasClientToServerBody
static const bool kHasServerToClient
static const bool kHasServerToClientBody
static const bool kHasNonEmptyUserFacingResponse
static const bool kHasDomainError
static const bool kHasFrameworkError
static const uint64_t kOrdinal