From 79c50bf9f8b6ae2046deaa401005944e2ce4d17b Mon Sep 17 00:00:00 2001 From: b1indy Date: Wed, 2 May 2007 19:37:02 +0000 Subject: popup-screen will be included soon git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@155 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/Screens/UScreenPopup.pas | 165 +++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 Game/Code/Screens/UScreenPopup.pas (limited to 'Game/Code/Screens/UScreenPopup.pas') diff --git a/Game/Code/Screens/UScreenPopup.pas b/Game/Code/Screens/UScreenPopup.pas new file mode 100644 index 00000000..41279197 --- /dev/null +++ b/Game/Code/Screens/UScreenPopup.pas @@ -0,0 +1,165 @@ +unit UScreenPopup; + +interface + +uses + UMenu, SDL, UMusic, UPliki, SysUtils, UThemes, dialogs, Messages; + +type + TScreenPopup = class(TMenu) + private + CurMenu: Byte; //Num of the cur. Shown Menu + public + Visible: Boolean; //Whether the Menu should be Drawn + + constructor Create; override; + function ParseInput(PressedKey: Cardinal; ScanCode: byte; PressedDown: Boolean): Boolean; override; + procedure onShow; override; + procedure ShowPopup(sPopup: Byte); + function Draw: boolean; override; + end; + +const + PU_Error = 1; + + +var + ISelections: Array of String; + SelectValue: Integer; + + +implementation + +uses UGraphic, UMain, UIni, UTexture, ULanguage, UParty, UPlaylist; + +function TScreenPopup.ParseInput(PressedKey: Cardinal; ScanCode: byte; PressedDown: Boolean): Boolean; + function IsVisible: Boolean; + begin + Result := True; + if (Interactions[Interaction].Typ = 0) then + begin + Result := Button[Interactions[Interaction].Num].Visible; + end + else if (Interactions[Interaction].Typ = 1) then + begin + //Result := Selects[Interactions[Interaction].Num].Visible; + end + else if (Interactions[Interaction].Typ = 3) then + begin + Result := SelectsS[Interactions[Interaction].Num].Visible; + end; + end; + + Procedure SelectNext; + begin + repeat + InteractNext; + until IsVisible; + end; + + Procedure SelectPrev; + begin + repeat + InteractPrev; + until IsVisible; + end; +begin + Result := true; + If (PressedDown) Then + begin // Key Down + + case PressedKey of + SDLK_Q: + begin + Result := false; + end; + + SDLK_ESCAPE : + begin + Result := false; + end; + + SDLK_RETURN: + begin + Visible:=False; + Result := false; + end; + + SDLK_DOWN: SelectNext; + SDLK_UP: SelectPrev; + + SDLK_RIGHT: SelectNext; + SDLK_LEFT: SelectPrev; + end; + end + else // Key Up + case PressedKey of + SDLK_RETURN : + begin + end; + end; +end; + +constructor TScreenPopup.Create; +var + I: integer; +begin + inherited Create; + SetLength(ISelections, 1); + ISelections[0] := 'Dummy'; + + AddBackground(Theme.CheckPopup.Background.Tex); + + AddButton(Theme.CheckPopup.Button1); + if (Length(Button[0].Text) = 0) then + AddButtonText(14, 20, 'Button 1'); + + AddButton(Theme.CheckPopup.Button2); + if (Length(Button[1].Text) = 0) then + AddButtonText(14, 20, 'Button 2'); + + AddText(Theme.CheckPopup.TextCheck); + + for I := 0 to High(Theme.CheckPopup.Static) do + AddStatic(Theme.CheckPopup.Static[I]); + + for I := 0 to High(Theme.CheckPopup.Text) do + AddText(Theme.CheckPopup.Text[I]); + + Interaction := 0; +end; + +function TScreenPopup.Draw: boolean; +begin + inherited Draw; +end; + +procedure TScreenPopup.onShow; +begin + +end; + +procedure TScreenPopup.ShowPopup(sPopup: Byte); +begin + Interaction := 0; //Reset Interaction + Visible := True; //Set Visible + Case sPopup of + PU_Error: + begin + Text[0].Text := 'Wirklich beenden?';{Language.Translate('SONG_MENU_NAME_MAIN');} + + Button[0].Visible := True; + Button[1].Visible := True; +// Button[2].Visible := True; +// Button[3].Visible := True; +// SelectsS[0].Visible := False; + + Button[0].Text[0].Text := 'JA'; + Button[1].Text[0].Text := 'NEIN'; +// Button[2].Text[0].Text := Language.Translate('SONG_MENU_PLAYLIST_ADD'); +// Button[3].Text[0].Text := Language.Translate('SONG_MENU_EDIT'); + end; + end; +end; + +end. \ No newline at end of file -- cgit v1.2.3