1//============================================================================
2//
3// SSSS tt lll lll
4// SS SS tt ll ll
5// SS tttttt eeee ll ll aaaa
6// SSSS tt ee ee ll ll aa
7// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
8// SS SS tt ee ll ll aa aa
9// SSSS ttt eeeee llll llll aaaaa
10//
11// Copyright (c) 1995-2019 by Bradford W. Mott, Stephen Anthony
12// and the Stella Team
13//
14// See the file "License.txt" for information on usage and redistribution of
15// this file, and for a DISCLAIMER OF ALL WARRANTIES.
16//============================================================================
17
18#ifndef LAUNCHER_HXX
19#define LAUNCHER_HXX
20
21class Properties;
22class OSystem;
23class FilesystemNode;
24
25#include "FrameBufferConstants.hxx"
26#include "DialogContainer.hxx"
27
28/**
29 The base dialog for the ROM launcher in Stella.
30
31 @author Stephen Anthony
32*/
33class Launcher : public DialogContainer
34{
35 public:
36 /**
37 Create a new menu stack
38 */
39 explicit Launcher(OSystem& osystem);
40 virtual ~Launcher();
41
42 /**
43 Initialize the video subsystem wrt this class.
44 */
45 FBInitStatus initializeVideo();
46
47 /**
48 Wrapper for LauncherDialog::selectedRom() method.
49 */
50 const string& selectedRom();
51
52 /**
53 Wrapper for LauncherDialog::selectedRomMD5() method.
54 */
55 const string& selectedRomMD5();
56
57 /**
58 Wrapper for LauncherDialog::currentNode() method.
59 */
60 const FilesystemNode& currentNode() const;
61
62 /**
63 Wrapper for LauncherDialog::reload() method.
64 */
65 void reload();
66
67 /**
68 Return (and possibly create) the bottom-most dialog of this container.
69 */
70 Dialog* baseDialog() override;
71
72 private:
73 Dialog* myBaseDialog;
74
75 // The width and height of this dialog
76 uInt32 myWidth;
77 uInt32 myHeight;
78
79 private:
80 // Following constructors and assignment operators not supported
81 Launcher() = delete;
82 Launcher(const Launcher&) = delete;
83 Launcher(Launcher&&) = delete;
84 Launcher& operator=(const Launcher&) = delete;
85 Launcher& operator=(Launcher&&) = delete;
86};
87
88#endif
89