blob: 4127919713add86c98f8be1f13c95c563d98cd8f (
plain) (
tree)
|
|
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.
|