@@ -72,7 +72,10 @@ public partial class LogTabWindow : Form
7272
7373 public LogTabWindow ( string [ ] fileNames , int instanceNumber , bool showInstanceNumbers )
7474 {
75- InitializeComponent ( ) ;
75+ InitializeComponent ( ) ;
76+
77+ ChangeTheme ( Controls ) ;
78+
7679 _startupFileNames = fileNames ;
7780 this . _instanceNumber = instanceNumber ;
7881 this . _showInstanceNumbers = showInstanceNumbers ;
@@ -83,7 +86,7 @@ public LogTabWindow(string[] fileNames, int instanceNumber, bool showInstanceNum
8386 HilightGroupList = ConfigManager . Settings . hilightGroupList ;
8487
8588 Rectangle led = new Rectangle ( 0 , 0 , 8 , 2 ) ;
86-
89+
8790 for ( int i = 0 ; i < _leds . Length ; ++ i )
8891 {
8992 _leds [ i ] = led ;
@@ -97,27 +100,27 @@ public LogTabWindow(string[] fileNames, int instanceNumber, bool showInstanceNum
97100 _ledBrushes [ 2 ] = new SolidBrush ( Color . FromArgb ( 255 , 0 , 220 , 0 ) ) ;
98101 _ledBrushes [ 3 ] = new SolidBrush ( Color . FromArgb ( 255 , 0 , 220 , 0 ) ) ;
99102 _ledBrushes [ 4 ] = new SolidBrush ( Color . FromArgb ( 255 , 0 , 220 , 0 ) ) ;
100-
103+
101104 _offLedBrush = new SolidBrush ( Color . FromArgb ( grayAlpha , 160 , 160 , 160 ) ) ;
102-
105+
103106 _dirtyLedBrush = new SolidBrush ( Color . FromArgb ( 255 , 220 , 0 , 00 ) ) ;
104-
107+
105108 _tailLedBrush [ 0 ] = new SolidBrush ( Color . FromArgb ( 255 , 50 , 100 , 250 ) ) ; // Follow tail: blue-ish
106109 _tailLedBrush [ 1 ] = new SolidBrush ( Color . FromArgb ( grayAlpha , 160 , 160 , 160 ) ) ; // Don't follow tail: gray
107110 _tailLedBrush [ 2 ] = new SolidBrush ( Color . FromArgb ( 255 , 220 , 220 , 0 ) ) ; // Stop follow tail (trigger): yellow-ish
108-
111+
109112 _syncLedBrush = new SolidBrush ( Color . FromArgb ( 255 , 250 , 145 , 30 ) ) ;
110-
113+
111114 CreateIcons ( ) ;
112-
115+
113116 _tabStringFormat . LineAlignment = StringAlignment . Center ;
114117 _tabStringFormat . Alignment = StringAlignment . Near ;
115118
116119 ToolStripControlHost host = new ToolStripControlHost ( checkBoxFollowTail ) ;
117-
120+
118121 host . Padding = new Padding ( 20 , 0 , 0 , 0 ) ;
119122 host . BackColor = Color . FromKnownColor ( KnownColor . Transparent ) ;
120-
123+
121124 int index = buttonToolStrip . Items . IndexOfKey ( "toolStripButtonTail" ) ;
122125
123126 toolStripEncodingASCIIItem . Text = Encoding . ASCII . HeaderName ;
@@ -151,6 +154,108 @@ public LogTabWindow(string[] fileNames, int instanceNumber, bool showInstanceNum
151154
152155 #endregion
153156
157+ #region ColorTheme
158+ public void ChangeTheme ( Control . ControlCollection container )
159+ {
160+ LogExpert . Config . ColorMode . LoadColorMode ( ) ;
161+ LogExpert . Config . ColorMode . UseImmersiveDarkMode ( this . Handle , LogExpert . Config . ColorMode . DarkModeEnabled ) ;
162+
163+ #region ApplyColorToAllControls
164+ foreach ( Control component in container )
165+ {
166+ if ( component . Controls != null && component . Controls . Count > 0 )
167+ {
168+ ChangeTheme ( component . Controls ) ;
169+ component . BackColor = LogExpert . Config . ColorMode . BackgroundColor ;
170+ component . ForeColor = LogExpert . Config . ColorMode . ForeColor ;
171+ }
172+ else
173+ {
174+ component . BackColor = LogExpert . Config . ColorMode . BackgroundColor ;
175+ component . ForeColor = LogExpert . Config . ColorMode . ForeColor ;
176+ }
177+
178+ if ( component is MenuStrip )
179+ {
180+ var menu = ( MenuStrip ) component ;
181+
182+ foreach ( ToolStripMenuItem item in menu . Items )
183+ {
184+ item . ForeColor = LogExpert . Config . ColorMode . ForeColor ;
185+ item . BackColor = LogExpert . Config . ColorMode . BackgroundColor ;
186+
187+ try
188+ {
189+ for ( var x = 0 ; x < item . DropDownItems . Count ; x ++ )
190+ {
191+ var children = item . DropDownItems [ x ] ;
192+ children . ForeColor = LogExpert . Config . ColorMode . ForeColor ;
193+ children . BackColor = LogExpert . Config . ColorMode . MenuBackgroundColor ;
194+
195+
196+ if ( children is ToolStripDropDownItem ) {
197+
198+ for ( var y = 0 ; y < ( ( ToolStripDropDownItem ) children ) . DropDownItems . Count ; y ++ )
199+ {
200+ var subChildren = ( ( ToolStripDropDownItem ) children ) . DropDownItems [ y ] ;
201+ subChildren . ForeColor = LogExpert . Config . ColorMode . ForeColor ;
202+ subChildren . BackColor = LogExpert . Config . ColorMode . MenuBackgroundColor ;
203+ }
204+ }
205+ }
206+ }
207+ catch ( Exception ex )
208+ {
209+ _logger . Error ( ex , "An error occured while applying style dynamically to all Controls under LogTabWindow:" ) ;
210+ }
211+ }
212+ }
213+ }
214+ #endregion
215+
216+ // Colors for selected menus
217+ mainMenuStrip . Renderer = new LogExpert . Extensions . ExtendedMenuStripRenderer ( ) ;
218+
219+ // Dock special color
220+ dockPanel . DockBackColor = LogExpert . Config . ColorMode . DockBackgroundColor ;
221+
222+ // Remove toolstrip bottom border
223+ buttonToolStrip . Renderer = new LogExpert . Extensions . ToolStripRendererExtension ( ) ;
224+
225+ #region Tabs
226+ tabContextMenuStrip . Renderer = new LogExpert . Extensions . ExtendedMenuStripRenderer ( ) ;
227+
228+ // Tabs menu
229+ for ( var y = 0 ; y < tabContextMenuStrip . Items . Count ; y ++ )
230+ {
231+ var item = tabContextMenuStrip . Items [ y ] ;
232+ item . ForeColor = LogExpert . Config . ColorMode . ForeColor ;
233+ item . BackColor = LogExpert . Config . ColorMode . MenuBackgroundColor ;
234+ }
235+
236+ // Tabs line
237+ dockPanel . Skin . DockPaneStripSkin . ToolWindowGradient . DockStripGradient . StartColor = LogExpert . Config . ColorMode . TabsBackgroundStripColor ;
238+ dockPanel . Skin . DockPaneStripSkin . ToolWindowGradient . DockStripGradient . EndColor = LogExpert . Config . ColorMode . TabsBackgroundStripColor ;
239+
240+ dockPanel . Skin . DockPaneStripSkin . DocumentGradient . DockStripGradient . StartColor = LogExpert . Config . ColorMode . TabsBackgroundStripColor ;
241+ dockPanel . Skin . DockPaneStripSkin . DocumentGradient . DockStripGradient . EndColor = LogExpert . Config . ColorMode . TabsBackgroundStripColor ;
242+
243+ // Tabs
244+ dockPanel . Skin . DockPaneStripSkin . ToolWindowGradient . ActiveTabGradient . StartColor = LogExpert . Config . ColorMode . ActiveTabColor ;
245+ dockPanel . Skin . DockPaneStripSkin . ToolWindowGradient . ActiveTabGradient . EndColor = LogExpert . Config . ColorMode . ActiveTabColor ;
246+ dockPanel . Skin . DockPaneStripSkin . ToolWindowGradient . ActiveTabGradient . TextColor = LogExpert . Config . ColorMode . ForeColor ;
247+
248+ dockPanel . Skin . DockPaneStripSkin . DocumentGradient . ActiveTabGradient . StartColor = LogExpert . Config . ColorMode . ActiveTabColor ;
249+ dockPanel . Skin . DockPaneStripSkin . DocumentGradient . ActiveTabGradient . EndColor = LogExpert . Config . ColorMode . ActiveTabColor ;
250+ dockPanel . Skin . DockPaneStripSkin . DocumentGradient . ActiveTabGradient . TextColor = LogExpert . Config . ColorMode . ForeColor ;
251+
252+ dockPanel . Skin . DockPaneStripSkin . DocumentGradient . InactiveTabGradient . StartColor = LogExpert . Config . ColorMode . InactiveTabColor ;
253+ dockPanel . Skin . DockPaneStripSkin . DocumentGradient . InactiveTabGradient . EndColor = LogExpert . Config . ColorMode . InactiveTabColor ;
254+ dockPanel . Skin . DockPaneStripSkin . DocumentGradient . InactiveTabGradient . TextColor = LogExpert . Config . ColorMode . ForeColor ;
255+ #endregion Tabs
256+ }
257+ #endregion
258+
154259 #region Delegates
155260
156261 private delegate void AddFileTabsDelegate ( string [ ] fileNames ) ;
0 commit comments