blob: 601a554f2d20f9891347bbd7bdd148b57a40a8f5 [file] [log] [blame]
// Copyright 2016 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.
library fuchsia.modular;
using fuchsia.images;
enum SuggestionImageType {
PERSON = 0;
OTHER = 1;
};
enum AnnoyanceType {
NONE = 0;
// Tiny interruptions meant to be displayed and hidden quickly without user
// interaction. Analogous to toasts. They won't reach the next space when
// ignored or missed.
PEEK = 1;
// Interruptions meant to be displayed to the user. The user could accept or
// dismiss them. They are placed in the Next space when ignored or missed.
// Analogous to notifications.
INTERRUPT = 2;
// Meant to show system errors or other extremely urgent alerts. It would
// block the rest of the interface and force the user to interact with it.
BLOCKING = 3;
};
// Information for the main image of the Suggestion.
struct SuggestionDisplayImage {
// The image as a vmo.
fuchsia.images.EncodedImage image;
// Information about the content contained in the image
SuggestionImageType image_type;
};
// TODO(thatguy): This will likely be a union eventually, with different
// display descriptions for different kinds of Suggestions.
struct SuggestionDisplay {
// Title text for this Suggestion
string headline;
// Sub-headline text to be optionally displayed with this Suggestion
string? subheadline;
// A longer details string to be optionally displayed with this Suggestion
string? details;
// Color in which the Suggestion should be displayed
// Format is 0xaarrggbb
uint32 color;
// Optional list of icons that can be displayed with the Suggestion
vector<SuggestionDisplayImage>? icons;
// Optional image to display as part of the Suggestion
SuggestionDisplayImage? image;
// How annoying should this suggestion be?
AnnoyanceType annoyance;
};