| // 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 = NONE; |
| |
| // Advice for dismissal of surfaces to be linked. |
| SurfaceDependency dependency = 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; |
| }; |