pub enum ViewProviderRequest {
CreateViewWithViewRef {
token: EventPair,
view_ref_control: ViewRefControl,
view_ref: ViewRef,
control_handle: ViewProviderControlHandle,
},
CreateView2 {
args: CreateView2Args,
control_handle: ViewProviderControlHandle,
},
}
Expand description
ViewProvider is the standard mechanism for two modules to each obtain half of a shared eventpair token. The shared token is a capability allowing the modules to ask Scenic to create a ViewHolder/View pair. The resulting View and ViewHolder are linked together until either one is destroyed.
Modules are free to use any other mechanism to agree upon the shared eventpair token, and use this to create the linked ViewHolder/View. ViewProvider is given for the convenience of clients that don’t require a more complex implementation.
Variants§
CreateViewWithViewRef
Creates a new View under the control of the ViewProvider.
token
is one half of the shared eventpair which will bind the new View
to its associated ViewHolder. The ViewProvider will use token
to
create its internal View representation. The caller is expected to use
its half to create corresponding ViewHolder object.
view_ref_control
and view_ref
are two typed handles to each half of the
same event pair. The view_ref
can be cloned before passing it to this method,
which will allow clients to track the view (e.g., in a focus chain update).
view_ref_control
must not have the ZX_RIGHT_DUPLICATE set, or view creation
will fail.
Fields
token: EventPair
view_ref_control: ViewRefControl
view_ref: ViewRef
control_handle: ViewProviderControlHandle
CreateView2
Creates a new View under the control of the ViewProvider.
The args are provided as a table, for forward compatibility. See documentation on the individual table fields.
Implementations§
Source§impl ViewProviderRequest
impl ViewProviderRequest
pub fn into_create_view_with_view_ref( self, ) -> Option<(EventPair, ViewRefControl, ViewRef, ViewProviderControlHandle)>
pub fn into_create_view2( self, ) -> Option<(CreateView2Args, ViewProviderControlHandle)>
Sourcepub fn method_name(&self) -> &'static str
pub fn method_name(&self) -> &'static str
Name of the method defined in FIDL