// Copyright (c) Arlo Godfrey. All Rights Reserved. // Licensed under the GNU Lesser General Public License, Version 3.0 with additional terms. // See the LICENSE, LICENSE.LESSER and LICENSE.ADDITIONAL files in the project root for more information. using System; using OwlCore.AbstractUI.Models; using StrixMusic.Sdk.AppModels; namespace StrixMusic.Sdk.Services { /// /// A service that facilitates raising s. /// public interface INotificationService { /// /// The maximum number of notification that will be raised at once. Dismiss a notification to show remaining notifications in the queue. /// public int MaxActiveNotifications { get; } /// /// Enqueue a notification for the Shell to display. /// /// The title for the notification. /// The body content for the notification. /// The created notification. [System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1030:Use events where appropriate", Justification = "Method raises event")] Notification RaiseNotification(string title, string message = ""); /// /// Enqueue a notification for the Shell to display. /// /// The created notification. [System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1030:Use events where appropriate", Justification = "Method raises event")] Notification RaiseNotification(AbstractUICollection elementGroup); /// /// Raised when a new notification needs to be displayed. /// public event EventHandler? NotificationRaised; /// /// Raised when the user dismisses a notification. /// public event EventHandler? NotificationDismissed; } }