// ------------------------------------------------------------------------------------------------------------ // // V1.00 05-Dec-2025 - Lets start versioning. // V1.01 05-Dec-2025 - Window does not steal focus when popped to the top. // V1.02 06-Dec-2025 - Window resize now works fast. // Fixed font for red and orange dropdowns. // More defined matches ins in dropdowns. // Copy/Clipboard enhancements. // V1.03 06-Dec-2025 - Build All implemented // V1.04 06-Dec-2025 - Version Number displayed correctly on a Build-All // V1.05 06-Dec-2025 - All [ui] messages are printed in full // V1.06 06-Dec-2025 - INI file implemented for string matching. // V1.07 06-Dec-2025 - More .INI variables // V1.08 06-Dec-2025 - .INI works from Virgin mode - .INI placed in users home directory, and pre-populated. // V1.09 06-Dec-2025 - Relocated POP buttons - no more Off/Disabled item in the list // V1.10 06-Dec-2025 - Wildcard Matching // V1.11 06-Dec-2025 - Complete .INI bi-direction .INI updates without false updates. // V1.12 06-Dec-2025 - fixed mismatch between the number of lines displayed in SOLO compared to the Count being displayed // V1.13 07-Dec-2025 - Pause Button added and button theme changed a little - Slightly larger icon - Log-Monitor-3.ico // V1.14 07-Dec-2025 - updated ClearOutput() so it also resets the Red and Orange counters // V1.15 07-Dec-2025 - Split detection from coloring: each line gets tags, and filters/counts use those tags so overlapping matches still show up. // V1.16 07-Dec-2025 - Watermark now ""DaVinci Resolve" and a little brighter - Many methods "Condensed" ... so watch out. // V1.17 07-Dec-2025 - Watermark slightly less bright and a message when "Edit Settings" pressed showing the path to the .INI file // Made non-matching pipe start lines render in white (unless severity-colored), so when the Nth | is not found // we still print the full message but in Light Gray. // V1.18 07-Dec-2025 - Minor minor UI change to small buttons. // V1.19 07-Dec-2025 - Dark themed Windows Title Bar - only in the file App.xaml.cs // V1.20 07-Dec-2025 - Added ability to change the font size in the terminal window (only by the .INI at the moment) // V1.21 07-Dec-2025 - Control+Mouse Wheel controls Font size // V1.22 08-Dec-2025 - Unformatted text lines are now always printed in Light Gray // All .INI variables are now read in and do there job without refreshing the log file. // V1.23 08-Dec-2025 - Tightened up the vertical spacing in Combo Boxes // V1.24 08-Dec-2025 - Re-organized the .INI file // Added OR capability into matching strings with the "^" character. The .INI file has more details // V1.25 08-Dec-2025 - "SYSTEM" now allowed to use "SYSTEM" to get system level debug (not from a file) // Environment variables can now be used in the pathname to a log file - we now use %APPDATA% // Top window show the complete path to the file being used or "SYSTEM" // V1.26 08-Dec-2025 - Up Time Column added to SYSTEM view // V1.27 09-Dec-2025 - SYSTEM - Try and connect to Global\DBWIN first and fall back to just DBWIN if no permission. // V1.28 09-Dec-2025 - Dominant "Always on top" - YES ... ALWAYS ON TOP! (still not 100% what I want but its better) // V1.29 09-Dec-2025 - Icon is now a "Resource" and is much sharper. Font size (control mouse wheel) now hardwired cos it stopped working. // Vertical Scroll Bar wider and 4 pixel radius // V1.30 10-Dec-2025 - Resolve-Monitor-Installer.exe is now generated - no code change to the program itself. // V1.31 11-Dec-2025 - FontFamily implemeted // V1.32 11-Dec-2025 - Red and Orange counters corrected if BOTH Red and Orange are looking at the same string !! // Obscure but now correct if user ever did this - original method RecomputeCountersFromBuffer still present if it is not correct. // V1.33 13-Dec-2025 - GUI Editor for Indicator Options // V1.34 13-Dec-2025 - Remove CogWheel button, Edit Settings now does what the CogWheel did. // Can now move multiple items up/down in th e Edit Window. // Clicking on the occurrence Count numbers now does the same as pressing SOLO // V1.35 13-Dec-2025 - New DBWIN button - no more "SYSTEM" // V1.36 14-Dec-2025 - No more 1 pixel jump in the Editor // V1.37 14-Dec-2025 - Added persistent window size/position to the [Behavior] INI section, restoring it on startup (or external INI changes) // only if the saved layout is still on-screen, otherwise leaving the window in its normal startup location. // Enforced single-instance behavior by terminating any other running instances of the program at startup. // V1.38 14-Dec-2025 - Fixed pipe-mode color logic so changing the 'Print from' dropdown (including 'As if we will have 5') correctly reclassifies // existing lines between green and white both at startup and at runtime. // Corrected Installer so the version is embedded within the final .exe // V1.39 14-Dec-2025 - Small help message at the bottom of the terminal window added to explain the Control+Mouse Wheel font resizing. // V1.40 14-Dec-2025 - No change to code but split the huge MainWindow.xaml.cs into 2 files with all .INI file related code in the new file. // V1.41 14-Dec-2025 - A font selection button - YAY! // V1.42 14-Dec-2025 - Default font is now "Azeret Mono, Consolas" FontSize 11 - I think this is good ???? Azeret Mono Medium looks good too. // V1.43 15-Dec-2025 - The installer now also installs Azeret Mono and Kodo Mono fonts during installation - No code changes. // The installer now has a "Successful" installation page with a checkable option to launch Resolve-Monitor after installation. // V1.44 15-Dec-2025 - New Feature - CONTROL UP/DOWN ARROW adjusts the spacing between lines in the terminal output so you can see more lines // This is not saved in the .INI file yet ... Not sure of its value yet ... ??? // V1.45 15-Dec-2025 - LineSpacing= (NOT PIXELS) so it scales at any font size correctly added to the .INI file :) // V1.46 15-Dec-2025 - Added the font "Roboto Mono" to the fonts installed during installation // V1.47 16-Dec-2025 - Updated watermarks in the terminal window and now the watermark text is UNDER the debug text ... DOH! // Corrected Font handling - a lot, now when the app is restarted it looks EXACTLY the same as you left it. // V1.48 17-Dec-2025 - Preserve the original Output ListBoxItem style when line spacing is 0 instead of clearing ItemContainerStyle, // preventing visual jumps and padding changes between spacing values. // V1.49 17-Dec-2025 - New embedded Watermark // V1.50 18-Dec-2025 - Watermark now fades out after startup and is displayed in full again when "Clear Output" is pressed // V1.51 18-Dec-2025 - Context menu in the terminal window for Font Selection, Line Spacing Reset, and Copy/Copy All // V1.52 18-Dec-2025 - Line Spacing options now in the terminal Context Menu // V1.53 18-Dec-2025 - Watermark fade out tweaks when text arrives after a "Clear Output" // V1.54 19-Dec-2025 - Hyper Compact added to the terminal context menu // Click and drag will now select the lines ready for copying - Shift up/down work the same as before // V1.55 19-Dec-2025 - HTTP Server on port 8080 added to provide status information to external applications // V1.56 20-Dec-2025 - HTTP server refined (but we lost the click and drag feature ...(sad) // V1.57 20-Dec-2025 - Click and drag feature working again... phew! // V1.58 20-Dec-2025 - HttpPort now stored in the .INI file and can be updated in realtime // Port 0 disables the http server // Port 8080 is the default // V1.59 20-Dec-2025 - Pressing Start (while stopped) now clears the terminal output as it did before // V1.60 20-Dec-2025 - Must now run on WIndows 10 or greater (10.0.17763.0) // V1.61 20-Dec-2025 - HTTP port selection is now on the context menu ... including off. // Current view is now not "Stolen" if new text arrives and you are scrolled somewhere else. // Only if you can see the bottom line does it automatically scroll. (Lines processed increments as it should if new linmes arrive) // Quickest way too start auto scrolling again is to press "End" - "Home", "Page UP/DOWN" work too. // V1.62 20-Dec-2025 - Added "Launch Browser" to the context menu to open the HTTP server page in the default browser" // V1.63 20-Dec-2025 - NEW FEATURE: Added double-click behavior on the terminal output list so that when a line is double-clicked, // any active SOLO filters (red/orange) are first cleared, the full log buffer is restored, // and the clicked line is then selected and vertically centered in the viewport to show its surrounding context. // V1.64 20-Dec-2025 - CONTROL UP/DOWN - Line Spacing in GUI // CONTROL LEFT/RIGHT - Pipe Selection (GUI and HTTP) // SPACE - Toggle Pause // F1 - Toggle RED Solo // F2 - Toggle ORANGE Solo // F5 - Reset Counters // F6 - Clear Screen (and Reset Counters) // HOME - Goto to top of current capture // END - Goto bottom of current capture // PAGE UP/DOWN jump up/down a page // CONTROL A - Select All // CONTROL C - Copy Selection to clipboard // V1.65 20-Dec-2025 - Double-clicking a red or orange line now enables the corresponding SOLO mode when none is active and scrolls that line // to the middle of the terminal viewport. // When there are enough lines double clicking a Green Line will center it vertically in the terminal window. // V1.66 20-Dec-2025 - Corrected/Adjusted size of Watermark logo. // V1.67 21-Dec-2025 - Project reconfigured to use Windows Forms // V1.68 21-Dec-2025 - Now a System Tray Application, does not appear in the task bar now. // Add keyboard navigation helpers for severity lines (F3/F4, Alt+Up/Down) and bind Enter to double-click behavior on the selected Output line; // F3 and ALT UP - Previous Colored Lne // F4 and ALT DOWN - Next Colored Line // ENTER - Same a double click on a line using the current selected line // ESC - Same as HOME - go to top of current capture // V1.69 21-Dec-2025 - Converted app to run tray-only: create/own a NotifyIcon, hide the main window on startup, intercept minimize/close to hide to tray, // and restore/show from the tray menu. // Ensured the window never appears in the taskbar (no blank title bar ): force ShowInTaskbar = false and removed any logic that // re-enabled taskbar visibility when restoring. // V1.70 21-Dec-2025 - Major overhall of .INI variables initialzation and saving. Fingers X'd all is good. // Http server is now off by default. User must enable it if needed. // V1.71 21-Dec-2025 - We no longer print 100% blank lines - they must contain some text. // Http/WEB page now has a "Mirror GUI" button so the WEB page mirrors the terminal. // Fixed up LineSpacing from the last version modifications // V1.72 21-Dec-2025 - "Edit Settings" button renamed to "Highlight Settings" // ESC and ENTER now work as expected in the Highlight Settings window. (Cancel or Save then exit) // V1.73 21-Dec-2025 - PERFORMANCE OPTIMIZATIONS: Comprehensive optimization pass across multiple files for improved responsiveness // MainWindow_xaml.cs: 15 hot path optimizations including string operations, // Math.Clamp usage, and critical ProcessLineForBatch restructuring // MainWindow_FontZoom.cs: Debounced line spacing recalculation during font zoom to eliminate lag // with 1000+ lines at small fonts // MainWindow_ContextMenu.cs: 11 optimizations including batched command bindings, pre-allocated StringBuilder for Copy All // App_xaml.cs: Full dark theme for system tray and terminal context menus with custom DarkThemeRenderer // MainWindow.xaml: Complete dark theme WPF styles for ContextMenu, MenuItem, and Separator // TerminalHttpServer.cs: Zero-allocation BrushToCssColorFast method, optimized list pre-allocation, for loops over foreach // V1.74 22-Dec-2025 - preserve padded spaces in DBWIN output (e.g., pipe-formatted columns). (whoops) // V1.75 22-Dec-2025 - added a "Delta" time column to the DBWIN output - and I thought the 5 pipe filter would be enough! Ha! // Major overall to DBWIN capture which you will see in the next release. // V1.76 22-Dec-2025 - Terminal context menu can now enable/disable and sort DBWIN columns. Unable to save just now ... please wait. // V1.77 23-Dec-2025 - DBWIN columns can now be saved and recalled via the .INI file. // Minor reorganzation of the DBWIN column selection window. // V1.78 23-Dec-2025 - Fixed DBWIN viewer real-time display: reduced FlushLineBatchSize from 250 to 1 and FlushIntervalMs from 100ms to 1ms for // instant log message visibility // V1.79 24-Dec-2025 - Fixed DBWIN message receive delays and potentially dropped messages: // Signal DBWIN_BUFFER_READY immediately after copying data (not at start of next read). // Removed duplicate SetEvent call that caused race condition dropping messages. // Reduced TryReadNext timeout from 250ms to 20ms for faster flush-on-idle. // Flush pending batch immediately when no new messages arrive. // Result: message receive gap reduced from ~70ms to <1ms between consecutive calls. // Fixed copy/paste order: SelectedItems now sorted by display index before copying. // V1.80 25-Dec-2025 - Combined Start/Stop into single toggle button: dim red when stopped, dim green when running. // Changed Use DbWin button to dim cyan when active (original blue when inactive). // Fixed Up/Down arrow key navigation: no longer wraps around at boundaries. // Reset Counters and Clear Output now reset DBWIN line number and time back to 0. // Reset Counters button disabled when not in DBWIN mode. // Moved "Highlight Settings..." from button row to context menu (F7). // Added pipe options for 6, 7, and 8. // V1.81 25-Dec-2025 - Home/End now to the very top/very bottom. // // ------------------------------------------- V E R S I O N 2 . 0 0 ---------------------------------------- // ====================== // // V2.00 25-Dec-2025 - MAJOR FEATURE: Added 3rd highlight color - CYAN // New Cyan indicator row in the header with POP ON EVENT, SOLO-F3, dropdown, and counter. // Added "| INFO |" as a new built-in indicator option (index 2). // Cyan defaults to "|*Fairlight*|" on fresh install (no INI). // New SeverityFlags.Cyan (value 4) for line classification. // Cyan lines display in #06B6D4 (InfoBrush). // Full INI support: PopOnCyan, SoloCyan, DefaultCyan settings saved/restored. // Double-click on cyan lines now activates Cyan SOLO mode. // Alt+Up/Down navigation now includes cyan lines. // PERFORMANCE: F4 clear all SOLOs now uses event suppression flag to rebuild // the solo view only once instead of 3-4 times, making it near-instant. // Ctrl+Home/Ctrl+End now navigate to first/last line (standard behavior). // Ctrl+0 resets line spacing to default (moved from Ctrl+Home). // V2.01 26-Dec-2025 - SYSTEM TRAY ENHANCEMENTS: // Added new tray menu items: Hide Window, Start/Stop Monitoring, Pause/Resume, // Always on Top, Clear Output, Reset Counters. // Vertically centered the title and path text in the header (next to icon). // Reduced spacing between title and path from 8px to 4px. // Added MouseWheelScrollMultiplier constant (set to 2.5) for faster scrolling. // Mouse wheel now scrolls ~2.5x more lines per notch than default WPF behavior. // Text slection in HTTP output now works properly, albeit the output is paused during selection // Ability to right click, select a word or words and update the highlight words and/or apply them too. // V2.02 26-Dec-2025 - CONTEXT MENU WORD SELECTION: // Right-click on any word to add it as a highlight pattern. // Shows up to 4 phrase options (1 word, 2 words, 3 words, 4 words). // Punctuation treated as word separators, preserving original characters in phrases. // Each phrase shows match count in brackets: [039] Add 'phrase'... // Count uses exact same matching logic as highlighting (case-sensitive). // Submenu with colored circles: Red, Orange, Cyan highlight options. // "Add to Highlight list only" option for adding without assigning color. // "Apply" shown instead of "Add" for phrases already in highlight list. // Uses FormattedText for accurate character position detection. // LINE SPACING: // Added "Ultra Compact" option (-40%) after Hyper Compact. // V2.03 26-Dec-2026 - As its so easy to add Highlights now, I have removed most of the hardcoded presets. // Pressing "?" presents a help sheet in the terminal window. // V2.04 26-Dec-2025 - Corrected context menu counters // Corrected Line Spacing after a change in font. // V2.05 27-Dec-2025 - Control C code consolidated. // V2.06 27-Dec-2025 - Changed Pause to Freeze: display stops updating while capturing continues in background; // all accumulated messages appear instantly when unfrozen. // F8 now Starts/Stops monitoring // V2.07 28-Dec-2025 - Sanitize characters coming thru DBWIN for non-ascii characters that would not be printed correctly. // Terminal context menu font changed to mono spaced from. makes the strings look clearer // V2.08 28-Dec-2025 - Removed "Reset Counters-F5" button // Deleted button, handler, method, F5 key binding, tray menu item, and help entry across all files // Renamed "Clear Output-F6" to "Clear Terminal-F6" - Updated button, tray menu, and help sheet // Added "Last Line" button - New button after Pause that navigates to last line (same as End key) // Removed Ctrl+Home/End from help - Redundant with Home/End keys // Swapped red/green colors for the Start/Stop button. // V2.09 29-Dec-2025 - Header/separator lines now bypass processed line counter (printed via AddLineToBufferAndRender) // Changed "[monitor] started: DBWIN" message color from light green to light gray // All internal status messages now display in consistent light gray color // V2.10 30-Dec-2025 - DbWinColumnConfigDialog window now has comboboxes instead of text input boxes. // V2.11 30-Dec-2025 - All USER displayed referances to DBWIN are now called "DebugView" // V2.12 30-Dec-2025 - Proportional Scaling Added a new "Proportional Scaling" feature that automatically scales // the terminal font size in proportion to the window width. When enabled, doubling the window // width doubles the font size, maintaining consistent text density regardless of window size. // The feature can be toggled via the terminal context menu and is persisted in the INI file. // Defaults to on. Manual font size changes (Ctrl+MouseWheel) seamlessly update the scaling // reference point to prevent jumps when resizing. // V2.13 31-Dec-2025 - Window Size Toggle (F5) Added F5 keyboard shortcut to toggle between the last two window sizes // and positions. After resizing or moving the window, the layout is captured (with 300ms debounce). // Pressing F5 instantly switches between the two most recent layouts, allowing quick comparison between // different window configurations. // V2.14 31-Dec-2025 - Version 1 of Notifications implemented. // V2.15 31-Dec-2025 - Version 2 of Notifications implemented. // Per-color 2-second cooldowns // Priority system (Red > Orange > Cyan) where lower priority won't interrupt higher // 5-second display duration tracking // Notification settings saved to INI file // Pipe settings applied to notification messages // When you click on a notification, the application window will show and restore if the window is hidden or minimized. // V2.16 31-Dec-2025 - Custom Font Picker Dialog - Replaced the standard Windows font dialog with a custom-built font picker that // matches the application's dark theme. Features include live font preview before selection, dynamic font style // detection showing all available styles (Regular, Bold, Italic, Light, SemiBold, etc.) for each font family, // a monospaced-only filter checkbox (enabled by default), and a Default button to reset to Cascadia Mono/Consolas // 12.5pt Regular. The dialog opens pre-configured with the current font settings. // V2.17 31-Dec-2025 - HTML document opened when the programs icon is clocked on. (RESOURCES\Resolve-Debug-Monitor-Overview.html) // V2.18 31-Dec-2025 - Added "Select File to Monitor..." menu item at the bottom of the terminal context menu. // V2.19 31-Dec-2025 - Opens a Windows file dialog with "All files" filter, saves the selected path to the INI file, and restarts the file watcher. // After selecting a new file, if we are in DebugView/DBWIN mode we switch over to file/tail mode. // Implemented bulk load optimization for large files. Lines accumulate in memory during initial load with a single UI refresh // at the end. Progress counter updates every 5,000 lines during load. // Fixed ReclassifyBufferForIndicators() to include Brushes.LightGray lines so that highlights now work on non-piped log formats. // V2.20 01-Jan-2026 - Removed some [ui] debug // Button Names changed to be more obvious // Proportional font size now defaults to OFF // V2.21 01-JAN-2026 - Removed minimum font size when using proportional scaling. // V2.22 01-JAN-2026 - UI refinements // V2.23 01-JAN-2026 - Monitoring animation, and more UI adjustments. // V2.24 01-JAN-2026 - No more .INI file - Everything is now in the registry under HKCU\SOFTWARE\Resolve-Monitor // V2.25 01-JAN-2026 - Single source of Truth in place for all variables (I hope) // V2.26 01-JAN-2026 - Clicking on the path in the top window now opens an explorer dialog so you can select your own file. (Same as the context menu) // V2.27 01-JAN-2026 - Highlight searches fixed up to display up to [9999] in the context menu - Thanks C:\Windows\Logs\CBS for the test data :) // V2.28 02-JAN-2026 - Context menu theme updated and a better layout for the number of string matches. // // ------------------------------------------------------------------------------------------------------------