ScummVM API documentation
ThemeEngine.h
1/* ScummVM - Graphic Adventure Engine
2 *
3 * ScummVM is the legal property of its developers, whose names
4 * are too numerous to list here. Please refer to the COPYRIGHT
5 * file distributed with this source distribution.
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 *
20 */
21
22#ifndef GUI_THEME_ENGINE_H
23#define GUI_THEME_ENGINE_H
24
25#include "common/scummsys.h"
26#include "common/fs.h"
27#include "common/hash-str.h"
28#include "common/hashmap.h"
29#include "common/language.h"
30#include "common/list.h"
31#include "common/str.h"
32#include "common/rect.h"
33
34#include "graphics/managed_surface.h"
35#include "graphics/font.h"
36#include "graphics/pixelformat.h"
37
38
39#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.9.24"
40
41class OSystem;
42
43namespace Graphics {
44struct DrawStep;
45class VectorRenderer;
46}
47
48namespace GUI {
49
50struct WidgetDrawData;
51struct TextDrawData;
52class Dialog;
53class GuiObject;
54class ThemeEval;
55class ThemeParser;
56
62enum DrawData {
63 kDDMainDialogBackground,
64 kDDSpecialColorBackground,
65 kDDPlainColorBackground,
66 kDDDefaultBackground,
67 kDDTooltipBackground,
68 kDDTextSelectionBackground,
69 kDDTextSelectionFocusBackground,
70 kDDThumbnailBackground,
71 kDDGridItemIdle,
72 kDDGridItemHover,
73 kDDWidgetBackgroundDefault,
74 kDDWidgetBackgroundSmall,
75 kDDWidgetBackgroundEditText,
76 kDDWidgetBackgroundSlider,
77
78 kDDButtonIdle,
79 kDDButtonHover,
80 kDDButtonDisabled,
81 kDDButtonPressed,
82
83 kDDDropDownButtonIdle,
84 kDDDropDownButtonHoverLeft,
85 kDDDropDownButtonHoverRight,
86 kDDDropDownButtonDisabled,
87 kDDDropDownButtonPressedLeft,
88 kDDDropDownButtonPressedRight,
89
90 kDDDropDownButtonIdleRTL,
91 kDDDropDownButtonHoverLeftRTL,
92 kDDDropDownButtonHoverRightRTL,
93 kDDDropDownButtonDisabledRTL,
94 kDDDropDownButtonPressedLeftRTL,
95 kDDDropDownButtonPressedRightRTL,
96
97 kDDSliderFull,
98 kDDSliderHover,
99 kDDSliderDisabled,
100
101 kDDCheckboxDefault,
102 kDDCheckboxDisabled,
103 kDDCheckboxSelected,
104 kDDCheckboxDisabledSelected,
105
106 kDDRadiobuttonDefault,
107 kDDRadiobuttonDisabled,
108 kDDRadiobuttonSelected,
109
110 kDDTabActive,
111 kDDTabInactive,
112 kDDTabBackground,
113
114 kDDScrollbarBase,
115 kDDScrollbarButtonIdle,
116 kDDScrollbarButtonHover,
117 kDDScrollbarHandleIdle,
118 kDDScrollbarHandleHover,
119
120 kDDPopUpIdle,
121 kDDPopUpHover,
122 kDDPopUpDisabled,
123
124 kDDPopUpIdleRTL,
125 kDDPopUpHoverRTL,
126 kDDPopUpDisabledRTL,
127
128 kDDCaret,
129 kDDSeparator,
130 kDrawDataMAX,
131 kDDNone = -1
132};
133
141enum DrawLayer {
142 kDrawLayerBackground,
143 kDrawLayerForeground
144};
145
146// FIXME: TextData is really a bad name, not conveying what this enum is about.
147enum TextData {
148 kTextDataNone = -1,
149 kTextDataDefault = 0,
150 kTextDataButton,
151 kTextDataNormalFont,
152 kTextDataTooltip,
153 kTextDataConsole,
154 kTextDataExtraLang,
155 kTextDataMAX
156};
157
158enum TextColor {
159 kTextColorNormal = 0,
160 kTextColorNormalInverted,
161 kTextColorNormalHover,
162 kTextColorNormalDisabled,
163 kTextColorAlternative,
164 kTextColorAlternativeInverted,
165 kTextColorAlternativeHover,
166 kTextColorAlternativeDisabled,
167 kTextColorOverride,
168 kTextColorOverrideInverted,
169 kTextColorOverrideHover,
170 kTextColorOverrideDisabled,
171 kTextColorButton,
172 kTextColorButtonHover,
173 kTextColorButtonDisabled,
174 kTextColorMAX
175};
176
178 int r, g, b;
179};
180
182public:
183 LangExtraFont(TextData textId, Common::Array<Common::Language> &lngs, const Common::String &filename, const Common::String &scalableFile, int ps) : _langs(lngs) {
184 storeFileNames(textId, filename, scalableFile, ps);
185 }
186
187 void storeFileNames(TextData textId, const Common::String &filename, const Common::String &scalableFile, int ps) {
188 assert(textId < kTextDataMAX);
189 _fontFilesStd[textId] = filename;
190 _fontFilesScalable[textId] = scalableFile;
191 _fontSize[textId] = ps;
192 }
193
194 bool operator==(Common::Language l) const {
195 return (Common::find(_langs.begin(), _langs.end(), l) != _langs.end());
196 }
197
198 Common::String file(TextData textId) const { return _fontFilesStd[textId]; }
199 Common::String sclFile(TextData textId) const { return _fontFilesScalable[textId]; }
200 int fntSize(TextData textId) const { return _fontSize[textId]; }
201
202private:
204 Common::String _fontFilesStd[kTextDataMAX];
205 Common::String _fontFilesScalable[kTextDataMAX];
206 int _fontSize[kTextDataMAX];
207};
208
210protected:
212
213 friend class GUI::Dialog;
214 friend class GUI::GuiObject;
215
216public:
219 kTextAlignVInvalid,
220 kTextAlignVBottom,
221 kTextAlignVCenter,
222 kTextAlignVTop
223 };
224
236 };
237
240 kDialogBackgroundMain,
241 kDialogBackgroundSpecial,
242 kDialogBackgroundPlain,
243 kDialogBackgroundTooltip,
244 kDialogBackgroundDefault,
245 kDialogBackgroundNone
246 };
247
249 enum State {
254 };
255
256 typedef State WidgetStateInfo;
257
263 };
264
265 enum ScrollbarState {
266 kScrollbarStateNo,
267 kScrollbarStateUp,
268 kScrollbarStateDown,
269 kScrollbarStateSlider,
270 kScrollbarStateSinglePage
271 };
272
284 kFontStyleMax
285 };
286
293 kFontColorMax
294 };
295
301 };
302
309 };
310
311 // Special image ids for images used in the GUI
312 static const char *const kImageLogo;
313 static const char *const kImageLogoSmall;
314 static const char *const kImageSearch;
315 static const char *const kImageGroup;
316 static const char *const kImageEraser;
317 static const char *const kImageDelButton;
318 static const char *const kImageList;
319 static const char *const kImageGrid;
320 static const char *const kImageStopButton;
321 static const char *const kImageEditButton;
322 static const char *const kImageSwitchModeButton;
323 static const char *const kImageFastReplayButton;
324 static const char *const kImageStopSmallButton;
325 static const char *const kImageEditSmallButton;
326 static const char *const kImageSwitchModeSmallButton;
327 static const char *const kImageFastReplaySmallButton;
328
338 };
339
340 struct Renderer {
341 const char *name;
342 const char *shortname;
343 const char *cfg;
344 GraphicsMode mode;
345 };
346
347 static const Renderer _rendererModes[];
348 static const uint _rendererModesSize;
349
350 static const GraphicsMode _defaultRendererMode;
351
352 static GraphicsMode findMode(const Common::String &cfg);
353 static const char *findModeConfigName(GraphicsMode mode);
354
357
360
361 void setBaseResolution(int w, int h, float s);
362 bool init();
363 void clearAll();
364
365 void refresh();
366 void enable();
367
368 void showCursor();
369 void hideCursor();
370
371 void disable();
372
373
377 const Graphics::PixelFormat getPixelFormat() const { return _overlayFormat; }
378
385
394
401
407
412
413
416
417 TextData fontStyleToData(FontStyle font) const {
418 if (font == kFontStyleNormal)
419 return kTextDataNormalFont;
420 if (font == kFontStyleTooltip)
421 return kTextDataTooltip;
422 if (font == kFontStyleConsole)
423 return kTextDataConsole;
424 if (font == kFontStyleLangExtra)
425 return kTextDataExtraLang;
426 return kTextDataDefault;
427 }
428
429 const Graphics::Font *getFont(FontStyle font = kFontStyleBold) const;
430
431 int getFontHeight(FontStyle font = kFontStyleBold) const;
432
433 int getStringWidth(const Common::U32String &str, FontStyle font = kFontStyleBold) const;
434
435 int getCharWidth(uint32 c, FontStyle font = kFontStyleBold) const;
436
437 int getKerningOffset(uint32 left, uint32 right, FontStyle font = kFontStyleBold) const;
438
440
451 const Common::Rect getClipRect();
452
457
467
470
471 void drawWidgetBackground(const Common::Rect &r, WidgetBackground background);
472
473 void drawButton(const Common::Rect &r, const Common::U32String &str, WidgetStateInfo state = kStateEnabled,
474 uint16 hints = 0);
475
476 void drawDropDownButton(const Common::Rect &r, uint32 dropdownWidth, const Common::U32String &str,
477 WidgetStateInfo buttonState, bool inButton, bool inDropdown, bool rtl = false);
478
479 void drawManagedSurface(const Common::Point &p, const Graphics::ManagedSurface &surface, Graphics::AlphaType alphaType);
480
481 void drawSlider(const Common::Rect &r, int width, WidgetStateInfo state = kStateEnabled, bool rtl = false);
482
483 void drawCheckbox(const Common::Rect &r, int spacing, const Common::U32String &str, bool checked,
484 WidgetStateInfo state = kStateEnabled, bool override = false, bool rtl = false);
485
486 void drawRadiobutton(const Common::Rect &r, int spacing, const Common::U32String &str, bool checked,
487 WidgetStateInfo state = kStateEnabled, bool rtl = false);
488
489 void drawTab(const Common::Rect &r, int tabHeight, const Common::Array<int> &tabWidths,
490 const Common::Array<Common::U32String> &tabs, int active, bool rtl,
492
493 void drawScrollbar(const Common::Rect &r, int sliderY, int sliderHeight, ScrollbarState scrollState);
494
495 void drawPopUpWidget(const Common::Rect &r, const Common::U32String &sel, int deltax,
496 WidgetStateInfo state = kStateEnabled, bool rtl = false);
497
498 void drawCaret(const Common::Rect &r, bool erase);
499
500 void drawLineSeparator(const Common::Rect &r);
501
502 void drawDialogBackground(const Common::Rect &r, DialogBackground type);
503
504 void drawText(const Common::Rect &r, const Common::U32String &str, WidgetStateInfo state = kStateEnabled,
506 TextInversionState inverted = kTextInversionNone, int deltax = 0, bool useEllipsis = true,
507 FontStyle font = kFontStyleBold, FontColor color = kFontColorNormal, bool restore = true,
508 const Common::Rect &drawableTextArea = Common::Rect(0, 0, 0, 0));
509
510 void drawChar(const Common::Rect &r, byte ch, const Graphics::Font *font, FontColor color = kFontColorNormal, TextInversionState inverted = ThemeEngine::kTextInversionNone);
511
512 void drawFoldIndicator(const Common::Rect &r, bool expanded);
513
515
516
517
526
527
537 DrawData parseDrawDataId(const Common::String &name) const;
538
539 TextData getTextData(DrawData ddId) const;
540 TextColor getTextColor(DrawData ddId) const;
541
542 TextColorData *getTextColorData(TextColor color) const;
543
548 bool getDrawDataColor(DrawData ddId, uint8 &r, uint8 &g, uint8 &b) const;
549
559 void addDrawStep(const Common::String &drawDataId, const Graphics::DrawStep &step);
560
570 bool addDrawData(const Common::String &data, bool cached);
571
572
583 bool addFont(TextData textId, const Common::String &language, const Common::String &file, const Common::String &scalableFile, const int pointsize);
584
591 void storeFontNames(TextData textId, const Common::String &language, const Common::String &file, const Common::String &scalableFile, const int pointsize);
592
600
609 bool addTextColor(TextColor colorId, int r, int g, int b);
610
611
620 bool addBitmap(const Common::String &filename, const Common::String &scalablefile, int widht, int height);
621
626 bool addTextData(const Common::String &drawDataId, TextData textId, TextColor id, Graphics::TextAlign alignH, TextAlignVertical alignV);
627
628public:
629 enum CursorType {
630 kCursorNormal = 0,
631 kCursorIndex = 1,
632 kCursorMax
633 };
634
635 void setActiveCursor(CursorType type);
636
637protected:
644 bool ready() const {
645 return _initOk && _themeOk;
646 }
647
649 void loadTheme(const Common::String &themeid);
650
656
657 struct CursorData {
659 int hotspotX = 0;
660 int hotspotY = 0;
661 };
662
663 CursorData _cursors[kCursorMax];
664 CursorType _activeCursorType = kCursorNormal;
665 bool _useCursor = false;
666
667public:
668 inline ThemeEval *getEvaluator() { return _themeEval; }
669 inline Graphics::VectorRenderer *renderer() { return _vectorRenderer; }
670
671 inline bool supportsImages() const { return true; }
672 inline bool ownCursor() const { return _useCursor; }
673
674 Common::SharedPtr<Graphics::ManagedSurface> getImageSurface(const Common::String &name) const {
675 return _bitmaps.contains(name) ? _bitmaps[name] : 0;
676 }
677
687 bool createCursor(const Common::String &filename, int hotspotX, int hotspotY, CursorType type = kCursorNormal);
688
696
697 const Common::String &getThemeName() const { return _themeName; }
698 const Common::String &getThemeId() const { return _themeId; }
699 int getGraphicsMode() const { return _graphicsMode; }
700
701protected:
702
709 bool loadThemeXML(const Common::String &themeId);
710
717
723
728
729 const Graphics::Font *loadScalableFont(const Common::String &filename, const int pointsize, Common::String &name);
730 const Graphics::Font *loadFont(const Common::String &filename, Common::String &name);
731 Common::String genCacheFilename(const Common::String &filename) const;
732 const Graphics::Font *loadFont(const Common::String &filename, const Common::String &scalableFilename, const int pointsize, const bool makeLocalizedFont);
733
739
748 void drawDD(DrawData type, const Common::Rect &r, uint32 dynamic = 0, bool forceRestore = false);
749 void drawDDText(TextData type, TextColor color, const Common::Rect &r, const Common::U32String &text, bool restoreBg,
750 bool elipsis, Graphics::TextAlign alignH = Graphics::kTextAlignLeft,
751 TextAlignVertical alignV = kTextAlignVTop, int deltax = 0,
752 const Common::Rect &drawableTextArea = Common::Rect(0, 0, 0, 0));
753
758 Common::Rect getDrawDataExtendedRect(DrawData type, const Common::Rect &r) const;
759
765 Common::Rect getDrawDataRestoreRect(DrawData type, const Common::Rect &r) const;
766
770 void debugWidgetPosition(const char *name, const Common::Rect &r);
771
772public:
774 Common::String name;
776 Common::Path filename;
777 };
778
783private:
784 static bool themeConfigUsable(const Common::FSNode &node, Common::String &themeName);
785 static bool themeConfigUsable(const Common::ArchiveMember &member, Common::String &themeName);
786 static bool themeConfigParseHeader(Common::String header, Common::String &themeName);
787
788 static Common::Path getThemeFile(const Common::String &id);
789 static Common::String getThemeId(const Common::Path &filename);
790 static void listUsableThemes(const Common::FSNode &node, Common::List<ThemeDescriptor> &list, int depth = -1);
792
793 Common::Archive *createUnpackedThemeArchive(const Common::FSNode &themeDir);
794
795protected:
796 OSystem *_system;
800
803
806
809
812
819 DrawLayer _layerToDraw;
820
823
826
827 int16 _baseWidth, _baseHeight;
828 float _scaleFactor;
829 bool _needScaleRefresh = false;
830
833
838 WidgetDrawData *_widgets[kDrawDataMAX];
839
841 TextDrawData *_texts[kTextDataMAX];
842
844 TextColorData *_textColors[kTextColorMAX];
845
850
851 ImagesMap _bitmaps;
852 Graphics::PixelFormat _overlayFormat;
853
856
857 bool _initOk;
858 bool _themeOk;
859 bool _enabled;
860
862 Common::String _themeId;
863 Common::Path _themeFile;
864 Common::Archive *_themeArchive;
865 Common::SearchSet _themeFiles;
866
867 int _cursorHotspotX, _cursorHotspotY;
868 uint32 _cursorTransparent;
869 byte *_cursor;
870 uint _cursorWidth, _cursorHeight;
871
872 enum {
873 MAX_CURS_COLORS = 255
874 };
875
876 Common::Rect _clip;
877};
878
879} // End of namespace GUI.
880
881#endif
Definition: archive.h:141
Definition: archive.h:68
iterator end()
Definition: array.h:380
iterator begin()
Definition: array.h:375
Definition: fs.h:69
Definition: hashmap.h:85
Definition: list.h:44
Definition: path.h:52
Definition: archive.h:330
Definition: str.h:59
Definition: ustr.h:57
Definition: dialog.h:49
Definition: object.h:60
Definition: ThemeEngine.h:181
Definition: ThemeEngine.h:209
Common::Rect getDialogDirtyRect(const Common::Rect &r, DialogBackground bgtype)
bool _enabled
Whether the Theme is currently shown on the overlay.
Definition: ThemeEngine.h:859
void setGraphicsMode(GraphicsMode mode)
void debugWidgetPosition(const char *name, const Common::Rect &r)
bool loadExtraFont(FontStyle style, Common::Language lang)
void drawDD(DrawData type, const Common::Rect &r, uint32 dynamic=0, bool forceRestore=false)
GraphicsMode _graphicsMode
Definition: ThemeEngine.h:825
int _bytesPerPixel
Definition: ThemeEngine.h:822
bool createCursor(const Common::String &filename, int hotspotX, int hotspotY, CursorType type=kCursorNormal)
void drawToBackbuffer()
ShadingStyle
Function used to process areas other than the current dialog.
Definition: ThemeEngine.h:297
@ kShadingLuminance
Converting colors to luminance for unused areas.
Definition: ThemeEngine.h:300
@ kShadingNone
No special post processing.
Definition: ThemeEngine.h:298
@ kShadingDim
Dimming unused areas.
Definition: ThemeEngine.h:299
ThemeEngine(Common::String id, GraphicsMode mode)
void updateDirtyScreen()
static const char *const kImageStopSmallButton
Stop recording button in recorder onscreen dialog (for 320xY)
Definition: ThemeEngine.h:324
TextAlignVertical
Vertical alignment of the text.
Definition: ThemeEngine.h:218
void restoreBackground(Common::Rect r)
FontStyle
Font style selector.
Definition: ThemeEngine.h:274
@ kFontStyleItalic
Italic styled font.
Definition: ThemeEngine.h:277
@ kFontStyleLangExtra
Language specific font for ingame dialogs (e. g. the SCUMM pause/restart dialogs)
Definition: ThemeEngine.h:283
@ kFontStyleBold
A bold font. This is also the default font.
Definition: ThemeEngine.h:275
@ kFontStyleFixedNormal
Fixed size font.
Definition: ThemeEngine.h:278
@ kFontStyleFixedItalic
Fixed size italic font.
Definition: ThemeEngine.h:280
@ kFontStyleNormal
A normal font.
Definition: ThemeEngine.h:276
@ kFontStyleTooltip
Tiny console font.
Definition: ThemeEngine.h:281
@ kFontStyleFixedBold
Fixed size bold font.
Definition: ThemeEngine.h:279
@ kFontStyleConsole
Debug console font.
Definition: ThemeEngine.h:282
static void listUsableThemes(Common::List< ThemeDescriptor > &list)
Graphics::ManagedSurface _backBuffer
Definition: ThemeEngine.h:811
Graphics::ManagedSurface _screen
Definition: ThemeEngine.h:808
static const char *const kImageDelButton
Delete characters in the predictive dialog.
Definition: ThemeEngine.h:317
static const char *const kImageLogoSmall
ScummVM logo used in the GMM.
Definition: ThemeEngine.h:313
bool addDrawData(const Common::String &data, bool cached)
static const char *const kImageStopButton
Stop recording button in recorder onscreen dialog.
Definition: ThemeEngine.h:320
bool addTextData(const Common::String &drawDataId, TextData textId, TextColor id, Graphics::TextAlign alignH, TextAlignVertical alignV)
bool _initOk
Class and renderer properly initialized.
Definition: ThemeEngine.h:857
Common::Array< LangExtraFont > _langExtraFonts
Definition: ThemeEngine.h:849
bool loadThemeXML(const Common::String &themeId)
static const char *const kImageGrid
Grid image used in save/load chooser selection.
Definition: ThemeEngine.h:319
void addDirtyRect(Common::Rect r)
static const char *const kImageLogo
ScummVM logo used in the launcher.
Definition: ThemeEngine.h:312
bool _themeOk
Theme data successfully loaded.
Definition: ThemeEngine.h:858
State
State of the widget to be drawn.
Definition: ThemeEngine.h:249
@ kStateDisabled
Indicates that the widget is disabled, that does NOT include that it is invisible.
Definition: ThemeEngine.h:250
@ kStateEnabled
Indicates that the widget is enabled.
Definition: ThemeEngine.h:251
@ kStateHighlight
Indicates that the widget is highlighted by the user.
Definition: ThemeEngine.h:252
@ kStatePressed
Indicates that the widget is pressed, currently works for buttons.
Definition: ThemeEngine.h:253
Common::Rect swapClipRect(const Common::Rect &newRect)
static const char *const kImageEraser
Clear input image used in the launcher.
Definition: ThemeEngine.h:316
Common::Rect getDrawDataRestoreRect(DrawData type, const Common::Rect &r) const
static const char *const kImageList
List image used in save/load chooser selection.
Definition: ThemeEngine.h:318
Common::List< Common::Rect > _dirtyScreen
Definition: ThemeEngine.h:855
void addDrawStep(const Common::String &drawDataId, const Graphics::DrawStep &step)
static const char *const kImageEditSmallButton
Edit recording metadata in recorder onscreen dialog (for 320xY)
Definition: ThemeEngine.h:325
TextInversionState
Text inversion state of the text to be draw.
Definition: ThemeEngine.h:259
@ kTextInversionNone
Indicates that the text should not be drawn inverted.
Definition: ThemeEngine.h:260
@ kTextInversion
Indicates that the text should be drawn inverted, but not focused.
Definition: ThemeEngine.h:261
@ kTextInversionFocus
Indicates that the text should be drawn inverted, and focused.
Definition: ThemeEngine.h:262
DialogBackground
Dialog background type.
Definition: ThemeEngine.h:239
bool addFont(TextData textId, const Common::String &language, const Common::String &file, const Common::String &scalableFile, const int pointsize)
bool addBitmap(const Common::String &filename, const Common::String &scalablefile, int widht, int height)
static const char *const kImageSwitchModeButton
Switch mode button in recorder onscreen dialog.
Definition: ThemeEngine.h:322
Common::String _themeName
Name of the currently loaded theme.
Definition: ThemeEngine.h:861
WidgetDrawData * _widgets[kDrawDataMAX]
Definition: ThemeEngine.h:838
static const char *const kImageFastReplaySmallButton
Fast playback mode button in recorder onscreen dialog (for 320xY)
Definition: ThemeEngine.h:327
TextDrawData * _texts[kTextDataMAX]
Definition: ThemeEngine.h:841
void storeFontNames(TextData textId, const Common::String &language, const Common::String &file, const Common::String &scalableFile, const int pointsize)
DrawData parseDrawDataId(const Common::String &name) const
void unloadExtraFont()
GUI::ThemeParser * _parser
Definition: ThemeEngine.h:802
GraphicsMode
Definition: ThemeEngine.h:334
@ kGfxDisabled
No GFX.
Definition: ThemeEngine.h:335
@ kGfxStandard
Standard (aliased) renderer.
Definition: ThemeEngine.h:336
@ kGfxAntialias
Optimized AA renderer.
Definition: ThemeEngine.h:337
bool addTextColor(TextColor colorId, int r, int g, int b)
bool getDrawDataColor(DrawData ddId, uint8 &r, uint8 &g, uint8 &b) const
AutoScaleMode
AlphaBitmap scale mode selector.
Definition: ThemeEngine.h:304
@ kAutoScaleStretch
Stretch image to full widget size.
Definition: ThemeEngine.h:306
@ kAutoScaleNone
Use image dimensions.
Definition: ThemeEngine.h:305
@ kAutoScaleNinePatch
9-patch image
Definition: ThemeEngine.h:308
@ kAutoScaleFit
Scale image to widget size but keep aspect ratio.
Definition: ThemeEngine.h:307
FontColor
Font color selector.
Definition: ThemeEngine.h:288
@ kFontColorAlternate
Alternative font color.
Definition: ThemeEngine.h:291
@ kFontColorNormal
The default color of the theme.
Definition: ThemeEngine.h:290
@ kFontColorOverride
Color of overwritten text.
Definition: ThemeEngine.h:292
@ kFontColorFormatting
Use color from formatting.
Definition: ThemeEngine.h:289
void copyBackBufferToScreen()
TextColorData * _textColors[kTextColorMAX]
Definition: ThemeEngine.h:844
DrawLayer _layerToDraw
Definition: ThemeEngine.h:819
Graphics::VectorRenderer * _vectorRenderer
Definition: ThemeEngine.h:799
void disableClipRect()
bool ready() const
Definition: ThemeEngine.h:644
void loadTheme(const Common::String &themeid)
const Graphics::PixelFormat getPixelFormat() const
Definition: ThemeEngine.h:377
GUI::ThemeEval * _themeEval
Definition: ThemeEngine.h:805
Common::Rect getDrawDataExtendedRect(DrawData type, const Common::Rect &r) const
static const char *const kImageSwitchModeSmallButton
Switch mode button in recorder onscreen dialog (for 320xY)
Definition: ThemeEngine.h:326
static const char *const kImageGroup
Select Group image used in the launcher.
Definition: ThemeEngine.h:315
const Graphics::Font * _font
Definition: ThemeEngine.h:832
static const char *const kImageFastReplayButton
Fast playback mode button in recorder onscreen dialog.
Definition: ThemeEngine.h:323
static const char *const kImageEditButton
Edit recording metadata in recorder onscreen dialog.
Definition: ThemeEngine.h:321
static const char *const kImageSearch
Search tool image used in the launcher.
Definition: ThemeEngine.h:314
WidgetBackground
Widget background type.
Definition: ThemeEngine.h:226
@ kWidgetBackgroundSlider
Background used for sliders.
Definition: ThemeEngine.h:232
@ kThumbnailBackground
Background used for thumbnails.
Definition: ThemeEngine.h:233
@ kWidgetBackgroundNo
No background at all.
Definition: ThemeEngine.h:227
@ kWidgetBackgroundEditText
Background used for edit text fields.
Definition: ThemeEngine.h:231
@ kWidgetBackgroundBorder
Same as kWidgetBackgroundPlain just with a border.
Definition: ThemeEngine.h:229
@ kGridItemBackground
Default Background used for grid items.
Definition: ThemeEngine.h:234
@ kGridItemHighlight
Highlight Background used for grid items.
Definition: ThemeEngine.h:235
@ kWidgetBackgroundBorderSmall
Same as kWidgetBackgroundPlain just with a small border.
Definition: ThemeEngine.h:230
@ kWidgetBackgroundPlain
Simple background, this may not include borders.
Definition: ThemeEngine.h:228
void applyScreenShading(ShadingStyle shading)
Definition: ThemeEval.h:37
Definition: ThemeParser.h:32
Definition: font.h:83
Definition: managed_surface.h:51
Definition: VectorRenderer.h:138
Definition: system.h:166
In find(In first, In last, const T &v)
Definition: algorithm.h:225
bool contains(const Key &key) const
Definition: hashmap.h:598
Language
Definition: language.h:45
TextAlign
Definition: font.h:48
@ kTextAlignCenter
Center the text.
Definition: font.h:52
@ kTextAlignLeft
Align the text to the left.
Definition: font.h:51
Definition: formatinfo.h:28
Definition: rect.h:144
Definition: rect.h:536
Definition: ThemeEngine.h:177
Definition: ThemeEngine.h:657
Definition: ThemeEngine.h:340
Definition: ThemeEngine.h:773
Definition: VectorRenderer.h:51
Definition: pixelformat.h:138