diff options
-rw-r--r-- | Game/Code/Screens/UScreenPopup.pas | 165 |
1 files changed, 165 insertions, 0 deletions
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 |