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
25namespace 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
31enum class FBInitStatus {
32 Success,
33 FailComplete,
34 FailTooLarge,
35 FailNotSupported
36};
37
38// Positions for onscreen/overlaid messages
39enum 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
54using ColorId = uInt32;
55static 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()
106enum class TextAlign {
107 Left,
108 Center,
109 Right
110};
111
112// Line types for drawing rectangular frames
113enum class FrameStyle {
114 Solid,
115 Dashed
116};
117
118#endif // FRAMEBUFFER_CONSTANTS_HXX
119