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 TIME_MACHINE_HXX
19#define TIME_MACHINE_HXX
20
21class OSystem;
22
23#include "DialogContainer.hxx"
24
25/**
26 The base dialog for all time machine related UI items in Stella.
27
28 @author Stephen Anthony
29*/
30class TimeMachine : public DialogContainer
31{
32 public:
33 explicit TimeMachine(OSystem& osystem);
34 virtual ~TimeMachine();
35
36 /**
37 This dialog has an adjustable size. We need to make sure the
38 dialog can fit within the given bounds.
39 */
40 void requestResize() override;
41
42 /**
43 Return (and possibly create) the bottom-most dialog of this container.
44 */
45 Dialog* baseDialog() override;
46
47 /**
48 Set number of winds when entering the dialog.
49 */
50 void setEnterWinds(Int32 numWinds);
51
52 private:
53 Dialog* myBaseDialog;
54
55 uInt32 myWidth;
56
57 private:
58 // Following constructors and assignment operators not supported
59 TimeMachine() = delete;
60 TimeMachine(const TimeMachine&) = delete;
61 TimeMachine(TimeMachine&&) = delete;
62 TimeMachine& operator=(const TimeMachine&) = delete;
63 TimeMachine& operator=(TimeMachine&&) = delete;
64};
65
66#endif
67