using JetBrains.Annotations; using Unity.Cloud.Collaborate.Models.Structures; namespace Unity.Cloud.Collaborate.Presenters { internal interface IChangesPresenter : IPresenter { /// /// Count of the number of toggled entries. /// int ToggledCount { get; } /// /// Count of the total number of entries. /// int TotalCount { get; } /// /// Count of the number of conflicted entries. /// int ConflictedCount { get; } /// /// Whether or no a search is occuring. /// bool Searching { get; } /// /// Toggles or untoggles the entry associated with the give path. If the toggle impacts more than the existing /// entry, then this will return true to indicate that the toggled states must be refreshed. /// /// Path of the associated entry. /// Whether or not the entry is now toggled. /// True if the list must be refreshed. bool UpdateEntryToggle([NotNull] string path, bool toggled); /// /// Request a publish with the existing values known by the presenter. /// void RequestPublish(); /// /// Request a discard for the file at the given path. /// /// Entry to discard. void RequestDiscard([NotNull] IChangeEntry entry); /// /// Request a diff of the file at the given path. /// /// Path of the file to diff. void RequestDiffChanges([NotNull] string path); /// /// Provide the presenter with the latest search query. /// /// Latest search query. void SetSearchQuery([NotNull] string query); /// /// Provide the latest revision summary to the presenter. /// /// Latest commit message. void SetRevisionSummary([NotNull] string message); /// /// Number of entries in the group overflow menu. /// int GroupOverflowEntryCount { get; } /// /// Event handler for clicking the overflow button in the changes list. /// /// X position of the click. /// Y position of the click. void OnClickGroupOverflow(float x, float y); /// /// Number of entries in the conflict group overflow menu. /// int ConflictGroupOverflowEntryCount { get; } /// /// Event handler for clicking the overflow button in the conflicts list. /// /// X position of the click. /// Y position of the click. void OnClickConflictGroupOverflow(float x, float y); /// /// Show the difference between both version of a conlicted file. /// /// Path of the file to show. void RequestShowConflictedDifferences([NotNull] string path); /// /// Request to choose merge for the provided conflict. /// /// Path of the file to choose merge for. void RequestChooseMerge([NotNull] string path); /// /// Request to choose mine for the provided conflict. /// /// Path of the file to choose mine for. void RequestChooseMine([NotNull] string path); /// /// Request to choose remote for the provided conflict. /// /// Path of the file to choose remote for. void RequestChooseRemote([NotNull] string path); } }