├── .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 | 
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 |
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 |
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 |
78 |
79 |
80 |
--------------------------------------------------------------------------------
/src/Logbert Setup/Localization/en-US.wxl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
32 |
33 |
36 |
37 | 1252
38 | 1033
39 |
40 |
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 |
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
--------------------------------------------------------------------------------