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-2021 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 MESSAGE_MENU_HXX
19 #define MESSAGE_MENU_HXX
20 
21 class OSystem;
22 class MessageDialog;
23 
24 #include "DialogContainer.hxx"
25 
26 /**
27   The base dialog for all message menus in Stella.
28 
29   @author  Thomas Jentzsch
30 */
31 class MessageMenu : public DialogContainer
32 {
33   public:
34     /**
35       Create a new menu stack
36     */
37     explicit MessageMenu(OSystem& osystem);
38     ~MessageMenu() override;
39 
40     void setMessage(const string& title, const string& text, bool yesNo = false);
41     void setMessage(const string& title, const StringList& text, bool yesNo = false);
42     bool confirmed();
43 
44   private:
45     Dialog* baseDialog() override;
46     MessageDialog* myMessageDialog{nullptr};
47 
48   private:
49     // Following constructors and assignment operators not supported
50     MessageMenu() = delete;
51     MessageMenu(const MessageMenu&) = delete;
52     MessageMenu(MessageMenu&&) = delete;
53     MessageMenu& operator=(const MessageMenu&) = delete;
54     MessageMenu& operator=(MessageMenu&&) = delete;
55 };
56 
57 #endif
58