namespace MmdPdf.Features { /// /// What SearchController needs from the window hosting it, beyond the shared shell services. /// Values and intents only, never a control - the highlight painting itself stays in the /// shell (Shell/Search.cs), because it draws onto the page overlay canvases. /// internal interface ISearchHost : IShellServices { /// Path of the working (temp) file the search reads. Null when no document. string? CurrentFile { get; } /// The page currently selected in the sidebar/page list. int CurrentPageIndex { get; } /// Navigates to the page (the match being stepped to lives there). void GoToPage(int pageIdx); /// Writes the result counter's text only ("", "No matches", "Search error"), /// leaving the tooltip alone - mirrors what the old code did on those paths. void SetResultText(string text); /// Writes the "12 / 73" counter and its page-breakdown tooltip. void SetResultCount(string text, string? tooltip); /// Removes every highlight rectangle from the page overlays. void ClearHighlights(); /// Repaints highlights on every page on screen right now, with the current /// match emphasized. void RepaintHighlights(); } }