├── .gitignore ├── LICENSE ├── README.md ├── doc ├── Thumbs.db └── screenshot.png └── src ├── Couchcoding.Logbert.Gui ├── .editorconfig ├── Controls │ ├── ColorDropDown.cs │ ├── CustomToolStripSystemRenderer.cs │ ├── DataGridViewEx.cs │ ├── GroupBoxEx.cs │ ├── InfoPanel.cs │ ├── LinkLabelEx.cs │ ├── ListBoxEx.cs │ ├── ListViewEx.cs │ ├── MenuStripEx.cs │ ├── PictureBoxEx.cs │ ├── TableLayoutPanelEx.cs │ ├── TextBoxEx.cs │ ├── ToolStripEx.cs │ └── TreeViewEx.cs ├── Couchcoding.Logbert.Gui.csproj ├── Dialogs │ └── DialogForm.cs ├── Helper │ ├── DpiHelper.cs │ └── OSHelper.cs ├── Interop │ └── Win32.cs └── Properties │ └── AssemblyInfo.cs ├── Couchcoding.Logbert.Theme ├── .editorconfig ├── Couchcoding.Logbert.Theme.csproj ├── Helper │ └── GdiCache.cs ├── Interfaces │ └── IThemable.cs ├── Metrics │ ├── ThemeMetrics.cs │ ├── VisualStudioBlueMetrics.cs │ ├── VisualStudioDarkMetrics.cs │ └── VisualStudioLightMetrics.cs ├── Palettes │ ├── ThemeColorPalette.cs │ ├── VisualStudioBluePalette.cs │ ├── VisualStudioDarkPalette.cs │ └── VisualStudioLightPalette.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── VisualStudioBlueResource.Designer.cs │ ├── VisualStudioBlueResource.resx │ ├── VisualStudioDarkResource.Designer.cs │ ├── VisualStudioDarkResource.resx │ ├── VisualStudioLightResource.Designer.cs │ └── VisualStudioLightResource.resx ├── Resources │ ├── FrmBookmarksTbNext_Blue.png │ ├── FrmBookmarksTbNext_Dark.png │ ├── FrmBookmarksTbNext_Light.png │ ├── FrmBookmarksTbPrevious_Blue.png │ ├── FrmBookmarksTbPrevious_Dark.png │ ├── FrmBookmarksTbPrevious_Light.png │ ├── FrmBookmarksTbRemove_Blue.png │ ├── FrmBookmarksTbRemove_Dark.png │ ├── FrmBookmarksTbRemove_Light.png │ ├── FrmBookmarks_Blue.png │ ├── FrmBookmarks_Dark.png │ ├── FrmBookmarks_Light.png │ ├── FrmFilterTbAdd_Blue.png │ ├── FrmFilterTbAdd_Dark.png │ ├── FrmFilterTbAdd_Light.png │ ├── FrmFilterTbEdit_Blue.png │ ├── FrmFilterTbEdit_Dark.png │ ├── FrmFilterTbEdit_Light.png │ ├── FrmFilterTbRemove_Blue.png │ ├── FrmFilterTbRemove_Dark.png │ ├── FrmFilterTbRemove_Light.png │ ├── FrmLogBookmark_Blue.png │ ├── FrmLogBookmark_Dark.png │ ├── FrmLogBookmark_Light.png │ ├── FrmLogTreeNodeCollapsed_Blue.png │ ├── FrmLogTreeNodeCollapsed_Dark.png │ ├── FrmLogTreeNodeCollapsed_Light.png │ ├── FrmLogTreeNodeExpanded_Blue.png │ ├── FrmLogTreeNodeExpanded_Dark.png │ ├── FrmLogTreeNodeExpanded_Light.png │ ├── FrmMainTbAbout_Blue.png │ ├── FrmMainTbAbout_Dark.png │ ├── FrmMainTbAbout_Light.png │ ├── FrmMainTbBookmark_Blue.png │ ├── FrmMainTbBookmark_Dark.png │ ├── FrmMainTbBookmark_Light.png │ ├── FrmMainTbBottom_Blue.png │ ├── FrmMainTbBottom_Dark.png │ ├── FrmMainTbBottom_Light.png │ ├── FrmMainTbClear_Blue.png │ ├── FrmMainTbClear_Dark.png │ ├── FrmMainTbClear_Light.png │ ├── FrmMainTbCloseAll_Blue.png │ ├── FrmMainTbCloseAll_Dark.png │ ├── FrmMainTbCloseAll_Light.png │ ├── FrmMainTbDebug_Blue.png │ ├── FrmMainTbDebug_Dark.png │ ├── FrmMainTbDebug_Light.png │ ├── FrmMainTbDetails_Blue.png │ ├── FrmMainTbDetails_Dark.png │ ├── FrmMainTbDetails_Light.png │ ├── FrmMainTbError_Blue.png │ ├── FrmMainTbError_Dark.png │ ├── FrmMainTbError_Light.png │ ├── FrmMainTbFatal_Blue.png │ ├── FrmMainTbFatal_Dark.png │ ├── FrmMainTbFatal_Light.png │ ├── FrmMainTbFilter_Blue.png │ ├── FrmMainTbFilter_Dark.png │ ├── FrmMainTbFilter_Light.png │ ├── FrmMainTbInfo_Blue.png │ ├── FrmMainTbInfo_Dark.png │ ├── FrmMainTbInfo_Light.png │ ├── FrmMainTbLogtree_Blue.png │ ├── FrmMainTbLogtree_Dark.png │ ├── FrmMainTbLogtree_Light.png │ ├── FrmMainTbNew_Blue.png │ ├── FrmMainTbNew_Dark.png │ ├── FrmMainTbNew_Light.png │ ├── FrmMainTbOpen_Blue.png │ ├── FrmMainTbOpen_Dark.png │ ├── FrmMainTbOpen_Light.png │ ├── FrmMainTbRefresh_Blue.png │ ├── FrmMainTbRefresh_Dark.png │ ├── FrmMainTbRefresh_Light.png │ ├── FrmMainTbSave_Blue.png │ ├── FrmMainTbSave_Dark.png │ ├── FrmMainTbSave_Light.png │ ├── FrmMainTbSearch_Blue.png │ ├── FrmMainTbSearch_Dark.png │ ├── FrmMainTbSearch_Light.png │ ├── FrmMainTbSettings_Blue.png │ ├── FrmMainTbSettings_Dark.png │ ├── FrmMainTbSettings_Light.png │ ├── FrmMainTbStart_Blue.png │ ├── FrmMainTbStart_Dark.png │ ├── FrmMainTbStart_Light.png │ ├── FrmMainTbStatistic_Blue.png │ ├── FrmMainTbStatistic_Dark.png │ ├── FrmMainTbStatistic_Light.png │ ├── FrmMainTbSync_Blue.png │ ├── FrmMainTbSync_Dark.png │ ├── FrmMainTbSync_Light.png │ ├── FrmMainTbTimeshift_Blue.png │ ├── FrmMainTbTimeshift_Dark.png │ ├── FrmMainTbTimeshift_Light.png │ ├── FrmMainTbTop_Blue.png │ ├── FrmMainTbTop_Dark.png │ ├── FrmMainTbTop_Light.png │ ├── FrmMainTbTraceLog_Blue.png │ ├── FrmMainTbTraceLog_Dark.png │ ├── FrmMainTbTraceLog_Light.png │ ├── FrmMainTbTrace_Blue.png │ ├── FrmMainTbTrace_Dark.png │ ├── FrmMainTbTrace_Light.png │ ├── FrmMainTbWarn_Blue.png │ ├── FrmMainTbWarn_Dark.png │ ├── FrmMainTbWarn_Light.png │ ├── FrmMainTbZoomIn_Blue.png │ ├── FrmMainTbZoomIn_Dark.png │ ├── FrmMainTbZoomIn_Light.png │ ├── FrmMainTbZoomOut_Blue.png │ ├── FrmMainTbZoomOut_Dark.png │ ├── FrmMainTbZoomOut_Light.png │ ├── FrmOptionsFontAndColor_Blue.png │ ├── FrmOptionsFontAndColor_Dark.png │ ├── FrmOptionsFontAndColor_Light.png │ ├── FrmScriptTbClearLog_Blue.png │ ├── FrmScriptTbClearLog_Dark.png │ ├── FrmScriptTbClearLog_Light.png │ ├── FrmScriptTbCopy_Blue.png │ ├── FrmScriptTbCopy_Dark.png │ ├── FrmScriptTbCopy_Light.png │ ├── FrmScriptTbCut_Blue.png │ ├── FrmScriptTbCut_Dark.png │ ├── FrmScriptTbCut_Light.png │ ├── FrmScriptTbPaste_Blue.png │ ├── FrmScriptTbPaste_Dark.png │ ├── FrmScriptTbPaste_Light.png │ ├── FrmScriptTbRedo_Blue.png │ ├── FrmScriptTbRedo_Dark.png │ ├── FrmScriptTbRedo_Light.png │ ├── FrmScriptTbStart_Blue.png │ ├── FrmScriptTbStart_Dark.png │ ├── FrmScriptTbStart_Light.png │ ├── FrmScriptTbStop_Blue.png │ ├── FrmScriptTbStop_Dark.png │ ├── FrmScriptTbStop_Light.png │ ├── FrmScriptTbUndo_Blue.png │ ├── FrmScriptTbUndo_Dark.png │ ├── FrmScriptTbUndo_Light.png │ ├── FrmScriptTbWordWrap_Blue.png │ ├── FrmScriptTbWordWrap_Dark.png │ ├── FrmScriptTbWordWrap_Light.png │ ├── FrmSearchOptions_Blue.png │ ├── FrmSearchOptions_Dark.png │ ├── FrmSearchOptions_Light.png │ ├── FrmStatisticTbLegend_Blue.png │ ├── FrmStatisticTbLegend_Dark.png │ ├── FrmStatisticTbLegend_Light.png │ ├── ThemeResources.cs │ ├── VisualStudioBlueResources.cs │ ├── VisualStudioDarkResources.cs │ └── VisualStudioLightResources.cs ├── Theme.cs ├── ThemeManager.cs └── Themes │ ├── BaseTheme.cs │ ├── VisualStudioBlueTheme.cs │ ├── VisualStudioDarkTheme.cs │ └── VisualStudioLightTheme.cs ├── Logbert Setup ├── Bitmaps │ ├── bannrbmp.bmp │ └── dlgbmp.bmp ├── Includes │ ├── ArpProperties.wxi │ ├── CstmUiFragment.wxs │ ├── GlobalDefines.wxi │ └── UIFragments │ │ └── CstmInstallDirDlg.wxs ├── Install │ ├── Files.wxi │ ├── Parts │ │ └── General.wxi │ └── Shortcuts.wxi ├── Localization │ └── en-US.wxl ├── Logbert Setup.wixproj ├── Product.wxs └── Resources │ └── LgbrtStpInst.ico ├── Logbert.sln └── Logbert ├── .editorconfig ├── App.config ├── Controls ├── ColorMap.Designer.cs ├── ColorMap.cs ├── ColorMap.resx ├── ColorPickerCtrl.Designer.cs ├── ColorPickerCtrl.cs ├── ColorPickerCtrl.resx ├── CustomDetailsControl.Designer.cs ├── CustomDetailsControl.cs ├── CustomDetailsControl.resx ├── DockContentEx.cs ├── DockPanelEx.cs ├── EventLogDetailsControl.Designer.cs ├── EventLogDetailsControl.cs ├── EventLogDetailsControl.resx ├── Log4NetDetailsControl.Designer.cs ├── Log4NetDetailsControl.cs ├── Log4NetDetailsControl.resx ├── OptionPanels │ ├── OptionPanelBase.cs │ ├── OptionPanelFontColor.Designer.cs │ ├── OptionPanelFontColor.cs │ ├── OptionPanelFontColor.resx │ ├── OptionPanelGeneral.Designer.cs │ ├── OptionPanelGeneral.cs │ ├── OptionPanelGeneral.resx │ ├── OptionPanelScriptEditor.Designer.cs │ ├── OptionPanelScriptEditor.cs │ └── OptionPanelScriptEditor.resx ├── SyslogDetailsControl.Designer.cs ├── SyslogDetailsControl.cs ├── SyslogDetailsControl.resx ├── ThemedListBoxEx.cs ├── WinDebugDetailsControl.Designer.cs ├── WinDebugDetailsControl.cs └── WinDebugDetailsControl.resx ├── Dialogs ├── Docking │ ├── FrmLogBookmarks.Designer.cs │ ├── FrmLogBookmarks.cs │ ├── FrmLogBookmarks.resx │ ├── FrmLogDetails.Designer.cs │ ├── FrmLogDetails.cs │ ├── FrmLogDetails.resx │ ├── FrmLogDocument.Designer.cs │ ├── FrmLogDocument.cs │ ├── FrmLogDocument.resx │ ├── FrmLogFilter.Designer.cs │ ├── FrmLogFilter.cs │ ├── FrmLogFilter.resx │ ├── FrmLogScript.Designer.cs │ ├── FrmLogScript.cs │ ├── FrmLogScript.resx │ ├── FrmLogStatistic.Designer.cs │ ├── FrmLogStatistic.cs │ ├── FrmLogStatistic.resx │ ├── FrmLogTree.Designer.cs │ ├── FrmLogTree.cs │ ├── FrmLogTree.resx │ ├── FrmLogWindow.Designer.cs │ ├── FrmLogWindow.cs │ ├── FrmLogWindow.resx │ ├── FrmWelcome.Designer.cs │ ├── FrmWelcome.cs │ └── FrmWelcome.resx ├── FrmAbout.Designer.cs ├── FrmAbout.cs ├── FrmAbout.resx ├── FrmAddEditFilter.Designer.cs ├── FrmAddEditFilter.cs ├── FrmAddEditFilter.resx ├── FrmColumnizer.Designer.cs ├── FrmColumnizer.cs ├── FrmColumnizer.resx ├── FrmColumnizerTest.Designer.cs ├── FrmColumnizerTest.cs ├── FrmColumnizerTest.resx ├── FrmEditTimeStampFormat.Designer.cs ├── FrmEditTimeStampFormat.cs ├── FrmEditTimeStampFormat.resx ├── FrmLogLevelMap.Designer.cs ├── FrmLogLevelMap.cs ├── FrmLogLevelMap.resx ├── FrmLogSearch.Designer.cs ├── FrmLogSearch.cs ├── FrmLogSearch.resx ├── FrmNew.Designer.cs ├── FrmNew.cs ├── FrmNew.resx ├── FrmOptions.Designer.cs ├── FrmOptions.cs ├── FrmOptions.resx ├── FrmTimestamps.Designer.cs ├── FrmTimestamps.cs └── FrmTimestamps.resx ├── Helper ├── Browser.cs ├── BrushCache.cs ├── DataProtection.cs ├── DelayedCallback.cs ├── EncodingWrapper.cs ├── Extensions.cs ├── FixedSizedQueue.cs ├── FlatColorTable.cs ├── FontCache.cs ├── GdiCache.cs ├── LogColumnData.cs ├── LogMessageSelectedEventArgs.cs ├── Logger.cs ├── MruManager.cs ├── ThreadAttachedDelayedCallback.cs ├── WaitCursor.cs └── Win32.cs ├── Interfaces ├── IBookmarkObserver.cs ├── IBookmarkProvider.cs ├── IDelayedCallbackHandler.cs ├── ILogContainer.cs ├── ILogFilterHandler.cs ├── ILogFilterProvider.cs ├── ILogHandler.cs ├── ILogPresenter.cs ├── ILogProvider.cs ├── ILogSettingsCtrl.cs ├── IOptionPanel.cs └── ISearchable.cs ├── Libraries ├── MoonSharp.Interpreter.dll ├── ScintillaNET.dll ├── WeifenLuo.WinFormsUI.Docking.ThemeVS2015.dll └── WeifenLuo.WinFormsUI.Docking.dll ├── Logbert.csproj ├── Logbert.ico ├── Logging ├── Filter │ ├── LogFilter.cs │ ├── LogFilterColumn.cs │ ├── LogFilterLevel.cs │ ├── LogFilterLogger.cs │ ├── LogFilterRegex.cs │ └── LogFilterString.cs ├── LogError.cs ├── LogLevel.cs ├── LogMessage.cs ├── LogMessageCustom.cs ├── LogMessageCustom.cs.bak ├── LogMessageEventlog.cs ├── LogMessageLog4Net.cs ├── LogMessageSyslog.cs └── LogMessageWinDebug.cs ├── MainForm.Designer.cs ├── MainForm.cs ├── MainForm.resx ├── Program.cs ├── Properties ├── AssemblyInfo.cs ├── Resources.Designer.cs ├── Resources.resx ├── Settings.Designer.cs ├── Settings.settings └── app.manifest ├── Receiver ├── CustomReceiver │ ├── Columnizer.cs │ ├── CustomDirReceiver │ │ ├── CustomDirReceiver.cs │ │ ├── CustomDirReceiverSettings.Designer.cs │ │ ├── CustomDirReceiverSettings.cs │ │ └── CustomDirReceiverSettings.resx │ ├── CustomFileReceiver │ │ ├── CustomFileReceiver.cs │ │ ├── CustomFileReceiverSettings.Designer.cs │ │ ├── CustomFileReceiverSettings.cs │ │ └── CustomFileReceiverSettings.resx │ ├── CustomHttpReceiver │ │ ├── BasicHttpAuthentication.cs │ │ ├── CustomHttpReceiver.cs │ │ ├── CustomHttpReceiverSettings.Designer.cs │ │ ├── CustomHttpReceiverSettings.cs │ │ └── CustomHttpReceiverSettings.resx │ ├── CustomTcpReceiver │ │ ├── CustomTcpReceiver.cs │ │ ├── CustomTcpReceiverSettings.Designer.cs │ │ ├── CustomTcpReceiverSettings.cs │ │ └── CustomTcpReceiverSettings.resx │ ├── CustomUdpReceiver │ │ ├── CustomUdpReceiver.cs │ │ ├── CustomUdpReceiverSettings.Designer.cs │ │ ├── CustomUdpReceiverSettings.cs │ │ └── CustomUdpReceiverSettings.resx │ ├── LogColumn.cs │ └── LogColumnType.cs ├── EventlogReceiver │ ├── EventlogReceiver.cs │ ├── EventlogReceiverSettings.Designer.cs │ ├── EventlogReceiverSettings.cs │ └── EventlogReceiverSettings.resx ├── Log4NetDirReceiver │ ├── Log4NetDirReceiver.cs │ ├── Log4NetDirReceiverSettings.Designer.cs │ ├── Log4NetDirReceiverSettings.cs │ └── Log4NetDirReceiverSettings.resx ├── Log4NetFileReceiver │ ├── Log4NetFileReceiver.cs │ ├── Log4NetFileReceiverSettings.Designer.cs │ ├── Log4NetFileReceiverSettings.cs │ └── Log4NetFileReceiverSettings.resx ├── Log4NetUdpReceiver │ ├── Log4NetUdpReceiver.cs │ ├── Log4NetUdpReceiverSettings.Designer.cs │ ├── Log4NetUdpReceiverSettings.cs │ └── Log4NetUdpReceiverSettings.resx ├── NLogDirReceiver │ ├── NLogDirReceiver.cs │ ├── NLogDirReceiverSettings.Designer.cs │ ├── NLogDirReceiverSettings.cs │ └── NLogDirReceiverSettings.resx ├── NLogFileReceiver │ ├── NLogFileReceiver.cs │ ├── NLogFileReceiverSettings.Designer.cs │ ├── NLogFileReceiverSettings.cs │ └── NLogFileReceiverSettings.resx ├── NLogTcpReceiver │ ├── NLogTcpReceiver.cs │ ├── NLogTcpReceiverSettings.Designer.cs │ ├── NLogTcpReceiverSettings.cs │ └── NLogTcpReceiverSettings.resx ├── NLogUdpReceiver │ ├── NLogUdpReceiver.cs │ ├── NLogUdpReceiverSettings.Designer.cs │ ├── NLogUdpReceiverSettings.cs │ └── NLogUdpReceiverSettings.resx ├── ReceiverBase.cs ├── SyslogFileReceiver │ ├── SyslogFileReceiver.cs │ ├── SyslogFileReceiverSettings.Designer.cs │ ├── SyslogFileReceiverSettings.cs │ └── SyslogFileReceiverSettings.resx ├── SyslogUdpReceiver │ ├── SyslogUdpReceiver.cs │ ├── SyslogUdpReceiverSettings.Designer.cs │ ├── SyslogUdpReceiverSettings.cs │ └── SyslogUdpReceiverSettings.resx ├── ValidationResult.cs └── WinDebugReceiver │ ├── DebugMonitor.cs │ ├── WinDebugReceiver.cs │ ├── WinDebugReceiverSettings.Designer.cs │ ├── WinDebugReceiverSettings.cs │ └── WinDebugReceiverSettings.resx └── Resources ├── Debug_Light.png ├── Error_Light.png ├── Fatal_Light.png ├── FindSymbol_6263.png ├── Info_Light.png ├── LogLevel_16x.png ├── Logbert Logo Background.png ├── Logbert Start Screen.png ├── NoBookmark.png ├── PencilAngled_16xMD_color.png ├── Remove_16xMD.png ├── RunTests_8790.png ├── Script_16x.png ├── StatusAnnotations_Information_16xLG.png ├── Trace_Light.png ├── VSO_Time_16x.png ├── Warn_Light.png ├── action_add_16xMD.png ├── arrow_Down_16xLG.png ├── arrow_Up_16xLG.png ├── eyedropper_16xLG.png ├── font_color.png ├── log_error.png ├── logbert.about.png └── properties_16xLG.png /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2021 couchcoding 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Logbert 2 | Logbert is an advanced log message viewer for log4net, log4j and others. 3 | 4 | ![Logbert Screenshot](doc/screenshot.png "Logbert Screenshot") 5 | 6 | ### Features 7 | * Multiple log receivers 8 | * Chainsaw compatible loggers like log4net or nlog (UDP, TCP, File and Directory based) 9 | * Windows event log 10 | * SysLog events (UDP, TCP and File based) 11 | * Customizable log receiver (UDP, TCP, HTTP, File and Directory based) 12 | * Create unlimited count of bookmarks 13 | * Filter log messages using a logger tree and level filter 14 | * Wildcard and regular expression based search 15 | * Optional timeshift in milliseconds for synchronization 16 | * Export log messages to a file as received or as CSV 17 | * Create regular expression based filters 18 | * Embedded LUA script engine 19 | * Create or remove bookmarks 20 | * Show a message 21 | * Access received log messages 22 | * Trigger function if a new log message is received or a bookmark is changed 23 | * Statistic windows to see the log level ratio. 24 | * Directory based receiving (load multiple log files as one) 25 | 26 | ### Copyright & License 27 | 28 | Copyright (c) 2021 Couchcoding - Released under the [MIT license](LICENSE). 29 | -------------------------------------------------------------------------------- /doc/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/doc/Thumbs.db -------------------------------------------------------------------------------- /doc/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/doc/screenshot.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Gui/.editorconfig: -------------------------------------------------------------------------------- 1 | # top-most EditorConfig file 2 | root = true 3 | 4 | # Unix-style newlines with a newline ending every file 5 | [*] 6 | end_of_line = lf 7 | insert_final_newline = true 8 | 9 | # 2 space indentation 10 | [*.cs] 11 | indent_style = space 12 | indent_size = 2 -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Gui/Controls/CustomToolStripSystemRenderer.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2016 Couchcoding 2 | 3 | // File: CustomToolStripSystemRenderer.cs 4 | // Package: GuiLibrary 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2016 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using System.Windows.Forms; 32 | 33 | namespace Couchcoding.Logbert.Gui.Controls 34 | { 35 | /// 36 | /// Implements a custom control. 37 | /// 38 | public sealed class CustomToolStripSystemRenderer : ToolStripSystemRenderer 39 | { 40 | #region Private Methods 41 | 42 | /// 43 | /// Raises the RenderToolStripBorder event. 44 | /// 45 | /// A that contains the event data. 46 | protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e) 47 | { 48 | // Don't draw the toolstrip border. 49 | } 50 | 51 | #endregion 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Gui/Controls/LinkLabelEx.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: LinkLabelEx.cs 4 | // Package: GuiLibrary 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using System; 32 | using System.Runtime.InteropServices; 33 | using System.Windows.Forms; 34 | 35 | namespace Couchcoding.Logbert.Gui.Controls 36 | { 37 | /// 38 | /// Implements a with a correct hand . 39 | /// 40 | public class LinkLabelEx : LinkLabel 41 | { 42 | #region Private Consts 43 | 44 | /// 45 | /// Sent to a window if the mouse causes the cursor to move within a window and mouse input is not captured. 46 | /// 47 | private const int WM_SETCURSOR = 0x0020; 48 | 49 | /// 50 | /// The Hand cursor. 51 | /// 52 | private const int IDC_HAND = 0x7f89; 53 | 54 | #endregion 55 | 56 | #region Interop Methods 57 | 58 | /// 59 | /// Loads the specified cursor resource from the executable (.EXE) file associated with an application instance. 60 | /// 61 | /// A handle to an instance of the module whose executable file contains the cursor to be loaded. 62 | /// The name of the cursor resource to be loaded. 63 | /// If the function succeeds, the return value is the handle to the newly loaded cursor. 64 | [DllImport("user32.dll")] 65 | private static extern int LoadCursor(int hInstance, int lpCursorName); 66 | 67 | /// 68 | /// Sets the cursor shape. 69 | /// 70 | /// A handle to the cursor. 71 | /// The return value is the handle to the previous cursor, if there was one. 72 | [DllImport("user32.dll")] 73 | private static extern int SetCursor(int hCursor); 74 | 75 | #endregion 76 | 77 | #region Overridden Methdods 78 | 79 | /// 80 | /// Processes Windows messages. 81 | /// 82 | /// The Windows to process. 83 | protected override void WndProc(ref Message m) 84 | { 85 | if (m.Msg == WM_SETCURSOR) 86 | { 87 | // Set the systems hand cursor. 88 | SetCursor(LoadCursor(0, IDC_HAND)); 89 | 90 | // The message has been handled. 91 | m.Result = IntPtr.Zero; 92 | return; 93 | } 94 | 95 | base.WndProc(ref m); 96 | } 97 | 98 | #endregion 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Gui/Controls/TableLayoutPanelEx.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: TableLayoutPanelEx.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2020 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using Couchcoding.Logbert.Gui.Interop; 32 | using System; 33 | using System.Windows.Forms; 34 | 35 | namespace Couchcoding.Logbert.Gui.Controls 36 | { 37 | /// 38 | /// Implements a more performant . 39 | /// 40 | public class TableLayoutPanelEx : TableLayoutPanel 41 | { 42 | #region Public Properties 43 | 44 | /// 45 | /// Gets the required creation parameters when the control handle is created. 46 | /// 47 | protected override CreateParams CreateParams 48 | { 49 | get 50 | { 51 | CreateParams cp = base.CreateParams; 52 | cp.ExStyle |= Win32.WS_EX_COMPOSITED; 53 | return cp; 54 | } 55 | } 56 | 57 | #endregion 58 | 59 | #region Private Methods 60 | 61 | /// 62 | /// Raises the CreateControl() method. 63 | /// 64 | protected override void OnCreateControl() 65 | { 66 | base.OnCreateControl(); 67 | 68 | SetStyle(ControlStyles.OptimizedDoubleBuffer, true); 69 | SetStyle(ControlStyles.CacheText, true); 70 | } 71 | 72 | #endregion 73 | 74 | #region Public Methods 75 | 76 | /// 77 | /// Disables any redrawing of the . 78 | /// 79 | public void BeginUpdate() 80 | { 81 | if (IsHandleCreated) 82 | { 83 | Win32.SendMessage(Handle, Win32.WM_SETREDRAW, IntPtr.Zero, IntPtr.Zero); 84 | } 85 | } 86 | 87 | /// 88 | /// Enables any redrawing of the . 89 | /// 90 | public void EndUpdate() 91 | { 92 | if (IsHandleCreated) 93 | { 94 | Win32.SendMessage(Handle, Win32.WM_SETREDRAW, new IntPtr(1), IntPtr.Zero); 95 | 96 | Parent?.Invalidate(true); 97 | } 98 | } 99 | 100 | #endregion 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Gui/Controls/ToolStripEx.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: ToolStripEx.cs 4 | // Package: GuiLibrary 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using System; 32 | using System.Windows.Forms; 33 | 34 | namespace Couchcoding.Logbert.Gui.Controls 35 | { 36 | /// 37 | /// Implements an enhanced control with enabled click through. 38 | /// 39 | public class ToolStripEx : ToolStrip 40 | { 41 | #region Private Consts 42 | 43 | /// 44 | /// Sent when the cursor is in an inactive window and the user presses a mouse button. 45 | /// 46 | private const uint WM_MOUSEACTIVATE = 0x21; 47 | 48 | /// 49 | /// Sent when the cursor is in an inactive window and the user presses a mouse button. 50 | /// 51 | private const uint MA_ACTIVATE = 0x1; 52 | 53 | /// 54 | /// Sent when the cursor is in an inactive window and the user presses a mouse button. 55 | /// 56 | private const uint MA_ACTIVATEANDEAT = 0x2; 57 | 58 | #endregion 59 | 60 | #region Overridden Methods 61 | 62 | /// 63 | /// Processes Windows messages. 64 | /// 65 | /// The Windows to process. 66 | protected override void WndProc(ref Message m) 67 | { 68 | base.WndProc(ref m); 69 | 70 | if (m.Msg == WM_MOUSEACTIVATE && m.Result == (IntPtr)MA_ACTIVATEANDEAT) 71 | { 72 | m.Result = (IntPtr)MA_ACTIVATE; 73 | } 74 | } 75 | 76 | #endregion 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Gui/Helper/DpiHelper.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: DialogForm.cs 4 | // Package: GuiLibrary 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2017 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using System.Drawing; 32 | using System.Windows.Forms; 33 | 34 | namespace Couchcoding.Logbert.Gui.Helper 35 | { 36 | /// 37 | /// Implements a helper class for DPI scaling. 38 | /// 39 | public sealed class DpiHelper 40 | { 41 | #region Private Consts 42 | 43 | /// 44 | /// Defines the default horizontal resolution. 45 | /// 46 | private const float DEFAULT_DPI_Y = 96.0f; 47 | 48 | /// 49 | /// Defines the default vertical resolution. 50 | /// 51 | private const float DEFAULT_DPI_X = 96.0f; 52 | 53 | #endregion 54 | 55 | #region Private Fields 56 | 57 | /// 58 | /// Holds the calculated DPI scaling. 59 | /// 60 | private static SizeF mDpiSize = new SizeF(96.0f, 96.0f); 61 | 62 | #endregion 63 | 64 | #region Public Methods 65 | 66 | /// 67 | /// Reloads the current DPI-Settings of the system. 68 | /// 69 | /// The to use the object from. 70 | public static void ReloadDpiSettings(Control ctrl) 71 | { 72 | if (ctrl != null) 73 | { 74 | using (Graphics grfx = ctrl.CreateGraphics()) 75 | { 76 | mDpiSize = new SizeF(grfx.DpiX, grfx.DpiY); 77 | } 78 | } 79 | } 80 | 81 | /// 82 | /// Rescales the given value by the currently used DPI-Settings. 83 | /// 84 | /// The value to rescale. 85 | /// The rescaled value. 86 | public static int RescaleByDpiY(int value) 87 | { 88 | return (int)((value / DEFAULT_DPI_Y) * mDpiSize.Height); 89 | } 90 | 91 | /// 92 | /// Rescales the given value by the currently used DPI-Settings. 93 | /// 94 | /// The value to rescale. 95 | /// The rescaled value. 96 | public static int RescaleByDpiX(int value) 97 | { 98 | return (int)((value / DEFAULT_DPI_X) * mDpiSize.Width); 99 | } 100 | 101 | #endregion 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Gui/Helper/OSHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Couchcoding.Logbert.Gui.Helper 4 | { 5 | public static class OSHelper 6 | { 7 | /// 8 | /// Indicates whether we're running on windows vista or higher, or not. 9 | /// 10 | public static bool IsWinVista 11 | { 12 | get 13 | { 14 | OperatingSystem os = Environment.OSVersion; 15 | return (os.Platform == PlatformID.Win32NT) && (os.Version.Major >= 6); 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Gui/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("Logbert Control Library")] 8 | [assembly: AssemblyDescription("Logbert Control Library")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("Couchcoding")] 11 | [assembly: AssemblyProduct("Logbert Control Library")] 12 | [assembly: AssemblyCopyright("Copyright © 2022 Couchcoding")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("15f05e70-88af-44a3-83a0-4d5e5a4f9c31")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("1.6.3.2")] 35 | [assembly: AssemblyFileVersion("1.6.3.2")] 36 | -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/.editorconfig: -------------------------------------------------------------------------------- 1 | # top-most EditorConfig file 2 | root = true 3 | 4 | # Unix-style newlines with a newline ending every file 5 | [*] 6 | end_of_line = lf 7 | insert_final_newline = true 8 | 9 | # 2 space indentation 10 | [*.cs] 11 | indent_style = space 12 | indent_size = 2 -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Interfaces/IThemable.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2018 Couchcoding 2 | 3 | // File: IThemable.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2018 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using Couchcoding.Logbert.Theme.Themes; 32 | using static System.Windows.Forms.Control; 33 | 34 | namespace Couchcoding.Logbert.Theme.Interfaces 35 | { 36 | /// 37 | /// Interface for all themable s 38 | /// 39 | public interface IThemable 40 | { 41 | #region Interface Properties 42 | 43 | /// 44 | /// Gets the s child elements. 45 | /// 46 | ControlCollection Controls 47 | { 48 | get; 49 | } 50 | 51 | #endregion 52 | 53 | #region Interface Methods 54 | 55 | /// 56 | /// Applies the current theme to the . 57 | /// 58 | /// The instance to apply. 59 | void ApplyTheme(BaseTheme theme); 60 | 61 | #endregion 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Metrics/ThemeMetrics.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2018 Couchcoding 2 | 3 | // File: ThemeMetrics.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2018 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using System.Windows.Forms; 32 | 33 | namespace Couchcoding.Logbert.Theme.Metrics 34 | { 35 | /// 36 | /// Implements the base class for theme metrics. 37 | /// 38 | public abstract class ThemeMetrics 39 | { 40 | #region Public Properties 41 | 42 | /// 43 | /// Determines whether the instance wants system like renering, or not. 44 | /// 45 | public abstract bool PreferSystemRendering 46 | { 47 | get; 48 | } 49 | 50 | /// 51 | /// Gets the for the column header text. 52 | /// 53 | public abstract Padding DataGridViewHeaderColumnPadding 54 | { 55 | get; 56 | } 57 | 58 | #endregion 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Metrics/VisualStudioBlueMetrics.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2018 Couchcoding 2 | 3 | // File: VisualStudioBlueMetrics.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2018 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | namespace Couchcoding.Logbert.Theme.Metrics 32 | { 33 | /// 34 | /// Implements the for the Visual Studio Blue theme. 35 | /// 36 | public sealed class VisualStudioBlueMetrics : VisualStudioLightMetrics 37 | { 38 | 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Metrics/VisualStudioDarkMetrics.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2018 Couchcoding 2 | 3 | // File: VisualStudioDarkMetrics.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2018 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | namespace Couchcoding.Logbert.Theme.Metrics 32 | { 33 | /// 34 | /// Implements the for the Visual Studio Dark theme. 35 | /// 36 | public sealed class VisualStudioDarkMetrics : VisualStudioLightMetrics 37 | { 38 | /// 39 | /// Determines whether the instance wants system like renering, or not. 40 | /// 41 | public override bool PreferSystemRendering => false; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Metrics/VisualStudioLightMetrics.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2018 Couchcoding 2 | 3 | // File: VisualStudioLightMetrics.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2018 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using System.Windows.Forms; 32 | 33 | namespace Couchcoding.Logbert.Theme.Metrics 34 | { 35 | /// 36 | /// Implements the for the Visual Studio Light theme. 37 | /// 38 | public class VisualStudioLightMetrics : ThemeMetrics 39 | { 40 | #region Private Consts and Static Fields 41 | 42 | /// 43 | /// Holds the default for the column header text. 44 | /// 45 | private static readonly Padding dataGridViewHeaderColumnPadding = new Padding(0, 2, 0, 2); 46 | 47 | #endregion 48 | 49 | #region Public Methods 50 | 51 | /// 52 | /// Gets the for the column header text. 53 | /// 54 | public override Padding DataGridViewHeaderColumnPadding => dataGridViewHeaderColumnPadding; 55 | 56 | /// 57 | /// Determines whether the instance wants system like renering, or not. 58 | /// 59 | public override bool PreferSystemRendering => false; 60 | 61 | #endregion 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Palettes/ThemeColorPalette.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2018 Couchcoding 2 | 3 | // File: ThemeColorPalette.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2018 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using System.Drawing; 32 | 33 | namespace Couchcoding.Logbert.Theme.Palettes 34 | { 35 | /// 36 | /// Implements the base class for theme color palettes. 37 | /// 38 | public abstract class ThemeColorPalette 39 | { 40 | #region Public Properties 41 | 42 | /// 43 | /// Gets the of the window content background. 44 | /// 45 | public abstract Color ContentBackground 46 | { 47 | get; 48 | } 49 | 50 | /// 51 | /// Gets the of the window content foreground. 52 | /// 53 | public abstract Color ContentForeground 54 | { 55 | get; 56 | } 57 | 58 | /// 59 | /// Gets the dimmed of the window content foreground. 60 | /// 61 | public abstract Color ContentForegroundDimmed 62 | { 63 | get; 64 | } 65 | 66 | /// 67 | /// Gets the of a divider line. 68 | /// 69 | public abstract Color DividerColor 70 | { 71 | get; 72 | } 73 | 74 | /// 75 | /// Gets the of a selection background. 76 | /// 77 | public abstract Color SelectionBackground 78 | { 79 | get; 80 | } 81 | 82 | /// 83 | /// Gets the of a selection foregound. 84 | /// 85 | public abstract Color SelectionForeground 86 | { 87 | get; 88 | } 89 | 90 | /// 91 | /// Gets the of a focused selection background. 92 | /// 93 | public abstract Color SelectionBackgroundFocused 94 | { 95 | get; 96 | } 97 | 98 | /// 99 | /// Gets the of a focused selection foreground. 100 | /// 101 | public abstract Color SelectionForegroundFocused 102 | { 103 | get; 104 | } 105 | 106 | #endregion 107 | } 108 | } 109 | -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Palettes/VisualStudioBluePalette.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2018 Couchcoding 2 | 3 | // File: VisualStudioBluePalette.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2018 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | namespace Couchcoding.Logbert.Theme.Palettes 32 | { 33 | /// 34 | /// Implements the for the Visual Studion Light theme 35 | /// 36 | public sealed class VisualStudioBluePalette : VisualStudioLightPalette 37 | { 38 | 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("Logbert Theme Library")] 8 | [assembly: AssemblyDescription("Logbert Theme Library")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("Couchcoding")] 11 | [assembly: AssemblyProduct("Logbert Theme Library")] 12 | [assembly: AssemblyCopyright("Copyright © 2022 Couchcoding")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("de30d0ed-e29f-4779-a057-c7c1f1ef4f59")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("1.6.3.2")] 35 | [assembly: AssemblyFileVersion("1.6.3.2")] 36 | -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmBookmarksTbNext_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmBookmarksTbNext_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmBookmarksTbNext_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmBookmarksTbNext_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmBookmarksTbNext_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmBookmarksTbNext_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmBookmarksTbPrevious_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmBookmarksTbPrevious_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmBookmarksTbPrevious_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmBookmarksTbPrevious_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmBookmarksTbPrevious_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmBookmarksTbPrevious_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmBookmarksTbRemove_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmBookmarksTbRemove_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmBookmarksTbRemove_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmBookmarksTbRemove_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmBookmarksTbRemove_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmBookmarksTbRemove_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmBookmarks_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmBookmarks_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmBookmarks_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmBookmarks_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmBookmarks_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmBookmarks_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmFilterTbAdd_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmFilterTbAdd_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmFilterTbAdd_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmFilterTbAdd_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmFilterTbAdd_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmFilterTbAdd_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmFilterTbEdit_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmFilterTbEdit_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmFilterTbEdit_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmFilterTbEdit_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmFilterTbEdit_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmFilterTbEdit_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmFilterTbRemove_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmFilterTbRemove_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmFilterTbRemove_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmFilterTbRemove_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmFilterTbRemove_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmFilterTbRemove_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmLogBookmark_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmLogBookmark_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmLogBookmark_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmLogBookmark_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmLogBookmark_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmLogBookmark_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmLogTreeNodeCollapsed_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmLogTreeNodeCollapsed_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmLogTreeNodeCollapsed_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmLogTreeNodeCollapsed_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmLogTreeNodeCollapsed_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmLogTreeNodeCollapsed_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmLogTreeNodeExpanded_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmLogTreeNodeExpanded_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmLogTreeNodeExpanded_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmLogTreeNodeExpanded_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmLogTreeNodeExpanded_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmLogTreeNodeExpanded_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbAbout_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbAbout_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbAbout_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbAbout_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbAbout_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbAbout_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbBookmark_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbBookmark_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbBookmark_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbBookmark_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbBookmark_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbBookmark_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbBottom_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbBottom_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbBottom_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbBottom_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbBottom_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbBottom_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbClear_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbClear_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbClear_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbClear_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbClear_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbClear_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbCloseAll_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbCloseAll_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbCloseAll_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbCloseAll_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbCloseAll_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbCloseAll_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbDebug_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbDebug_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbDebug_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbDebug_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbDebug_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbDebug_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbDetails_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbDetails_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbDetails_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbDetails_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbDetails_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbDetails_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbError_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbError_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbError_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbError_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbError_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbError_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbFatal_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbFatal_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbFatal_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbFatal_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbFatal_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbFatal_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbFilter_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbFilter_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbFilter_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbFilter_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbFilter_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbFilter_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbInfo_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbInfo_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbInfo_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbInfo_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbInfo_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbInfo_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbLogtree_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbLogtree_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbLogtree_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbLogtree_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbLogtree_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbLogtree_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbNew_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbNew_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbNew_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbNew_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbNew_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbNew_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbOpen_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbOpen_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbOpen_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbOpen_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbOpen_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbOpen_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbRefresh_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbRefresh_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbRefresh_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbRefresh_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbRefresh_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbRefresh_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSave_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSave_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSave_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSave_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSave_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSave_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSearch_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSearch_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSearch_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSearch_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSearch_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSearch_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSettings_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSettings_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSettings_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSettings_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSettings_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSettings_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbStart_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbStart_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbStart_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbStart_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbStart_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbStart_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbStatistic_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbStatistic_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbStatistic_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbStatistic_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbStatistic_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbStatistic_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSync_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSync_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSync_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSync_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSync_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbSync_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTimeshift_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTimeshift_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTimeshift_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTimeshift_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTimeshift_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTimeshift_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTop_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTop_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTop_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTop_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTop_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTop_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTraceLog_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTraceLog_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTraceLog_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTraceLog_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTraceLog_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTraceLog_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTrace_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTrace_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTrace_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTrace_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTrace_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbTrace_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbWarn_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbWarn_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbWarn_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbWarn_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbWarn_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbWarn_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbZoomIn_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbZoomIn_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbZoomIn_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbZoomIn_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbZoomIn_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbZoomIn_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbZoomOut_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbZoomOut_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbZoomOut_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbZoomOut_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmMainTbZoomOut_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmMainTbZoomOut_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmOptionsFontAndColor_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmOptionsFontAndColor_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmOptionsFontAndColor_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmOptionsFontAndColor_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmOptionsFontAndColor_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmOptionsFontAndColor_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbClearLog_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbClearLog_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbClearLog_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbClearLog_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbClearLog_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbClearLog_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbCopy_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbCopy_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbCopy_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbCopy_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbCopy_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbCopy_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbCut_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbCut_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbCut_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbCut_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbCut_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbCut_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbPaste_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbPaste_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbPaste_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbPaste_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbPaste_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbPaste_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbRedo_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbRedo_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbRedo_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbRedo_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbRedo_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbRedo_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbStart_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbStart_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbStart_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbStart_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbStart_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbStart_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbStop_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbStop_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbStop_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbStop_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbStop_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbStop_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbUndo_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbUndo_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbUndo_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbUndo_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbUndo_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbUndo_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbWordWrap_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbWordWrap_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbWordWrap_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbWordWrap_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbWordWrap_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmScriptTbWordWrap_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmSearchOptions_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmSearchOptions_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmSearchOptions_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmSearchOptions_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmSearchOptions_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmSearchOptions_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmStatisticTbLegend_Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmStatisticTbLegend_Blue.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmStatisticTbLegend_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmStatisticTbLegend_Dark.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/FrmStatisticTbLegend_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Couchcoding.Logbert.Theme/Resources/FrmStatisticTbLegend_Light.png -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Resources/ThemeResources.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Drawing; 4 | using System.Linq; 5 | using System.Text; 6 | 7 | namespace Couchcoding.Logbert.Theme.Resources 8 | { 9 | public abstract class ThemeResources 10 | { 11 | public abstract Dictionary Images 12 | { 13 | get; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Theme.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2018 Couchcoding 2 | 3 | // File: Theme.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2018 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | namespace Couchcoding.Logbert.Theme 32 | { 33 | /// 34 | /// All supported themes. 35 | /// 36 | public enum Theme 37 | { 38 | VisualStudioLight, 39 | VisualStudioBlue, 40 | VisualStudioDark 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Themes/VisualStudioBlueTheme.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2018 Couchcoding 2 | 3 | // File: VisualStudioBlueTheme.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2018 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using Couchcoding.Logbert.Theme.Metrics; 32 | using Couchcoding.Logbert.Theme.Palettes; 33 | using Couchcoding.Logbert.Theme.Resources; 34 | using WeifenLuo.WinFormsUI.Docking; 35 | 36 | namespace Couchcoding.Logbert.Theme.Themes 37 | { 38 | /// 39 | /// Implements a that looks like Visual Studio Blue. 40 | /// 41 | public class VisualStudioBlueTheme : BaseTheme 42 | { 43 | #region Public Properties 44 | 45 | /// 46 | /// Gets the name of the instance. 47 | /// 48 | public override string Name => VisualStudioThemeBlueName; 49 | 50 | /// 51 | /// Gets the window style to set for this theme. 52 | /// 53 | public override string WindowThemeName => "Explorer"; 54 | 55 | #endregion 56 | 57 | #region Constructor 58 | 59 | /// 60 | /// Initializes a new instance of the . 61 | /// 62 | public VisualStudioBlueTheme() 63 | { 64 | mApplicationTheme = new VS2015BlueTheme(); 65 | mColorPalette = new VisualStudioBluePalette(); 66 | mMetrics = new VisualStudioBlueMetrics(); 67 | mResources = new VisualStudioBlueResources(); 68 | } 69 | 70 | #endregion 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Themes/VisualStudioDarkTheme.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2018 Couchcoding 2 | 3 | // File: VisualStudioDarkTheme.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2018 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using Couchcoding.Logbert.Theme.Metrics; 32 | using Couchcoding.Logbert.Theme.Palettes; 33 | using Couchcoding.Logbert.Theme.Resources; 34 | using WeifenLuo.WinFormsUI.Docking; 35 | 36 | namespace Couchcoding.Logbert.Theme.Themes 37 | { 38 | /// 39 | /// Implements a that looks like Visual Studio Dark. 40 | /// 41 | public class VisualStudioDarkTheme : BaseTheme 42 | { 43 | #region Public Properties 44 | 45 | /// 46 | /// Gets the name of the instance. 47 | /// 48 | public override string Name => VisualStudioThemeDarkName; 49 | 50 | /// 51 | /// Gets the window style to set for this theme. 52 | /// 53 | public override string WindowThemeName => "DarkMode_Explorer"; 54 | 55 | #endregion 56 | 57 | #region Constructor 58 | 59 | /// 60 | /// Initializes a new instance of the . 61 | /// 62 | public VisualStudioDarkTheme() 63 | { 64 | mApplicationTheme = new VS2015DarkTheme(); 65 | mColorPalette = new VisualStudioDarkPalette(); 66 | mMetrics = new VisualStudioDarkMetrics(); 67 | mResources = new VisualStudioDarkResources(); 68 | } 69 | 70 | #endregion 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /src/Couchcoding.Logbert.Theme/Themes/VisualStudioLightTheme.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2018 Couchcoding 2 | 3 | // File: VisualStudioLightTheme.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2018 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using Couchcoding.Logbert.Theme.Metrics; 32 | using Couchcoding.Logbert.Theme.Palettes; 33 | using Couchcoding.Logbert.Theme.Resources; 34 | using WeifenLuo.WinFormsUI.Docking; 35 | 36 | namespace Couchcoding.Logbert.Theme.Themes 37 | { 38 | /// 39 | /// Implements a that looks like Visual Studio Light. 40 | /// 41 | public class VisualStudioLightTheme : BaseTheme 42 | { 43 | #region Public Properties 44 | 45 | /// 46 | /// Gets the name of the instance. 47 | /// 48 | public override string Name => VisualStudioThemeLightName; 49 | 50 | /// 51 | /// Gets the window style to set for this theme. 52 | /// 53 | public override string WindowThemeName => "Explorer"; 54 | 55 | #endregion 56 | 57 | #region Constructor 58 | 59 | /// 60 | /// Initializes a new instance of the . 61 | /// 62 | public VisualStudioLightTheme() 63 | { 64 | mApplicationTheme = new VS2015LightTheme(); 65 | mColorPalette = new VisualStudioLightPalette(); 66 | mMetrics = new VisualStudioLightMetrics(); 67 | mResources = new VisualStudioLightResources(); 68 | } 69 | 70 | #endregion 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /src/Logbert Setup/Bitmaps/bannrbmp.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert Setup/Bitmaps/bannrbmp.bmp -------------------------------------------------------------------------------- /src/Logbert Setup/Bitmaps/dlgbmp.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert Setup/Bitmaps/dlgbmp.bmp -------------------------------------------------------------------------------- /src/Logbert Setup/Includes/ArpProperties.wxi: -------------------------------------------------------------------------------- 1 | 2 | 3 | 32 | 33 | 34 | 35 | 37 | 38 | 40 | 41 | 43 | 44 | 46 | 47 | 49 | 50 | 52 | 53 | 55 | 56 | 59 | 60 | -------------------------------------------------------------------------------- /src/Logbert Setup/Includes/GlobalDefines.wxi: -------------------------------------------------------------------------------- 1 | 2 | 3 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /src/Logbert Setup/Includes/UIFragments/CstmInstallDirDlg.wxs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 1 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /src/Logbert Setup/Install/Files.wxi: -------------------------------------------------------------------------------- 1 | 2 | 3 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /src/Logbert Setup/Install/Parts/General.wxi: -------------------------------------------------------------------------------- 1 | 2 | 3 | 32 | 33 | 34 | 35 | 36 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 50 | 54 | 55 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /src/Logbert Setup/Install/Shortcuts.wxi: -------------------------------------------------------------------------------- 1 | 2 | 3 | 32 | 33 | 34 | 35 | 36 | 38 | 39 | 46 | 47 | 49 | 50 | 51 | 52 | 53 | 58 | 59 | 64 | 65 | 66 | 68 | 69 | 75 | 76 | 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /src/Logbert Setup/Localization/en-US.wxl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 32 | 33 | 36 | 37 | 1252 38 | 1033 39 | 40 | Tool to view log4net, nlog, syslog and other logs. 41 | http://www.couchcoding.com 42 | http://www.couchcoding.com 43 | http://www.couchcoding.com 44 | 45 | Logbert Setup 46 | Logbert, log4net, nlog, syslog 47 | Tool to view log4net, nlog, syslog and other logs. 48 | 49 | Start Logbert. 50 | Uninstall 51 | Uninstall Logbert. 52 | 53 | You need at least Windows 7 for Logbert. 54 | Logbert needs the .NET Framework 4.8 or higher. 55 | 56 | -------------------------------------------------------------------------------- /src/Logbert Setup/Resources/LgbrtStpInst.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert Setup/Resources/LgbrtStpInst.ico -------------------------------------------------------------------------------- /src/Logbert/.editorconfig: -------------------------------------------------------------------------------- 1 | # top-most EditorConfig file 2 | root = true 3 | 4 | # Unix-style newlines with a newline ending every file 5 | [*] 6 | end_of_line = lf 7 | insert_final_newline = true 8 | 9 | # 2 space indentation 10 | [*.cs] 11 | indent_style = space 12 | indent_size = 2 -------------------------------------------------------------------------------- /src/Logbert/Controls/ColorMap.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Couchcoding.Logbert.Controls 2 | { 3 | partial class ColorMap 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Component Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.SuspendLayout(); 32 | // 33 | // ColorMap 34 | // 35 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 36 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 37 | this.Name = "ColorMap"; 38 | this.Size = new System.Drawing.Size(24, 320); 39 | this.ResumeLayout(false); 40 | 41 | } 42 | 43 | #endregion 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/Logbert/Controls/DockContentEx.cs: -------------------------------------------------------------------------------- 1 | using Couchcoding.Logbert.Helper; 2 | using System; 3 | using System.Windows.Forms; 4 | using WeifenLuo.WinFormsUI.Docking; 5 | 6 | namespace Couchcoding.Logbert.Controls 7 | { 8 | public class DockContentEx : DockContent 9 | { 10 | private ScrollBars visibleScrollbars; 11 | 12 | public ScrollBars VisibleScrollbars 13 | { 14 | get 15 | { 16 | return visibleScrollbars; 17 | } 18 | set 19 | { 20 | if (!Equals(value, visibleScrollbars)) 21 | { 22 | OnVisibleScrollbarsChanged(value); 23 | } 24 | } 25 | } 26 | 27 | protected virtual void OnVisibleScrollbarsChanged(ScrollBars newValue) 28 | { 29 | visibleScrollbars = newValue; 30 | } 31 | 32 | protected override void OnResize(EventArgs e) 33 | { 34 | base.OnResize(e); 35 | VisibleScrollbars = this.GetVisibleScrollbars(); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/Logbert/Controls/DockPanelEx.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2019 Couchcoding 2 | 3 | // File: ListBoxEx.cs 4 | // Package: GuiLibrary 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2019 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using Couchcoding.Logbert.Gui.Helper; 32 | using System.Drawing; 33 | using System.Windows.Forms; 34 | using WeifenLuo.WinFormsUI.Docking; 35 | 36 | namespace Couchcoding.Logbert.Controls 37 | { 38 | /// 39 | /// Implements a that supports a background image even if it is themed. 40 | /// 41 | internal sealed class DockPanelEx : DockPanel 42 | { 43 | #region Overridden Methods 44 | 45 | /// 46 | /// Raises the event. 47 | /// 48 | /// A that contains the event data. 49 | protected override void OnPaint(PaintEventArgs e) 50 | { 51 | base.OnPaint(e); 52 | 53 | if (BackgroundImage != null && Height > 0 && Width > 0) 54 | { 55 | Rectangle imageDimensions = new Rectangle( 56 | 0 57 | , 0 58 | , BackgroundImage.Width 59 | , BackgroundImage.Height); 60 | 61 | e.Graphics.DrawImage(BackgroundImage, new Rectangle( 62 | 0 63 | , 0 64 | , DpiHelper.RescaleByDpiX(imageDimensions.Width) 65 | , DpiHelper.RescaleByDpiY(imageDimensions.Height)) 66 | , imageDimensions 67 | , GraphicsUnit.Pixel); 68 | } 69 | } 70 | 71 | #endregion 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /src/Logbert/Dialogs/Docking/FrmLogDetails.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Couchcoding.Logbert.Dialogs.Docking 2 | { 3 | partial class FrmMessageDetails 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Component Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMessageDetails)); 32 | this.SuspendLayout(); 33 | // 34 | // FrmMessageDetails 35 | // 36 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 37 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 38 | this.ClientSize = new System.Drawing.Size(624, 201); 39 | this.DockAreas = ((WeifenLuo.WinFormsUI.Docking.DockAreas)(((((WeifenLuo.WinFormsUI.Docking.DockAreas.Float | WeifenLuo.WinFormsUI.Docking.DockAreas.DockLeft) 40 | | WeifenLuo.WinFormsUI.Docking.DockAreas.DockRight) 41 | | WeifenLuo.WinFormsUI.Docking.DockAreas.DockTop) 42 | | WeifenLuo.WinFormsUI.Docking.DockAreas.DockBottom))); 43 | this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 44 | this.HideOnClose = true; 45 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 46 | this.Name = "FrmMessageDetails"; 47 | this.ShowHint = WeifenLuo.WinFormsUI.Docking.DockState.DockBottom; 48 | this.TabText = "Message Details"; 49 | this.Text = "Message Details"; 50 | this.ResumeLayout(false); 51 | 52 | } 53 | 54 | #endregion 55 | 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/Logbert/Dialogs/FrmAbout.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: FrmAbout.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using System; 32 | using System.Windows.Forms; 33 | 34 | using Couchcoding.Logbert.Gui.Dialogs; 35 | using Couchcoding.Logbert.Helper; 36 | using Couchcoding.Logbert.Properties; 37 | 38 | namespace Couchcoding.Logbert.Dialogs 39 | { 40 | /// 41 | /// Implements the about dialog. 42 | /// 43 | public partial class FrmAbout : DialogForm 44 | { 45 | #region Private Methods 46 | 47 | /// 48 | /// Handles the LinkClicked event of the copy to clipboard . 49 | /// 50 | private void LinkLabelEx1LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 51 | { 52 | this.CopyToClipboard(txtLicense.Text); 53 | } 54 | 55 | /// 56 | /// Handles the DoubleClick event of the . 57 | /// Opens the default webbrowser if the user double clicks on a link. 58 | /// 59 | /// 60 | /// 61 | private void LstComponentsDoubleClick(object sender, EventArgs e) 62 | { 63 | ListViewHitTestInfo info = lstComponents.HitTest(lstComponents.PointToClient(MousePosition)); 64 | 65 | if (info.SubItem != null && info.SubItem.Text.StartsWith("http")) 66 | { 67 | Browser.Open(info.SubItem.Text, this); 68 | } 69 | } 70 | 71 | #endregion 72 | 73 | #region Constructor 74 | 75 | /// 76 | /// Creates a new instance of the dialog. 77 | /// 78 | public FrmAbout() 79 | { 80 | InitializeComponent(); 81 | 82 | lblVersion.Text = string.Format( 83 | Resources.strAboutDlgVersion 84 | , Application.ProductVersion); 85 | 86 | lblCopyright.Text = Resources.strAboutDlgCopyright; 87 | } 88 | 89 | #endregion 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /src/Logbert/Dialogs/FrmTimestamps.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | 10 | using Couchcoding.Logbert.Gui.Dialogs; 11 | 12 | namespace Couchcoding.Logbert.Dialogs 13 | { 14 | public partial class FrmTimestamps : DialogForm 15 | { 16 | #region Private Fields 17 | 18 | /// 19 | /// The default format string to parse a timestamp value. 20 | /// 21 | public static readonly string DefaultDateTimeFormat = "MMM d HH:mm:ss"; 22 | 23 | #endregion 24 | 25 | #region Public Properties 26 | 27 | /// 28 | /// Gets the specified timestamp format to parse. 29 | /// 30 | public string Timestamps => txtTimestamps.Text ?? DefaultDateTimeFormat; 31 | 32 | #endregion 33 | 34 | #region Constructor 35 | 36 | /// 37 | /// Initializes a new instance of the dialog. 38 | /// 39 | public FrmTimestamps() 40 | { 41 | InitializeComponent(); 42 | } 43 | 44 | /// 45 | /// Initializes a new instance of the dialog with the specified parameters. 46 | /// 47 | /// The initial timestamp format to display. 48 | public FrmTimestamps(string format) 49 | { 50 | InitializeComponent(); 51 | 52 | txtTimestamps.Text = format ?? DefaultDateTimeFormat; 53 | } 54 | 55 | #endregion 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/Logbert/Helper/Browser.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2017 Couchcoding 2 | 3 | // File: Browser.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2017 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using System; 32 | using System.Diagnostics; 33 | using System.Windows.Forms; 34 | 35 | namespace Couchcoding.Logbert.Helper 36 | { 37 | /// 38 | /// Implements helper methods to access the system browser. 39 | /// 40 | public static class Browser 41 | { 42 | #region Public Methods 43 | 44 | /// 45 | /// Opens the system web browser with the specified URI. 46 | /// 47 | /// THE URI to open in the system browser. 48 | /// The as parent for the that is shown on error. 49 | public static void Open(string URI, IWin32Window owner) 50 | { 51 | try 52 | { 53 | Process.Start(URI); 54 | } 55 | catch (Exception ex1) 56 | { 57 | // System.ComponentModel.Win32Exception is a known exception that occurs when Firefox is default browser. 58 | // It actually opens the browser but STILL throws this exception so we can just ignore it. If not this exception, 59 | // then attempt to open the URL in IE instead. 60 | if (ex1.GetType().ToString() != "System.ComponentModel.Win32Exception") 61 | { 62 | // Sometimes throws exception so we have to just ignore. 63 | // This is a common .NET issue that no one online really has a great reason for so now we just need to try to open the URL using IE if we can. 64 | try 65 | { 66 | ProcessStartInfo startInfo = 67 | new ProcessStartInfo("IExplore.exe", URI); 68 | 69 | Process.Start(startInfo); 70 | } 71 | catch 72 | { 73 | MessageBox.Show( 74 | owner 75 | , string.Format(Properties.Resources.strMainUnableToOpenUri, URI) 76 | , Application.ProductName 77 | , MessageBoxButtons.OK 78 | , MessageBoxIcon.Error); 79 | } 80 | } 81 | } 82 | } 83 | 84 | #endregion 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /src/Logbert/Helper/BrushCache.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: BrushCache.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using System.Collections.Generic; 32 | using System.Drawing; 33 | 34 | namespace Com.Couchcoding.Logbert.Helper 35 | { 36 | /// 37 | /// Implements a cache for . 38 | /// 39 | public static class BrushCache 40 | { 41 | #region Private Fields 42 | 43 | /// 44 | /// The one and only cache. 45 | /// 46 | private readonly static Dictionary mBrushCache = new Dictionary(); 47 | 48 | /// 49 | /// Simple object for thread synchronization. 50 | /// 51 | private static readonly object mSync = new object(); 52 | 53 | #endregion 54 | 55 | #region Public Methods 56 | 57 | /// 58 | /// Gets a cached that matches the given . 59 | /// 60 | /// The to get a for 61 | /// The cached that matches the given . 62 | public static Brush GetBrushFromColor(Color color) 63 | { 64 | lock (mSync) 65 | { 66 | if (!mBrushCache.ContainsKey(color)) 67 | { 68 | mBrushCache.Add(color, new SolidBrush(color)); 69 | } 70 | 71 | return mBrushCache[color]; 72 | } 73 | } 74 | 75 | #endregion 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /src/Logbert/Helper/DataProtection.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Security.Cryptography; 5 | using System.Text; 6 | 7 | namespace Couchcoding.Logbert.Helper 8 | { 9 | /// 10 | /// Class to protect data like credentials. 11 | /// 12 | public sealed class DataProtection 13 | { 14 | #region Private Methods 15 | 16 | /// 17 | /// Gets a byte array with additional entropy to improve the strength of the encryption algorithm. 18 | /// 19 | /// 20 | private static byte[] GetAditionalEntropy() 21 | { 22 | return Encoding.Unicode.GetBytes("{472242CB-00B0-47F0-B2FA-72591E9419E0}"); 23 | } 24 | 25 | /// 26 | /// Encrypts the data using DataProtectionScope.CurrentUser. 27 | /// The result can be decrypted only by the same current user. 28 | /// 29 | /// The data to encrypt. 30 | /// The encrypted data. 31 | private static byte[] Protect(byte[] data) 32 | { 33 | return ProtectedData.Protect(data, GetAditionalEntropy(), 34 | DataProtectionScope.CurrentUser); 35 | } 36 | 37 | /// 38 | /// Decrypts the data using DataProtectionScope.CurrentUser. 39 | /// 40 | /// The data to encrypt. 41 | /// The encrypted data. 42 | private static byte[] Unprotect(byte[] data) 43 | { 44 | return ProtectedData.Unprotect(data, GetAditionalEntropy(), 45 | DataProtectionScope.CurrentUser); 46 | } 47 | 48 | #endregion 49 | 50 | #region Public Methods 51 | 52 | /// 53 | /// Encrpts a string using an internal .NET algorithm. 54 | /// 55 | /// The string to encrypt. 56 | /// The encrypted string. 57 | public static string EncryptString(string stringToEngrypt) 58 | { 59 | try 60 | { 61 | UnicodeEncoding unicodeEncoding = new UnicodeEncoding(); 62 | 63 | byte[] stringAsByteArray = unicodeEncoding.GetBytes(stringToEngrypt); 64 | byte[] encodedData = Protect(stringAsByteArray); 65 | 66 | return Convert.ToBase64String(encodedData); 67 | } 68 | catch (Exception ex) 69 | { 70 | Logger.Error(ex.Message); 71 | } 72 | 73 | return string.Empty; 74 | } 75 | 76 | /// 77 | /// Descrypts a string using an internal .NET algorithm. 78 | /// 79 | /// The string to decrypt. 80 | /// The decrypted string. 81 | public static string DecryptString(string stringToDegrypt) 82 | { 83 | try 84 | { 85 | UnicodeEncoding unicodeEncoding = new UnicodeEncoding(); 86 | 87 | byte[] encodedData = Convert.FromBase64String(stringToDegrypt); 88 | byte[] decodedData = Unprotect(encodedData); 89 | 90 | return unicodeEncoding.GetString(decodedData); 91 | } 92 | catch (Exception ex) 93 | { 94 | Logger.Error(ex.Message); 95 | } 96 | 97 | return string.Empty; 98 | } 99 | #endregion 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /src/Logbert/Helper/DelayedCallback.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Helper/DelayedCallback.cs -------------------------------------------------------------------------------- /src/Logbert/Helper/EncodingWrapper.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2018 Couchcoding 2 | 3 | // File: EncodingWrapper.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2018 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using System.Text; 32 | 33 | namespace Couchcoding.Logbert.Helper 34 | { 35 | /// 36 | /// Class to wrap information. 37 | /// 38 | public class EncodingWrapper 39 | { 40 | #region Public Properties 41 | 42 | /// 43 | /// Gets the associated . 44 | /// 45 | public EncodingInfo Encoding 46 | { 47 | get; 48 | } 49 | 50 | /// 51 | /// Gets the codepage of the associated . 52 | /// 53 | public int Codepage => Encoding.CodePage; 54 | 55 | #endregion 56 | 57 | #region Overridden Methods 58 | 59 | /// Returns a string that represents the current object. 60 | /// A string that represents the current object. 61 | /// 2 62 | public override string ToString() 63 | { 64 | return Encoding.DisplayName; 65 | } 66 | 67 | #endregion 68 | 69 | #region Constructor 70 | 71 | /// 72 | /// Initializes a new instance of the with the specified parameters. 73 | /// 74 | /// 75 | public EncodingWrapper(EncodingInfo encoding) 76 | { 77 | Encoding = encoding; 78 | } 79 | 80 | #endregion 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /src/Logbert/Helper/FixedSizedQueue.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2019 Couchcoding 2 | 3 | // File: FixedSizedQueue.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2019 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using System.Collections.Concurrent; 32 | 33 | namespace Couchcoding.Logbert.Helper 34 | { 35 | /// 36 | /// Implements a of a fixed size. 37 | /// 38 | internal class FixedSizedQueue : ConcurrentQueue 39 | { 40 | #region Private Fields 41 | 42 | /// 43 | /// Simple object for thread synchronization. 44 | /// 45 | private readonly object mSyncObject = new object(); 46 | 47 | #endregion 48 | 49 | #region Public Properties 50 | 51 | /// 52 | /// Gets the fixed size of the . 53 | /// 54 | public int Size 55 | { 56 | get; 57 | } 58 | 59 | #endregion 60 | 61 | #region Public Methods 62 | 63 | /// 64 | /// Adds an object at the end of the . 65 | /// 66 | /// The object to add at the end of the 67 | public new void Enqueue(T obj) 68 | { 69 | // Add the object to the queue. 70 | base.Enqueue(obj); 71 | 72 | lock (mSyncObject) 73 | { 74 | while (base.Count > Size) 75 | { 76 | // Ensure we don't exceed the maximum size. 77 | TryDequeue(out T outObj); 78 | } 79 | } 80 | } 81 | 82 | #endregion 83 | 84 | #region Constructor 85 | 86 | /// 87 | /// Creates a new instance of the with the specified . 88 | /// 89 | /// The maximum size of the . 90 | public FixedSizedQueue(int size) 91 | { 92 | Size = size; 93 | } 94 | 95 | #endregion 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /src/Logbert/Helper/FontCache.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2018 Couchcoding 2 | 3 | // File: FontCache.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using System.Collections.Generic; 32 | using System.Drawing; 33 | 34 | namespace Couchcoding.Logbert.Helper 35 | { 36 | /// 37 | /// Implements a cache for s. 38 | /// 39 | public static class FontCache 40 | { 41 | #region Private Fields 42 | 43 | /// 44 | /// The one and only cache. 45 | /// 46 | private static readonly Dictionary mFontCache = new Dictionary(); 47 | 48 | /// 49 | /// Simple object for thread synchronization to access the s. 50 | /// 51 | private static readonly object mFontSync = new object(); 52 | 53 | #endregion 54 | 55 | #region Public Methods 56 | 57 | /// 58 | /// Gets the cached that matches the requered parameters. 59 | /// 60 | /// The name of the . 61 | /// The size of the . 62 | /// The style of the . 63 | /// 64 | public static Font GetFontFromIdentifier(string name, float size, FontStyle style) 65 | { 66 | lock (mFontSync) 67 | { 68 | string fontKey = $"{name}_{size}_{style}"; 69 | 70 | if (!mFontCache.ContainsKey(fontKey)) 71 | { 72 | mFontCache[fontKey] = new Font(name, size, style); 73 | } 74 | 75 | return mFontCache[fontKey]; 76 | } 77 | } 78 | 79 | #endregion 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /src/Logbert/Helper/LogColumnData.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2018 Couchcoding 2 | 3 | // File: LogColumnData.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2018 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | namespace Couchcoding.Logbert.Helper 32 | { 33 | /// 34 | /// Implements a class to store log column specific data. 35 | /// 36 | public sealed class LogColumnData 37 | { 38 | #region Public Properties 39 | 40 | /// 41 | /// Gets the name of the log column. 42 | /// 43 | public string Name 44 | { 45 | get; 46 | } 47 | 48 | /// 49 | /// Gets the visibility state of the log column. 50 | /// 51 | public bool Visible 52 | { 53 | get; 54 | } 55 | 56 | /// 57 | /// Gets the width of the log column. 58 | /// 59 | public int Width 60 | { 61 | get; 62 | } 63 | 64 | #endregion 65 | 66 | #region Constructor 67 | 68 | /// 69 | /// Initializes a new instance of the with the specified parameters. 70 | /// 71 | /// The name of the log column. 72 | /// The visibility state of the log column. 73 | /// The width of the log column. 74 | public LogColumnData(string name, bool visible = true, int width = 100) 75 | { 76 | Name = name ?? string.Empty; 77 | Visible = visible; 78 | Width = width; 79 | } 80 | 81 | #endregion 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /src/Logbert/Helper/LogMessageSelectedEventArgs.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: LogMessageSelectedEventArgs.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using Couchcoding.Logbert.Logging; 32 | using System; 33 | 34 | namespace Couchcoding.Logbert.Helper 35 | { 36 | /// 37 | /// Implements a custom for selection. 38 | /// 39 | public sealed class LogMessageSelectedEventArgs : EventArgs 40 | { 41 | #region Public Properties 42 | 43 | /// 44 | /// GEts the selected . 45 | /// 46 | public LogMessage Message 47 | { 48 | get; 49 | private set; 50 | } 51 | 52 | #endregion 53 | 54 | #region Constructor 55 | 56 | /// 57 | /// Creates a new instance of the class. 58 | /// 59 | /// The selected . 60 | public LogMessageSelectedEventArgs(LogMessage message) 61 | { 62 | Message = message; 63 | } 64 | 65 | #endregion 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /src/Logbert/Helper/ThreadAttachedDelayedCallback.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Helper/ThreadAttachedDelayedCallback.cs -------------------------------------------------------------------------------- /src/Logbert/Helper/WaitCursor.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Helper/WaitCursor.cs -------------------------------------------------------------------------------- /src/Logbert/Interfaces/IBookmarkObserver.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: IBookmarkObserver.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | namespace Couchcoding.Logbert.Interfaces 32 | { 33 | /// 34 | /// Interface for all bookmark observer. 35 | /// 36 | public interface IBookmarkObserver 37 | { 38 | #region Interface Methods 39 | 40 | /// 41 | /// Raises the BookmarksChanged event of the bookmark . 42 | /// 43 | void BookmarksChanged(); 44 | 45 | #endregion 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/Logbert/Interfaces/IDelayedCallbackHandler.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: IDelayedCallbackHandler.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | namespace Couchcoding.Logbert.Interfaces 32 | { 33 | public interface IDelayedCallbackHandler 34 | { 35 | /// 36 | /// Start.Called when the Delay has expired and operation is to begin. 37 | /// This implementation attaches this Thread to the Main Thread's Input. 38 | /// 39 | void Start(); 40 | 41 | 42 | /// 43 | /// Finish.Called when the operation is to finish (usually IDispose) 44 | /// This implementation detaches this Thread from the Main Thread's Input. 45 | /// 46 | void Finish(); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/Logbert/Interfaces/ILogContainer.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: ILogContainer.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using System; 32 | using System.Collections.Generic; 33 | 34 | using Couchcoding.Logbert.Logging; 35 | 36 | namespace Couchcoding.Logbert.Interfaces 37 | { 38 | /// 39 | /// Interface for all container. 40 | /// 41 | public interface ILogContainer 42 | { 43 | #region Interface Properties 44 | 45 | /// 46 | /// Gets the received s. 47 | /// 48 | List LogMessages 49 | { 50 | get; 51 | } 52 | 53 | /// 54 | /// Gets or sets the tail state. 55 | /// 56 | bool TailEnabled 57 | { 58 | get; 59 | set; 60 | } 61 | 62 | #endregion 63 | 64 | #region Interface Methods 65 | 66 | /// 67 | /// Synchronizes the tree to the specified . 68 | /// 69 | /// The to synchronize the tree with. 70 | void SynchronizeTree(LogMessage message); 71 | 72 | /// 73 | /// Update the value of the UI update timer interval. 74 | /// 75 | /// The new value for the UI update time. 76 | void UpdateTimerInterval(int newTimerInterval); 77 | 78 | /// 79 | /// Updates the information display in the . 80 | /// 81 | void UpdateStatusBarInformation(); 82 | 83 | /// 84 | /// Clear all received logging data. 85 | /// 86 | void ClearAll(); 87 | 88 | #endregion 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /src/Logbert/Interfaces/ILogFilterHandler.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: ILogFilterHandler.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using Couchcoding.Logbert.Logging.Filter; 32 | 33 | namespace Couchcoding.Logbert.Interfaces 34 | { 35 | /// 36 | /// Interface for all handler. 37 | /// 38 | public interface ILogFilterHandler 39 | { 40 | #region Interface Methods 41 | 42 | /// 43 | /// Handles the change of the of the registered 44 | /// 45 | void FilterChanged(); 46 | 47 | /// 48 | /// Registers a to the instance. 49 | /// 50 | /// The to register. 51 | void RegisterFilterProvider(ILogFilterProvider provider); 52 | 53 | /// 54 | /// Unregisters a from the instance. 55 | /// 56 | /// The to unregister. 57 | void UnregisterFilterProvider(ILogFilterProvider provider); 58 | 59 | #endregion 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /src/Logbert/Interfaces/ILogFilterProvider.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: ILogFilterProvider.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using System.Collections.Generic; 32 | using Couchcoding.Logbert.Logging.Filter; 33 | 34 | namespace Couchcoding.Logbert.Interfaces 35 | { 36 | /// 37 | /// Interface for all provider. 38 | /// 39 | public interface ILogFilterProvider 40 | { 41 | #region Interface Properties 42 | 43 | /// 44 | /// Gets all defines to apply. 45 | /// 46 | IList Filter 47 | { 48 | get; 49 | } 50 | 51 | #endregion 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/Logbert/Interfaces/ILogHandler.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: ILogHandler.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using System; 32 | 33 | using Couchcoding.Logbert.Logging; 34 | 35 | namespace Couchcoding.Logbert.Interfaces 36 | { 37 | /// 38 | /// Interface for all handler. 39 | /// 40 | public interface ILogHandler 41 | { 42 | #region Interface Methods 43 | 44 | /// 45 | /// Handles the given s. 46 | /// 47 | /// The of s to handle. 48 | void HandleMessage(LogMessage[] logMsgs); 49 | 50 | /// 51 | /// Handles the given . 52 | /// 53 | /// The to handle. 54 | void HandleMessage(LogMessage logMsg); 55 | 56 | /// 57 | /// Handle the specified message. 58 | /// 59 | /// The error message to handle. 60 | void HandleError(LogError error); 61 | 62 | #endregion 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/Logbert/Interfaces/ILogPresenter.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: ILogPresenter.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using Couchcoding.Logbert.Logging; 32 | using System.Collections.Generic; 33 | 34 | namespace Couchcoding.Logbert.Interfaces 35 | { 36 | /// 37 | /// Interface for all presenter. 38 | /// 39 | public interface ILogPresenter 40 | { 41 | #region Interface Properties 42 | 43 | /// 44 | /// Gets the count of currently displayed s. 45 | /// 46 | int DisplayedLogMessagesCount 47 | { 48 | get; 49 | } 50 | 51 | #endregion 52 | 53 | #region Interface Methods 54 | 55 | /// 56 | /// Updates the visible s. 57 | /// 58 | /// The list of s to display. 59 | /// The count of new s. 60 | void LogMessagesChanged(List messages, int delta = -1); 61 | 62 | /// 63 | /// Selects the on the given . 64 | /// 65 | /// The index of the to select. 66 | /// True if the of the given was selected successfully, otherwise false. 67 | bool SelectLogMessage(int index); 68 | 69 | /// 70 | /// Selects the given . 71 | /// 72 | /// The o select 73 | /// True if the given was selected successfully, otherwise false. 74 | bool SelectLogMessage(LogMessage message); 75 | 76 | /// 77 | /// Clears all shown s. 78 | /// 79 | void ClearAll(); 80 | 81 | /// 82 | /// Increases the size of the content. 83 | /// 84 | /// True if further increasing is possible, otherwise false. 85 | bool ZoomIn(); 86 | 87 | /// 88 | /// Decreases the size of the content. 89 | /// 90 | /// True if further decreasing is possible, otherwise false. 91 | bool ZoomOut(); 92 | 93 | #endregion 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /src/Logbert/Interfaces/ILogSettingsCtrl.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: ILogSettingsCtrl.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using System; 32 | using System.Windows.Forms; 33 | 34 | using Couchcoding.Logbert.Receiver; 35 | 36 | namespace Couchcoding.Logbert.Interfaces 37 | { 38 | /// 39 | /// Interface for all settings s. 40 | /// 41 | public interface ILogSettingsCtrl : IDisposable 42 | { 43 | #region Public Methods 44 | 45 | /// 46 | /// Validates the entered settings. 47 | /// 48 | /// The of the validation. 49 | ValidationResult ValidateSettings(); 50 | 51 | /// 52 | /// Creates and returns a fully configured instance. 53 | /// 54 | /// A fully configured instance. 55 | ILogProvider GetConfiguredInstance(); 56 | 57 | #endregion 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src/Logbert/Interfaces/IOptionPanel.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: IOptionPanel.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | namespace Couchcoding.Logbert.Interfaces 32 | { 33 | /// 34 | /// An Interface for all s to s display in the option dialog. 35 | /// 36 | public interface IOptionPanel 37 | { 38 | #region Interface Properties 39 | 40 | /// 41 | /// Gets the name of the . 42 | /// 43 | string PanelName 44 | { 45 | get; 46 | } 47 | 48 | /// 49 | /// Gets the to display left of the name. 50 | /// 51 | System.Drawing.Image Image 52 | { 53 | get; 54 | } 55 | 56 | #endregion 57 | 58 | #region Interface Methods 59 | 60 | /// 61 | /// Method will be called before the is shown first. 62 | /// 63 | void InitializeControl(); 64 | 65 | /// 66 | /// Method will be called before the is closed. 67 | /// 68 | /// True if the may be closed, otherwise false. 69 | bool ValidateControl(); 70 | 71 | /// 72 | /// Method will be called before the is shown. 73 | /// 74 | void BeforePanelShow(); 75 | 76 | /// 77 | /// Method will be called before the is shown. 78 | /// 79 | /// The parent of the . 80 | void AdjustSizeAndLocation(System.Windows.Forms.Control parentControl); 81 | 82 | /// 83 | /// Informs the child control about the change of the parent . 84 | /// 85 | /// The new of the parent . 86 | void AdjustSize(System.Drawing.Size parentSize); 87 | 88 | /// 89 | /// Tells the to save the new settings. 90 | /// 91 | void SaveSettings(); 92 | 93 | #endregion 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /src/Logbert/Interfaces/ISearchable.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: ISearchable.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using Couchcoding.Logbert.Logging; 32 | 33 | namespace Couchcoding.Logbert.Interfaces 34 | { 35 | /// 36 | /// Interface for all searchable content. 37 | /// 38 | public interface ISearchable 39 | { 40 | #region Interface Methods 41 | 42 | /// 43 | /// Search for a that contains the given . 44 | /// 45 | /// The patter to search for. 46 | /// Determines the search direction. 47 | /// Determines whether in all open s should be searched, or not. 48 | void SearchLogMessage(string pattern, bool searchForward = true, bool searchAllDocuments = false); 49 | 50 | #endregion 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/Logbert/Libraries/MoonSharp.Interpreter.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Libraries/MoonSharp.Interpreter.dll -------------------------------------------------------------------------------- /src/Logbert/Libraries/ScintillaNET.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Libraries/ScintillaNET.dll -------------------------------------------------------------------------------- /src/Logbert/Libraries/WeifenLuo.WinFormsUI.Docking.ThemeVS2015.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Libraries/WeifenLuo.WinFormsUI.Docking.ThemeVS2015.dll -------------------------------------------------------------------------------- /src/Logbert/Libraries/WeifenLuo.WinFormsUI.Docking.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Libraries/WeifenLuo.WinFormsUI.Docking.dll -------------------------------------------------------------------------------- /src/Logbert/Logbert.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Logbert.ico -------------------------------------------------------------------------------- /src/Logbert/Logging/Filter/LogFilter.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: LogFilter.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | namespace Couchcoding.Logbert.Logging.Filter 32 | { 33 | /// 34 | /// Implements base vlass to filter for s. 35 | /// 36 | public abstract class LogFilter 37 | { 38 | #region Public Properties 39 | 40 | /// 41 | /// Gets or sets whether the is active, or not. 42 | /// 43 | public abstract bool IsActive 44 | { 45 | get; 46 | } 47 | 48 | #endregion 49 | 50 | #region Public Methods 51 | 52 | /// 53 | /// Determines whether the given matches the filter, or not. 54 | /// 55 | /// The that may be match the filter. 56 | /// True if the given matches the filter, otherwise false. 57 | public abstract bool Match(LogMessage value); 58 | 59 | #endregion 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /src/Logbert/Logging/Filter/LogFilterLevel.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: LogFilterLevel.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | namespace Couchcoding.Logbert.Logging.Filter 32 | { 33 | /// 34 | /// Implements a simple comparing for s. 35 | /// 36 | public sealed class LogFilterLevel : LogFilter 37 | { 38 | #region Public Properties 39 | 40 | /// 41 | /// Determines whether the is active, or not. 42 | /// 43 | public override bool IsActive 44 | { 45 | get 46 | { 47 | return true; 48 | } 49 | } 50 | 51 | /// 52 | /// Gets the to filter for. 53 | /// 54 | public LogLevel Value 55 | { 56 | get; 57 | private set; 58 | } 59 | 60 | #endregion 61 | 62 | #region Public Methods 63 | 64 | /// 65 | /// Determines whether the given matches the filter, or not. 66 | /// 67 | /// The that may be match the filter. 68 | /// True if the given matches the filter, otherwise false. 69 | public override bool Match(LogMessage value) 70 | { 71 | return (Value & value.Level) != 0; 72 | } 73 | 74 | #endregion 75 | 76 | #region Constructor 77 | 78 | /// 79 | /// Creates a new instance of a . 80 | /// 81 | /// The to filter for. 82 | public LogFilterLevel(LogLevel level) 83 | { 84 | Value = level; 85 | } 86 | 87 | #endregion 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /src/Logbert/Logging/Filter/LogFilterLogger.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: LogFilterLogger.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | namespace Couchcoding.Logbert.Logging.Filter 32 | { 33 | /// 34 | /// Implements a simple comparing s logger value for s. 35 | /// 36 | public sealed class LogFilterLogger : LogFilter 37 | { 38 | #region Private Fields 39 | 40 | /// 41 | /// Holds the path of the logger to filter. 42 | /// 43 | private readonly string mFilterPath; 44 | 45 | /// 46 | /// Holds the value if only the start, or the entire value should be compared. 47 | /// 48 | private readonly bool mRecursive; 49 | 50 | #endregion 51 | 52 | #region Public Properties 53 | 54 | /// 55 | /// Determines whether the is active, or not. 56 | /// 57 | public override bool IsActive 58 | { 59 | get 60 | { 61 | return true; 62 | } 63 | } 64 | 65 | #endregion 66 | 67 | #region Public Methods 68 | 69 | /// 70 | /// Determines whether the given matches the filter, or not. 71 | /// 72 | /// The value that may be match the filter. 73 | /// True if the given matches the filter, otherwise false. 74 | public override bool Match(LogMessage value) 75 | { 76 | if (value == null) 77 | { 78 | return false; 79 | } 80 | 81 | return mRecursive 82 | ? value.Logger.StartsWith(mFilterPath) 83 | : Equals(value.Logger, mFilterPath); 84 | } 85 | 86 | #endregion 87 | 88 | #region Constructor 89 | 90 | /// 91 | /// Creates a new instance of the . 92 | /// 93 | /// The path of the logger to filter. 94 | /// Determines whether the entire string, or only the start should be compared. 95 | public LogFilterLogger(string filterPath, bool recursive) 96 | { 97 | mFilterPath = filterPath; 98 | mRecursive = recursive; 99 | } 100 | 101 | #endregion 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /src/Logbert/Logging/Filter/LogFilterRegex.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2014 Couchcoding 2 | 3 | // File: Log4NetUdpReceiver.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // Copyright (c) 2014, Couchcoding. All rights reserved. 8 | // 9 | // This library is free software; you can redistribute it and/or 10 | // modify it under the terms of the GNU Lesser General Public 11 | // License as published by the Free Software Foundation; either 12 | // version 3.0 of the License, or (at your option) any later version. 13 | // 14 | // This library is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | // Lesser General Public License for more details. 18 | // 19 | // You should have received a copy of the GNU Lesser General Public 20 | // License along with this library. 21 | 22 | #endregion 23 | 24 | using System.Text.RegularExpressions; 25 | 26 | namespace Com.Couchcoding.Logbert.Logging.Filter 27 | { 28 | /// 29 | /// Implements a simple regular expression bases for s. 30 | /// 31 | public class LogFilterRegex : LogFilterString 32 | { 33 | #region Private Fields 34 | 35 | /// 36 | /// Holds the regular expression of the filter. 37 | /// 38 | private readonly Regex mFilterRegex; 39 | 40 | #endregion 41 | 42 | #region Public Methods 43 | 44 | /// 45 | /// Determines whether the given matches the filter, or not. 46 | /// 47 | /// The value that may be match the filter. 48 | /// True if the given matches the filter, otherwise false. 49 | public override bool Match(object value) 50 | { 51 | return mFilterRegex != null && 52 | mFilterRegex.IsMatch(value.ToString()); 53 | } 54 | 55 | #endregion 56 | 57 | #region Constructor 58 | 59 | /// 60 | /// Creates a new instance of a . 61 | /// 62 | /// The column index to apply the filter to. 63 | /// The regular expression to filter for. 64 | public LogFilterRegex(int columnIndex, string value) : base(columnIndex, value) 65 | { 66 | mFilterRegex = new Regex(value ?? string.Empty); 67 | } 68 | 69 | #endregion 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/Logbert/Logging/Filter/LogFilterString.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2014 Couchcoding 2 | 3 | // File: Log4NetUdpReceiver.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // Copyright (c) 2014, Couchcoding. All rights reserved. 8 | // 9 | // This library is free software; you can redistribute it and/or 10 | // modify it under the terms of the GNU Lesser General Public 11 | // License as published by the Free Software Foundation; either 12 | // version 3.0 of the License, or (at your option) any later version. 13 | // 14 | // This library is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | // Lesser General Public License for more details. 18 | // 19 | // You should have received a copy of the GNU Lesser General Public 20 | // License along with this library. 21 | 22 | #endregion 23 | 24 | namespace Com.Couchcoding.Logbert.Logging.Filter 25 | { 26 | /// 27 | /// Implements a simple string comparing for s. 28 | /// 29 | public class LogFilterString : LogFilter 30 | { 31 | #region Public Properties 32 | 33 | /// 34 | /// Gets the value to filter for. 35 | /// 36 | public string Value 37 | { 38 | get; 39 | private set; 40 | } 41 | 42 | #endregion 43 | 44 | #region Public Methods 45 | 46 | /// 47 | /// Determines whether the given matches the filter, or not. 48 | /// 49 | /// The value that may be match the filter. 50 | /// True if the given matches the filter, otherwise false. 51 | public override bool Match(object value) 52 | { 53 | return Equals(Value, value); 54 | } 55 | 56 | #endregion 57 | 58 | #region Constructor 59 | 60 | /// 61 | /// Creates a new instance of a . 62 | /// 63 | /// The column index to apply the filter to. 64 | /// The string value to filter for. 65 | public LogFilterString(int columnIndex, string value) : base(columnIndex) 66 | { 67 | Value = value; 68 | } 69 | 70 | #endregion 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /src/Logbert/Logging/LogLevel.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: LogLevel.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using System; 32 | 33 | namespace Couchcoding.Logbert.Logging 34 | { 35 | /// 36 | /// All supported s of a . 37 | /// 38 | [Flags] 39 | public enum LogLevel 40 | { 41 | /// 42 | /// No log level to display. 43 | /// 44 | None = 0, 45 | 46 | /// 47 | /// Most detailed information. 48 | /// 49 | Trace = 1, 50 | 51 | /// 52 | /// Detailed information on the flow through the system. 53 | /// 54 | Debug = 2, 55 | 56 | /// 57 | /// Interesting runtime events (startup/shutdown). Expect these to be immediately visible on a console, so be conservative and keep to a minimum. 58 | /// 59 | Info = 4, 60 | 61 | /// 62 | /// Use of deprecated APIs, poor use of API, 'almost' errors, other runtime situations that are undesirable or unexpected, but not necessarily "wrong". 63 | /// 64 | Warning = 8, 65 | 66 | /// 67 | /// Other runtime errors or unexpected conditions. 68 | /// 69 | Error = 16, 70 | 71 | /// 72 | /// Severe errors that cause premature termination. 73 | /// 74 | Fatal = 32, 75 | 76 | /// 77 | /// All log levels may be displayed. 78 | /// 79 | All = Trace | Debug | Info | Warning | Error | Fatal 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /src/Logbert/MainForm.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/MainForm.cs -------------------------------------------------------------------------------- /src/Logbert/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Program.cs -------------------------------------------------------------------------------- /src/Logbert/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | using System.Resources; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Logbert")] 9 | [assembly: AssemblyDescription("Logbert is an advanced log message viewer for log4net, log4j and others.")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Couchcoding")] 12 | [assembly: AssemblyProduct("Logbert")] 13 | [assembly: AssemblyCopyright("Copyright © 2022 Couchcoding")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("AB7E3BC2-D693-4056-8212-42142D88069C")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | [assembly: AssemblyVersion("1.6.3.2")] 33 | [assembly: AssemblyFileVersion("1.6.3.2")] 34 | [assembly: NeutralResourcesLanguageAttribute("")] 35 | -------------------------------------------------------------------------------- /src/Logbert/Properties/app.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/Logbert/Receiver/CustomReceiver/CustomHttpReceiver/BasicHttpAuthentication.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Text; 3 | 4 | namespace Couchcoding.Logbert.Receiver.CustomReceiver.CustomHttpReceiver 5 | { 6 | public class BasicHttpAuthentication 7 | { 8 | #region Private Fields 9 | 10 | private readonly string mUsername; 11 | 12 | private readonly string mPassword; 13 | 14 | #endregion 15 | 16 | #region Public Properties 17 | 18 | public string AuthenticationType => "Basic"; 19 | 20 | #endregion 21 | 22 | #region Public Methods 23 | 24 | public string GetToken() 25 | { 26 | return Convert.ToBase64String(Encoding.ASCII.GetBytes($"{mUsername}:{mPassword}")); 27 | } 28 | 29 | #endregion 30 | 31 | #region Constructor 32 | 33 | public BasicHttpAuthentication(string username, string password) 34 | { 35 | mUsername = username ?? string.Empty; 36 | mPassword = password ?? string.Empty; 37 | } 38 | 39 | #endregion 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/Logbert/Receiver/CustomReceiver/LogColumnType.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2017 Couchcoding 2 | 3 | // File: LogColumnType.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2017 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | namespace Couchcoding.Logbert.Receiver.CustomReceiver 32 | { 33 | /// 34 | /// All supported types. 35 | /// 36 | public enum LogColumnType 37 | { 38 | /// 39 | /// Unknown column type. Used for default text. 40 | /// 41 | Unknown, 42 | 43 | /// 44 | /// Timestamp column type. 45 | /// 46 | Timestamp, 47 | 48 | /// 49 | /// Column type for log levels. 50 | /// 51 | Level, 52 | 53 | /// 54 | /// Column type fot the log message. 55 | /// 56 | Message 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /src/Logbert/Receiver/ValidationResult.cs: -------------------------------------------------------------------------------- 1 | #region Copyright © 2015 Couchcoding 2 | 3 | // File: ValidationResult.cs 4 | // Package: Logbert 5 | // Project: Logbert 6 | // 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2015 Couchcoding 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in 19 | // all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 27 | // THE SOFTWARE. 28 | 29 | #endregion 30 | 31 | using Couchcoding.Logbert.Properties; 32 | 33 | namespace Couchcoding.Logbert.Receiver 34 | { 35 | /// 36 | /// Implements a type to represent a validation result. 37 | /// 38 | public struct ValidationResult 39 | { 40 | #region Public Properties 41 | 42 | /// 43 | /// Determines whether the represents a success state, or not. 44 | /// 45 | public bool IsSuccess 46 | { 47 | get; 48 | private set; 49 | } 50 | 51 | /// 52 | /// Gets or sets the error message for the instance. 53 | /// 54 | public string ErrorMsg 55 | { 56 | get; 57 | private set; 58 | } 59 | 60 | /// 61 | /// Gets a new instance that indicates a success state. 62 | /// 63 | public static ValidationResult Success 64 | { 65 | get 66 | { 67 | return new ValidationResult( 68 | true 69 | , string.Empty); 70 | } 71 | } 72 | 73 | #endregion 74 | 75 | #region Public Methods 76 | 77 | /// 78 | /// Gets a new instance that indicates a non success state. 79 | /// 80 | /// The occured error the represents. 81 | /// A new instance that indicates a non success state. 82 | public static ValidationResult Error(string errMsg) 83 | { 84 | return new ValidationResult( 85 | false 86 | , errMsg ?? Resources.strValidationResultUnkownError); 87 | } 88 | 89 | #endregion 90 | 91 | #region Constructor 92 | 93 | /// 94 | /// Creates a new instance of the type. 95 | /// 96 | /// True if the indicates success, otherwise false. 97 | /// The error message that describes a non success state. 98 | private ValidationResult(bool isSuccess, string errorMsg) : this() 99 | { 100 | IsSuccess = isSuccess; 101 | ErrorMsg = errorMsg; 102 | } 103 | 104 | #endregion 105 | } 106 | } 107 | -------------------------------------------------------------------------------- /src/Logbert/Resources/Debug_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/Debug_Light.png -------------------------------------------------------------------------------- /src/Logbert/Resources/Error_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/Error_Light.png -------------------------------------------------------------------------------- /src/Logbert/Resources/Fatal_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/Fatal_Light.png -------------------------------------------------------------------------------- /src/Logbert/Resources/FindSymbol_6263.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/FindSymbol_6263.png -------------------------------------------------------------------------------- /src/Logbert/Resources/Info_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/Info_Light.png -------------------------------------------------------------------------------- /src/Logbert/Resources/LogLevel_16x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/LogLevel_16x.png -------------------------------------------------------------------------------- /src/Logbert/Resources/Logbert Logo Background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/Logbert Logo Background.png -------------------------------------------------------------------------------- /src/Logbert/Resources/Logbert Start Screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/Logbert Start Screen.png -------------------------------------------------------------------------------- /src/Logbert/Resources/NoBookmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/NoBookmark.png -------------------------------------------------------------------------------- /src/Logbert/Resources/PencilAngled_16xMD_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/PencilAngled_16xMD_color.png -------------------------------------------------------------------------------- /src/Logbert/Resources/Remove_16xMD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/Remove_16xMD.png -------------------------------------------------------------------------------- /src/Logbert/Resources/RunTests_8790.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/RunTests_8790.png -------------------------------------------------------------------------------- /src/Logbert/Resources/Script_16x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/Script_16x.png -------------------------------------------------------------------------------- /src/Logbert/Resources/StatusAnnotations_Information_16xLG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/StatusAnnotations_Information_16xLG.png -------------------------------------------------------------------------------- /src/Logbert/Resources/Trace_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/Trace_Light.png -------------------------------------------------------------------------------- /src/Logbert/Resources/VSO_Time_16x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/VSO_Time_16x.png -------------------------------------------------------------------------------- /src/Logbert/Resources/Warn_Light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/Warn_Light.png -------------------------------------------------------------------------------- /src/Logbert/Resources/action_add_16xMD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/action_add_16xMD.png -------------------------------------------------------------------------------- /src/Logbert/Resources/arrow_Down_16xLG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/arrow_Down_16xLG.png -------------------------------------------------------------------------------- /src/Logbert/Resources/arrow_Up_16xLG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/arrow_Up_16xLG.png -------------------------------------------------------------------------------- /src/Logbert/Resources/eyedropper_16xLG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/eyedropper_16xLG.png -------------------------------------------------------------------------------- /src/Logbert/Resources/font_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/font_color.png -------------------------------------------------------------------------------- /src/Logbert/Resources/log_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/log_error.png -------------------------------------------------------------------------------- /src/Logbert/Resources/logbert.about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/logbert.about.png -------------------------------------------------------------------------------- /src/Logbert/Resources/properties_16xLG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/couchcoding/Logbert/1b88c91315f9c16d0d66ed730eba19841a9cccc4/src/Logbert/Resources/properties_16xLG.png --------------------------------------------------------------------------------