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 FRAMEBUFFER_CONSTANTS_HXX |
19 | #define FRAMEBUFFER_CONSTANTS_HXX |
20 | |
21 | #include "TIAConstants.hxx" |
22 | #include "bspf.hxx" |
23 | |
24 | // Minimum size for a framebuffer window |
25 | namespace FBMinimum { |
26 | static constexpr uInt32 Width = TIAConstants::viewableWidth * 2; |
27 | static constexpr uInt32 Height = TIAConstants::viewableHeight * 2; |
28 | } |
29 | |
30 | // Return values for initialization of framebuffer window |
31 | enum class FBInitStatus { |
32 | Success, |
33 | FailComplete, |
34 | FailTooLarge, |
35 | FailNotSupported |
36 | }; |
37 | |
38 | // Positions for onscreen/overlaid messages |
39 | enum class MessagePosition { |
40 | TopLeft, |
41 | TopCenter, |
42 | TopRight, |
43 | MiddleLeft, |
44 | MiddleCenter, |
45 | MiddleRight, |
46 | BottomLeft, |
47 | BottomCenter, |
48 | BottomRight |
49 | }; |
50 | |
51 | // Colors indices to use for the various GUI elements |
52 | // Abstract away what a color actually is, so we can easily change it in |
53 | // the future, if necessary |
54 | using ColorId = uInt32; |
55 | static constexpr ColorId |
56 | // *** Base colors *** |
57 | kColor = 256, |
58 | kBGColor = 257, |
59 | kBGColorLo = 258, |
60 | kBGColorHi = 259, |
61 | kShadowColor = 260, |
62 | // *** Text colors *** |
63 | kTextColor = 261, |
64 | kTextColorHi = 262, |
65 | kTextColorEm = 263, |
66 | kTextColorInv = 264, |
67 | // *** UI elements(dialog and widgets) *** |
68 | kDlgColor = 265, |
69 | kWidColor = 266, |
70 | kWidColorHi = 267, |
71 | kWidFrameColor = 268, |
72 | // *** Button colors *** |
73 | kBtnColor = 269, |
74 | kBtnColorHi = 270, |
75 | kBtnBorderColor = 271, |
76 | kBtnBorderColorHi = 272, |
77 | kBtnTextColor = 273, |
78 | kBtnTextColorHi = 274, |
79 | // *** Checkbox colors *** |
80 | kCheckColor = 275, |
81 | // *** Scrollbar colors *** |
82 | kScrollColor = 276, |
83 | kScrollColorHi = 277, |
84 | // *** Debugger colors *** |
85 | kDbgChangedColor = 278, |
86 | kDbgChangedTextColor = 279, |
87 | kDbgColorHi = 280, |
88 | kDbgColorRed = 281, // Note: this must be < 0x11e (286)! (see PromptWidget::putcharIntern) |
89 | // *** Slider colors *** |
90 | kSliderColor = 282, |
91 | kSliderColorHi = 283, |
92 | kSliderBGColor = 284, |
93 | kSliderBGColorHi = 285, |
94 | kSliderBGColorLo = 286, |
95 | // *** Other colors *** |
96 | kColorInfo = 287, |
97 | kColorTitleBar = 288, |
98 | kColorTitleText = 289, |
99 | kColorTitleBarLo = 290, |
100 | kColorTitleTextLo = 291, |
101 | kNumColors = 292, |
102 | kNone = 0 // placeholder to represent default/no color |
103 | ; |
104 | |
105 | // Text alignment modes for drawString() |
106 | enum class TextAlign { |
107 | Left, |
108 | Center, |
109 | Right |
110 | }; |
111 | |
112 | // Line types for drawing rectangular frames |
113 | enum class FrameStyle { |
114 | Solid, |
115 | Dashed |
116 | }; |
117 | |
118 | #endif // FRAMEBUFFER_CONSTANTS_HXX |
119 | |