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 TOGGLE_PIXEL_WIDGET_HXX
19#define TOGGLE_PIXEL_WIDGET_HXX
20
21#include "ToggleWidget.hxx"
22
23/* TogglePixelWidget */
24class TogglePixelWidget : public ToggleWidget
25{
26 public:
27 TogglePixelWidget(GuiObject* boss, const GUI::Font& font,
28 int x, int y, int cols, int rows);
29 virtual ~TogglePixelWidget() = default;
30
31 void setColor(ColorId color) { _pixelColor = color; }
32 void clearColor() { _pixelColor = kDlgColor; }
33 void setBackgroundColor(ColorId color) { _backgroundColor = color; }
34 void clearBackgroundColor() { _backgroundColor = kDlgColor; }
35
36 void setState(const BoolArray& state);
37
38 void setIntState(int value, bool swap);
39 int getIntState();
40
41 void setCrossed(bool enable) { _crossBits = enable; }
42
43 private:
44 ColorId _pixelColor, _backgroundColor;
45 bool _swapBits;
46 bool _crossBits;
47
48 private:
49 void drawWidget(bool hilite) override;
50
51 // Following constructors and assignment operators not supported
52 TogglePixelWidget() = delete;
53 TogglePixelWidget(const TogglePixelWidget&) = delete;
54 TogglePixelWidget(TogglePixelWidget&&) = delete;
55 TogglePixelWidget& operator=(const TogglePixelWidget&) = delete;
56 TogglePixelWidget& operator=(TogglePixelWidget&&) = delete;
57};
58
59#endif
60