diff options
-rw-r--r-- | src/base/UThemes.pas | 29 | ||||
-rw-r--r-- | src/screens/UScreenEdit.pas | 102 |
2 files changed, 112 insertions, 19 deletions
diff --git a/src/base/UThemes.pas b/src/base/UThemes.pas index 361ed87d..9bf858ed 100644 --- a/src/base/UThemes.pas +++ b/src/base/UThemes.pas @@ -484,6 +484,16 @@ type ButtonExit: TThemeButton; end; + TThemeEdit = class(TThemeBasic) + ButtonConvert: TThemeButton; + ButtonExit: TThemeButton; + + TextDescription: TThemeText; + TextDescriptionLong: TThemeText; + Description: array[0..5] of string; + DescriptionLong: array[0..5] of string; + end; + //Error- and Check-Popup TThemeError = class(TThemeBasic) Button1: TThemeButton; @@ -723,6 +733,8 @@ type OptionsThemes: TThemeOptionsThemes; OptionsRecord: TThemeOptionsRecord; OptionsAdvanced: TThemeOptionsAdvanced; + //edit + Edit: TThemeEdit; //error and check popup ErrorPopup: TThemeError; CheckPopup: TThemeCheck; @@ -852,6 +864,8 @@ begin OptionsRecord := TThemeOptionsRecord.Create; OptionsAdvanced := TThemeOptionsAdvanced.Create; + Edit := TThemeEdit.Create; + ErrorPopup := TThemeError.Create; CheckPopup := TThemeCheck.Create; @@ -1246,6 +1260,18 @@ begin ThemeLoadSelectSlide(OptionsAdvanced.SelectPartyPopup, 'OptionsAdvancedSelectPartyPopup'); ThemeLoadButton (OptionsAdvanced.ButtonExit, 'OptionsAdvancedButtonExit'); + //Edit Menu + ThemeLoadBasic (Edit, 'Edit'); + + ThemeLoadButton(Edit.ButtonConvert, 'EditButtonConvert'); + ThemeLoadButton(Edit.ButtonExit, 'EditButtonExit'); + + Edit.Description[0] := Language.Translate('SING_EDIT_BUTTON_DESCRIPTION_CONVERT'); + Edit.Description[1] := Language.Translate('SING_EDIT_BUTTON_DESCRIPTION_EXIT'); + + ThemeLoadText(Edit.TextDescription, 'EditTextDescription'); + Edit.TextDescription.Text := Edit.Description[0]; + //error and check popup ThemeLoadBasic (ErrorPopup, 'ErrorPopup'); ThemeLoadButton(ErrorPopup.Button1, 'ErrorPopupButton1'); @@ -2310,6 +2336,9 @@ begin freeandnil(OptionsAdvanced); OptionsAdvanced := TThemeOptionsAdvanced.Create; + freeandnil(Edit); + Edit := TThemeEdit.Create; + freeandnil(ErrorPopup); ErrorPopup := TThemeError.Create; 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; |