using System.Collections.Generic; using JetBrains.Annotations; using Unity.Cloud.Collaborate.Models.Structures; using Unity.Cloud.Collaborate.Presenters; namespace Unity.Cloud.Collaborate.Views { internal interface IChangesView : IView { /// /// Set busy status in the view. /// /// Whether or not the presenter is busy with a request. void SetBusyStatus(bool busy); /// /// Set the search query in the view. /// /// Latest search query to set. void SetSearchQuery([NotNull] string query); /// /// Set the revision summary in the view. /// /// Latest summary to set. void SetRevisionSummary([NotNull] string message); /// /// Set the conflicts to be displayed. /// /// List of conflicts to display. void SetConflicts([NotNull] IReadOnlyList list); /// /// Set the changes to be selected. /// void SetSelectedChanges(); /// /// Set the changes to be displayed. /// /// List of changes to be displayed. void SetChanges([NotNull] IReadOnlyList list); /// /// Set the count of toggled entries. /// /// Latest toggled count. void SetToggledCount(int count); /// /// Enable or disable the publish button based on the provided values. The optional reason is to be used as a /// hint to users about why the functionality is blocked. /// /// Whether or not the publish is to be enabled. /// Reason for the publish to be disabled. void SetPublishEnabled(bool enabled, [CanBeNull] string reason = null); /// /// Display a dialogue to the user. /// /// Title for the dialogue. /// Message inside the dialogue. /// Affirmative button text. /// True if affirmative is clicked. bool DisplayDialogue([NotNull] string title, [NotNull] string message, [NotNull] string affirmative); /// /// Display a dialogue to the user. /// /// Title for the dialogue. /// Message inside the dialogue. /// Affirmative button text. /// Negative button text. /// True if affirmative is clicked. bool DisplayDialogue([NotNull] string title, [NotNull] string message, [NotNull] string affirmative, [NotNull] string negative); } }