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 POINTINGDEVICE_WIDGET_HXX
19#define POINTINGDEVICE_WIDGET_HXX
20
21class Controller;
22class DataGridWidget;
23
24#include "ControllerWidget.hxx"
25
26class PointingDeviceWidget : public ControllerWidget
27{
28 public:
29 PointingDeviceWidget(GuiObject* boss, const GUI::Font& font, int x, int y,
30 Controller& controller);
31
32 virtual ~PointingDeviceWidget() = default;
33
34 private:
35 enum {
36 kTBLeft = 'TWlf',
37 kTBRight = 'TWrt',
38 kTBUp = 'TWup',
39 kTBDown = 'TWdn',
40 kTBFire = 'TWfr'
41 };
42 ButtonWidget *myGrayLeft, *myGrayRight;
43 DataGridWidget* myGrayValueH;
44 ButtonWidget *myGrayUp, *myGrayDown;
45 DataGridWidget* myGrayValueV;
46 CheckboxWidget* myFire;
47
48 private:
49 virtual uInt8 getGrayCodeTable(const int index, const int direction) = 0;
50
51 void loadConfig() override;
52 void handleCommand(CommandSender* sender, int cmd, int data, int id) override;
53
54 void setGrayCodeH();
55 void setGrayCodeV();
56 void setValue(DataGridWidget* greyValue, const int index, const int direction);
57
58 // Following constructors and assignment operators not supported
59 PointingDeviceWidget() = delete;
60 PointingDeviceWidget(const PointingDeviceWidget&) = delete;
61 PointingDeviceWidget(PointingDeviceWidget&&) = delete;
62 PointingDeviceWidget& operator=(const PointingDeviceWidget&) = delete;
63 PointingDeviceWidget& operator=(PointingDeviceWidget&&) = delete;
64};
65
66#endif
67