From a9a56693248a56dff57b0202d5a2ba6b933e435a Mon Sep 17 00:00:00 2001 From: jaybinks Date: Mon, 19 Nov 2007 10:50:17 +0000 Subject: backported change from change#610 Modifed Theme selection screen, so ALL theme options are runtime changable. ( Without restart ) git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/branches/1.0.1@612 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/Screens/UScreenOptionsThemes.pas | 51 ++++++++++++++---------------- 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/Game/Code/Screens/UScreenOptionsThemes.pas b/Game/Code/Screens/UScreenOptionsThemes.pas index e5f928c1..17b98c98 100644 --- a/Game/Code/Screens/UScreenOptionsThemes.pas +++ b/Game/Code/Screens/UScreenOptionsThemes.pas @@ -7,6 +7,8 @@ uses type TScreenOptionsThemes = class(TMenu) + private + procedure ReloadTheme; public SkinSelect: Integer; constructor Create; override; @@ -90,21 +92,9 @@ begin begin Skin.OnThemeChange; UpdateSelectSlideOptions (Theme.OptionsThemes.SelectSkin, SkinSelect, ISkin, Ini.SkinNo); - - Theme.LoadTheme('Themes\' + ITheme[Ini.Theme] + '.ini', Ini.Color); - - ScreenOptionsThemes := TScreenOptionsThemes.create(); - ScreenOptionsThemes.onshow; - Display.ActualScreen := @ScreenOptionsThemes; - ScreenOptionsThemes.Draw; - - - Display.Draw; - SwapBuffers; - - freeandnil( self ); - end; + + ReloadTheme(); end; procedure TScreenOptionsThemes.InteractDec; @@ -115,20 +105,9 @@ begin begin Skin.OnThemeChange; UpdateSelectSlideOptions (Theme.OptionsThemes.SelectSkin, SkinSelect, ISkin, Ini.SkinNo); - - Theme.LoadTheme('Themes\' + ITheme[Ini.Theme] + '.ini', Ini.Color); - - ScreenOptionsThemes := TScreenOptionsThemes.create(); - ScreenOptionsThemes.onshow; - - Display.ActualScreen := @ScreenOptionsThemes; - ScreenOptionsThemes.Draw; - - Display.Draw; - SwapBuffers; - - freeandnil( self ); end; + + ReloadTheme(); end; constructor TScreenOptionsThemes.Create; @@ -156,4 +135,22 @@ begin Interaction := 0; end; +procedure TScreenOptionsThemes.ReloadTheme; +begin + Theme.LoadTheme('Themes\' + ITheme[Ini.Theme] + '.ini', Ini.Color); + + ScreenOptionsThemes := TScreenOptionsThemes.create(); + ScreenOptionsThemes.onshow; + Display.ActualScreen := @ScreenOptionsThemes; + + ScreenOptionsThemes.Interaction := self.Interaction; + ScreenOptionsThemes.Draw; + + + Display.Draw; + SwapBuffers; + + freeandnil( self ); +end; + end. -- cgit v1.2.3