From 1423d21d13e4c5b925ac3e73764ae666ce3b4e60 Mon Sep 17 00:00:00 2001
From: k-m_schindler <k-m_schindler@b956fd51-792f-4845-bead-9b4dfca2ff2c>
Date: Sun, 30 Nov 2008 12:57:27 +0000
Subject: Deluxe theme for Editor menu. Part 2. This part may break Classic
 theme.

git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1533 b956fd51-792f-4845-bead-9b4dfca2ff2c
---
 src/screens/UScreenEdit.pas | 102 +++++++++++++++++++++++++++++++++++---------
 1 file changed, 83 insertions(+), 19 deletions(-)

(limited to 'src/screens')

diff --git a/src/screens/UScreenEdit.pas b/src/screens/UScreenEdit.pas
index 1fc2fcdc..7ad39c45 100644
--- a/src/screens/UScreenEdit.pas
+++ b/src/screens/UScreenEdit.pas
@@ -41,15 +41,28 @@ uses
 type
   TScreenEdit = class(TMenu)
     public
-{      Tex_Background:     TTexture;
+{
+      Tex_Background:     TTexture;
       FadeOut:            boolean;
       Path:               string;
-      FileName:           string;}
+      FileName:           string;
+}
+      TextDescription:     integer;
+      TextDescriptionLong: integer;
+
       constructor Create; override;
+      function ParseInput(PressedKey: cardinal; CharCode: WideChar;
+        PressedDown: boolean): boolean; override;
       procedure onShow; override;
-      function ParseInput(PressedKey: cardinal; CharCode: WideChar; PressedDown: boolean): boolean; override;
-{      function Draw: boolean; override;
-      procedure Finish;}
+      procedure InteractNext; override;
+      procedure InteractPrev; override;
+      procedure InteractInc; override;
+      procedure InteractDec; override;
+      procedure SetAnimationProgress(Progress: real); override;
+{
+      function Draw: boolean; override;
+      procedure Finish;
+}
   end;
 
 implementation
@@ -60,12 +73,19 @@ uses
   USkins,
   SysUtils;
 
-function TScreenEdit.ParseInput(PressedKey: cardinal; CharCode: WideChar; PressedDown: boolean): boolean;
+function TScreenEdit.ParseInput(PressedKey: cardinal; CharCode: WideChar; 
+  PressedDown: boolean): boolean;
+var
+  SDL_ModState: word;
 begin
   Result := true;
+
+  SDL_ModState := SDL_GetModState and (KMOD_LSHIFT + KMOD_RSHIFT +
+    KMOD_LCTRL + KMOD_RCTRL + KMOD_LALT + KMOD_RALT);
+
   if (PressedDown) then
   begin // Key Down
-    // check normal keys
+        // check normal keys
     case WideCharUpperCase(CharCode)[1] of
       'Q':
         begin
@@ -103,14 +123,10 @@ begin
           end;
         end;
 
-      SDLK_DOWN:
-        begin
-          InteractNext;
-        end;
-      SDLK_UP:
-        begin
-          InteractPrev;
-        end;
+      SDLK_DOWN:  InteractInc;
+      SDLK_UP:    InteractDec;
+      SDLK_RIGHT: InteractNext;
+      SDLK_LEFT:  InteractPrev;
     end;
   end;
 end;
@@ -118,8 +134,14 @@ end;
 constructor TScreenEdit.Create;
 begin
   inherited Create;
-  AddButton(400-200, 100 + 0*70, 400, 40, Skin.GetTextureFileName('ButtonF'));
-  AddButtonText(10, 5, 0, 0, 0, 'Convert Midi to Txt');
+
+  TextDescription := AddText(Theme.Edit.TextDescription);
+//  TextDescriptionLong := AddText(Theme.Edit.TextDescriptionLong);
+
+  LoadFromTheme(Theme.Edit);
+
+//  AddButton(400-200, 100 + 0*70, 400, 40, Skin.GetTextureFileName('ButtonF'));
+//  AddButtonText(10, 5, 0, 0, 0, 'Convert Midi to Txt');
 //  Button[High(Button)].Text[0].Size := 11;
 
 //  AddButton(400-200, 100 + 1*60, 400, 40, 'ButtonF');
@@ -128,9 +150,17 @@ begin
 //  AddButton(400-200, 100 + 2*60, 400, 40, 'ButtonF');
 //  AddButtonText(10, 5, 0, 0, 0, 'Set GAP');
 
-  AddButton(400-200, 100 + 3*60, 400, 40, Skin.GetTextureFileName('ButtonF'));
-  AddButtonText(10, 5, 0, 0, 0, 'Exit');
+//  AddButton(400-200, 100 + 3*60, 400, 40, Skin.GetTextureFileName('ButtonF'));
+//  AddButtonText(10, 5, 0, 0, 0, 'Exit');
 
+  AddButton(Theme.Edit.ButtonConvert);
+  AddButton(Theme.Edit.ButtonExit);
+
+{  
+  if (Length(Button[0].Text)=0) then
+    AddButtonText(14, 20, Theme.Edit.Description[0]);
+}
+  Interaction := 0;
 end;
 
 procedure TScreenEdit.onShow;
@@ -140,6 +170,40 @@ begin
 //  Interaction := 0;
 end;
 
+procedure TScreenEdit.InteractNext;
+begin
+  inherited InteractNext;
+  Text[TextDescription].Text     := Theme.Edit.Description[Interaction];
+//  Text[TextDescriptionLong].Text := Theme.Edit.DescriptionLong[Interaction];
+end;
+
+procedure TScreenEdit.InteractPrev;
+begin
+  inherited InteractPrev;
+  Text[TextDescription].Text     := Theme.Edit.Description[Interaction];
+//  Text[TextDescriptionLong].Text := Theme.Edit.DescriptionLong[Interaction];
+end;
+
+procedure TScreenEdit.InteractDec;
+begin
+  inherited InteractDec;
+  Text[TextDescription].Text     := Theme.Edit.Description[Interaction];
+//  Text[TextDescriptionLong].Text := Theme.Edit.DescriptionLong[Interaction];
+end;
+
+procedure TScreenEdit.InteractInc;
+begin
+  inherited InteractInc;
+  Text[TextDescription].Text     := Theme.Edit.Description[Interaction];
+//  Text[TextDescriptionLong].Text := Theme.Edit.DescriptionLong[Interaction];
+end;
+
+procedure TScreenEdit.SetAnimationProgress(Progress: real);
+begin
+  Static[0].Texture.ScaleW := Progress;
+  Static[0].Texture.ScaleH := Progress;
+end;
+
 (*function TScreenEdit.Draw: boolean;
 var
   Min:     integer;
-- 
cgit v1.2.3