| // 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. |
| struct SurfaceRelation { |
| /// Advice on arranging these surfaces on the screen together. |
| SurfaceArrangement arrangement = SurfaceArrangement.NONE; |
| |
| /// Advice for dismissal of surfaces to be linked. |
| SurfaceDependency dependency = SurfaceDependency.NONE; |
| |
| /// Relative emphasis of the child surface, relative to the parent. |
| /// Influences relative areas of surfaces on screen. |
| float32 emphasis = 1.0; |
| }; |
| |
| /// Expresses arrangement type. |
| enum SurfaceArrangement { |
| /// 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. |
| enum SurfaceDependency { |
| /// No dependency specified. |
| NONE = 0; |
| |
| /// Child is dependent on parent. |
| /// If parent is dismissed, child is dismissed as well. |
| DEPENDENT = 1; |
| }; |