1010using Aga . Controls . Tree . NodeControls ;
1111using OpenHardwareMonitor . Hardware ;
1212using OpenHardwareMonitor . Hardware . Storage ;
13- using OpenHardwareMonitor . UI . Themes ;
1413using OpenHardwareMonitor . Utilities ;
1514using OpenHardwareMonitor . WMI ;
16- using sergiye . Common ;
1715
1816namespace OpenHardwareMonitor . UI ;
1917
@@ -123,7 +121,7 @@ public MainForm()
123121 _systemTray . HideShowCommand += HideShowClick ;
124122 _systemTray . ExitCommand += ExitClick ;
125123
126- if ( Software . OperatingSystem . IsUnix )
124+ if ( OperatingSystemHelper . IsUnix )
127125 {
128126 // Unix
129127 treeView . RowHeight = Math . Max ( treeView . RowHeight , 18 ) ;
@@ -543,6 +541,7 @@ private void InitializeTheme()
543541 treeContextMenu . Renderer = new ThemedToolStripRenderer ( ) ;
544542 ThemedVScrollIndicator . AddToControl ( treeView ) ;
545543 ThemedHScrollIndicator . AddToControl ( treeView ) ;
544+ TreeViewAdvThemeExtender . SubscribeToThemes ( ) ;
546545
547546 if ( Theme . SupportsAutoThemeSwitching ( ) )
548547 {
@@ -556,16 +555,13 @@ private void InitializeTheme()
556555 themeMenuItem . DropDownItems . Add ( _autoThemeMenuItem ) ;
557556 }
558557
559- Theme setTheme = Theme . All . FirstOrDefault ( theme => _settings . GetValue ( "theme" , "auto" ) == theme . Id ) ;
558+ var allThemes = CustomTheme . GetAllThemes ( "themes" , "OpenHardwareMonitor.Resources.themes" ) . OrderBy ( x => x . DisplayName ) . ToList ( ) ;
559+ Theme setTheme = allThemes . FirstOrDefault ( theme => _settings . GetValue ( "theme" , "auto" ) == theme . Id ) ;
560560 if ( setTheme != null )
561561 {
562562 Theme . Current = setTheme ;
563563 Theme . Current . Apply ( this ) ;
564564 }
565- else
566- {
567- themeMenuItem . DropDownItems [ 0 ] . PerformClick ( ) ;
568- }
569565
570566 void AddThemeMenuItems ( IEnumerable < Theme > themes )
571567 {
@@ -583,9 +579,14 @@ void AddThemeMenuItems(IEnumerable<Theme> themes)
583579 }
584580 }
585581
586- AddThemeMenuItems ( Theme . All . Where ( t => t is not CustomTheme ) ) ;
582+ AddThemeMenuItems ( allThemes . Where ( t => t is not CustomTheme ) ) ;
587583 themeMenuItem . DropDownItems . Add ( "-" ) ; //separator
588- AddThemeMenuItems ( Theme . All . Where ( t => t is CustomTheme ) ) ;
584+ AddThemeMenuItems ( allThemes . Where ( t => t is CustomTheme ) ) ;
585+
586+ if ( setTheme == null && themeMenuItem . DropDownItems . Count > 0 )
587+ {
588+ themeMenuItem . DropDownItems [ 0 ] . PerformClick ( ) ;
589+ }
589590 }
590591
591592 private void OnThemeMenuItemClick ( object sender , EventArgs e )
@@ -714,12 +715,22 @@ private void MainForm_Load(object sender, EventArgs e)
714715 RestoreCollapsedNodeState ( treeView ) ;
715716 treeView . Width += 1 ; //just to apply column auto-resize
716717
718+ Updater . Subscribe (
719+ ( message , isError ) => {
720+ MessageBox . Show ( message , Updater . ApplicationName , MessageBoxButtons . OK , isError ? MessageBoxIcon . Warning : MessageBoxIcon . Information ) ;
721+ } ,
722+ ( message ) => {
723+ return MessageBox . Show ( message , Updater . ApplicationName , MessageBoxButtons . OKCancel , MessageBoxIcon . Question ) == DialogResult . OK ;
724+ } ,
725+ Application . Exit
726+ ) ;
727+
717728 //will display prompt only if update available & when main form displayed
718729 var timer = new Timer ( ) ;
719730 timer . Interval = 3000 ;
720731 timer . Tick += async ( _ , _ ) => {
721732 timer . Enabled = false ;
722- timer . Enabled = ! await Updater . CheckForUpdatesAsync ( true ) . ConfigureAwait ( false ) ;
733+ timer . Enabled = ! await Updater . CheckForUpdatesAsync ( true ) ;
723734 } ;
724735 timer . Enabled = true ;
725736
0 commit comments