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 MENU_HXX
19#define MENU_HXX
20
21class OSystem;
22class StellaSettingsDialog;
23class OptionsDialog;
24
25#include "DialogContainer.hxx"
26
27/**
28 The base dialog for all configuration menus in Stella.
29
30 @author Stephen Anthony
31*/
32class Menu : public DialogContainer
33{
34 public:
35 // Current Stella mode
36 enum class AppMode { launcher, emulator, debugger };
37
38 /**
39 Create a new menu stack
40 */
41 explicit Menu(OSystem& osystem);
42 virtual ~Menu();
43
44 private:
45 Dialog* baseDialog() override;
46 StellaSettingsDialog* stellaSettingDialog;
47 OptionsDialog* optionsDialog;
48
49 private:
50 // Following constructors and assignment operators not supported
51 Menu() = delete;
52 Menu(const Menu&) = delete;
53 Menu(Menu&&) = delete;
54 Menu& operator=(const Menu&) = delete;
55 Menu& operator=(Menu&&) = delete;
56};
57
58#endif
59