| // Copyright 2017 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. |
| // This file contains the definition of SurfaceRelation and its properties. |
| |
| library fuchsia.modular; |
| |
| /// Describes the relationship between two Surfaces. |
| /// Provides information to the StoryShell for layout optimization. |
| type SurfaceRelation = struct { |
| /// Advice on arranging these surfaces on the screen together. |
| @allow_deprecated_struct_defaults |
| arrangement SurfaceArrangement = SurfaceArrangement.NONE; |
| |
| /// Advice for dismissal of surfaces to be linked. |
| @allow_deprecated_struct_defaults |
| dependency SurfaceDependency = SurfaceDependency.NONE; |
| |
| /// Relative emphasis of the child surface, relative to the parent. |
| /// Influences relative areas of surfaces on screen. |
| @allow_deprecated_struct_defaults |
| emphasis float32 = 1.0; |
| }; |
| |
| /// Expresses arrangement type. |
| type SurfaceArrangement = strict enum { |
| /// No arrangement specified. |
| NONE = 0; |
| |
| /// Desire to present simultaneously. |
| COPRESENT = 1; |
| |
| /// The parent prefers to not be presented simultaneously with its child. |
| /// (The child may still become part of a simultaneous presentation depending |
| /// on the relationships between it and subsequently added surfaces). |
| SEQUENTIAL = 2; |
| |
| /// Place this surface on top of and obscuring the parent surface. This is a |
| /// complete replacement, not a modal or inset presentation. |
| ONTOP = 3; |
| }; |
| |
| /// Links surface dismissal. |
| type SurfaceDependency = strict enum { |
| /// No dependency specified. |
| NONE = 0; |
| |
| /// Child is dependent on parent. |
| /// If parent is dismissed, child is dismissed as well. |
| DEPENDENT = 1; |
| }; |