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 TIA_INFO_WIDGET_HXX
19#define TIA_INFO_WIDGET_HXX
20
21class GuiObject;
22class EditTextWidget;
23class CheckboxWidget;
24
25#include "Widget.hxx"
26#include "Command.hxx"
27
28
29class TiaInfoWidget : public Widget, public CommandSender
30{
31 public:
32 TiaInfoWidget(GuiObject *boss, const GUI::Font& lfont, const GUI::Font& nfont,
33 int x, int y, int max_w);
34 virtual ~TiaInfoWidget() = default;
35
36 void loadConfig() override;
37
38 private:
39 EditTextWidget* myFrameCount;
40 EditTextWidget* myFrameCycles;
41
42 EditTextWidget* myScanlineCount;
43 EditTextWidget* myScanlineCountLast;
44 EditTextWidget* myScanlineCycles;
45 EditTextWidget* myPixelPosition;
46 EditTextWidget* myColorClocks;
47
48 CheckboxWidget* myVSync;
49 CheckboxWidget* myVBlank;
50
51 private:
52 void handleMouseDown(int x, int y, MouseButton b, int clickCount) override;
53 void handleCommand(CommandSender* sender, int cmd, int data, int id) override;
54
55 // Following constructors and assignment operators not supported
56 TiaInfoWidget() = delete;
57 TiaInfoWidget(const TiaInfoWidget&) = delete;
58 TiaInfoWidget(TiaInfoWidget&&) = delete;
59 TiaInfoWidget& operator=(const TiaInfoWidget&) = delete;
60 TiaInfoWidget& operator=(TiaInfoWidget&&) = delete;
61};
62
63#endif
64