private static void EraseProgressLogTrace(int cursorTop) { Console.CursorTop = cursorTop; Console.CursorLeft = 0; ConsoleUtils.ShowNLinesOnConsole(4, ConsoleColor.Black); Console.CursorTop = cursorTop; Console.CursorLeft = 0; }
internal void Display(ConsoleColor backColor) { Console.CursorTop = m_CursorTop; Console.CursorLeft = 0; ConsoleUtils.ShowNLinesOnConsole(m_NbLines, backColor); Console.CursorTop = m_CursorTop; Console.CursorLeft = 0; Console.BackgroundColor = backColor; m_DisplayProc(m_DisplayInfo); // Reset cursor to beginning of the row displayed to avoid cursor trace! Console.CursorTop = m_CursorTop; Console.CursorLeft = 0; }
private static UpDownEnterAllNextQuit ConsoleAskUpDownEnterAllNextQuit(bool showMenu, bool showEnd, int cursorTop) { if (showMenu) { Debug.Assert(Console.CursorTop == cursorTop); Console.WriteLine(); Console.CursorLeft = 0; Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("Open source decl? Up/Down/Enter -- " + (showEnd ? "" : "Show Next? n -- Show All? a -- ") + "Stop? any key"); Console.ForegroundColor = ConsoleColor.White; } var consoleKeyInfo = Console.ReadKey(); var keyChar = Char.ToLower(consoleKeyInfo.KeyChar); if (!showEnd && (keyChar == 'n' || keyChar == 'a')) { // Erase the menu! Console.CursorTop = cursorTop; ConsoleUtils.ShowNLinesOnConsole(4, ConsoleColor.Black); Console.CursorTop = cursorTop; // HACK: need to erase a second time, sometime erasing just once is not enought?? ConsoleUtils.ShowNLinesOnConsole(4, ConsoleColor.Black); Console.CursorTop = cursorTop; return(keyChar == 'n' ? UpDownEnterAllNextQuit.Next : UpDownEnterAllNextQuit.All); } switch (consoleKeyInfo.Key) { case ConsoleKey.DownArrow: return(UpDownEnterAllNextQuit.Down); case ConsoleKey.UpArrow: return(UpDownEnterAllNextQuit.Up); case ConsoleKey.Enter: return(UpDownEnterAllNextQuit.Enter); } return(UpDownEnterAllNextQuit.Quit); }
internal static ICompareContext GetProjectsToCompareAndAnalyzeThem() { var analysisManager = new NDependServicesProvider().AnalysisManager; var top = Console.CursorTop; Console.CursorLeft = 0; IProject projectOlder, projectNewer; IAnalysisResultRef analysisResultRefOlder, analysisResultRefNewer; while (true) { Console.WriteLine("Please choose older and newer versions of the code base..."); bool dialogOk = analysisManager.ShowDialogBuildComparison(ConsoleUtils.MainWindowHandle, out projectOlder, out analysisResultRefOlder, out projectNewer, out analysisResultRefNewer); var nbLinesToErase = Console.CursorTop - top; Console.CursorTop = top; Console.CursorLeft = 0; ConsoleUtils.ShowNLinesOnConsole(nbLinesToErase, ConsoleColor.Black); Console.CursorTop = top; Console.CursorLeft = 0; if (dialogOk) { break; } } // // Load or analyze // IAnalysisResult analysisResultOlder, analysisResultNewer; if (analysisResultRefOlder == null) { Debug.Assert(projectOlder != null); Console.WriteLine("Analyze older version of projects"); analysisResultOlder = RunAnalysisShowProgressOnConsole(projectOlder); } else { Console.WriteLine("Load older analysis result"); analysisResultOlder = LoadAnalysisShowProgressOnConsole(analysisResultRefOlder); } if (analysisResultRefNewer == null) { Debug.Assert(projectNewer != null); Console.WriteLine("Analyze newer version of projects"); analysisResultNewer = RunAnalysisShowProgressOnConsole(projectNewer); } else { Console.WriteLine("Load newer analysis result"); analysisResultNewer = LoadAnalysisShowProgressOnConsole(analysisResultRefNewer); } // // Re-erase // var nbLinesToErase2 = Console.CursorTop - top; Console.CursorTop = top; Console.CursorLeft = 0; ConsoleUtils.ShowNLinesOnConsole(nbLinesToErase2, ConsoleColor.Black); Console.CursorTop = top; Console.CursorLeft = 0; // // Show compare description // Console.ForegroundColor = ConsoleColor.DarkGray; Console.Write("Comparing: "); Console.ForegroundColor = ConsoleColor.White; ShowAnalysisResultRefDescription(analysisResultOlder.AnalysisResultRef); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.DarkGray; Console.Write(" with: "); Console.ForegroundColor = ConsoleColor.White; ShowAnalysisResultRefDescription(analysisResultNewer.AnalysisResultRef); return(analysisResultNewer.CodeBase.CreateCompareContextWithOlder(analysisResultOlder.CodeBase)); }
internal static IProject ChooseProject() { var projectManager = new NDependServicesProvider().ProjectManager; var visualStudioManager = new NDependServicesProvider().VisualStudioManager; var top = Console.CursorTop; Console.CursorLeft = 0; while (true) { Console.WriteLine("Please choose..."); Console.WriteLine(" a) an existing CppDepend project"); Console.WriteLine(" b) one or several Visual Studio solutions to analyze"); Console.WriteLine(" c) one or several C/C++ projects to analyze"); Console.WriteLine(""); var c = Char.ToLower(Console.ReadKey().KeyChar); Console.WriteLine(); IProject project = null; switch (c) { case 'a': if (!projectManager.ShowDialogChooseAnExistingProject(ConsoleUtils.MainWindowHandle, out project)) { break; } break; case 'b': { ICollection <IAbsoluteFilePath> solutions; if (!visualStudioManager.ShowDialogSelectVisualStudioSolutionsOrProjects(ConsoleUtils.MainWindowHandle, out solutions)) { break; } var projects = new List <IAbsoluteFilePath>(); foreach (var solution in solutions) { projects.Add(solution); } project = projectManager.CreateTemporaryProject(projects, TemporaryProjectMode.Temporary); break; } default: { ICollection <IAbsoluteFilePath> projects; if (!projectManager.ShowDialogSelectProjects(ConsoleUtils.MainWindowHandle, out projects)) { break; } project = projectManager.CreateTemporaryProject(projects, TemporaryProjectMode.Temporary); break; } } var nbLinesToErase = Console.CursorTop - top; Console.CursorTop = top; Console.CursorLeft = 0; ConsoleUtils.ShowNLinesOnConsole(nbLinesToErase, ConsoleColor.Black); Console.CursorTop = top; Console.CursorLeft = 0; if (project == null) { continue; } Console.ForegroundColor = ConsoleColor.DarkGray; Console.Write("Project selected: "); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(project.Properties.Name); Console.WriteLine(); return(project); } }