using System.Windows; namespace WandEnhancer.View.MainWindow { /// /// What the view model needs from the shell window. Exists so the view model does not /// hold the concrete window or reach through a static Instance, which made every command /// untestable and crashed whenever the singleton was not set yet. /// public interface IShellView { void OpenPopup(FrameworkElement content, string title); void ClosePopup(); void ScrollLogIntoView(LogEntry entry); } /// Modal file/folder pickers, kept behind a seam so commands stay headless-testable. public interface IFileDialogs { /// Chosen folder, or null when cancelled. string PickFolder(string description, string initialPath); /// Chosen file path, or null when cancelled. string PickSaveFile(string filter, string suggestedFileName); } }